diff options
author | substantialnoninfringinguser <substantialnoninfringinguser@gmail.com> | 2009-05-13 05:43:20 +0100 |
---|---|---|
committer | substantialnoninfringinguser <substantialnoninfringinguser@gmail.com> | 2009-05-13 05:43:20 +0100 |
commit | 60735a9b3acae9d883589c51aa953ced40cc7488 (patch) | |
tree | 83c28a07c7e6227ba9faae0228461e7e6daae69c /expo | |
parent | 6598dd510539a9060dc6a38a3cd38b6228e57b88 (diff) | |
download | troggle-60735a9b3acae9d883589c51aa953ced40cc7488.tar.gz troggle-60735a9b3acae9d883589c51aa953ced40cc7488.tar.bz2 troggle-60735a9b3acae9d883589c51aa953ced40cc7488.zip |
[svn] merge the trip table to have surveys by date
Copied from http://cucc@cucc.survex.com/svn/trunk/expoweb/troggle/, rev. 8221 by julian @ 1/24/2009 2:01 PM
Diffstat (limited to 'expo')
-rw-r--r-- | expo/models.py | 28 | ||||
-rw-r--r-- | expo/models_survex.py | 12 |
2 files changed, 40 insertions, 0 deletions
diff --git a/expo/models.py b/expo/models.py index ee3179b..b8885ea 100644 --- a/expo/models.py +++ b/expo/models.py @@ -86,6 +86,34 @@ class PersonExpedition(models.Model): is_guest = models.BooleanField(default=False)
nickname = models.CharField(max_length=100,blank=True,null=True)
+ def GetPersonroles(self):
+ res = [ ]
+ for personrole in self.personrole_set.order_by('survex_block'):
+ if res and res[-1]['survexpath'] == personrole.survex_block.survexpath:
+ res[-1]['roles'] += ", " + str(personrole.role)
+ else:
+ res.append({'date':personrole.survex_block.date, 'survexpath':personrole.survex_block.survexpath, 'roles':str(personrole.role)})
+ print res
+ return res
+
+ def GetPersonChronology(self):
+ res = { }
+ for persontrip in self.persontrip_set.all():
+ a = res.setdefault(persontrip.date, { })
+ a.setdefault("persontrips", [ ]).append(persontrip)
+ for personrole in self.personrole_set.all():
+ a = res.setdefault(personrole.survex_block.date, { })
+ b = a.setdefault("personroles", { })
+ survexpath = personrole.survex_block.survexpath
+
+ if b.get(survexpath):
+ b[survexpath] += ", " + str(personrole.role)
+ else:
+ b[survexpath] = str(personrole.role)
+# needs converting dict into list
+ return sorted(res.items())
+
+
# deprecated
def GetPossibleNameForms(self):
res = [ ]
diff --git a/expo/models_survex.py b/expo/models_survex.py index 4b65357..1a7251f 100644 --- a/expo/models_survex.py +++ b/expo/models_survex.py @@ -27,6 +27,9 @@ class SurvexBlock(models.Model): end_file = models.CharField(max_length=200, blank=True, null=True)
end_char = models.IntegerField(blank=True, null=True)
+ class Meta:
+ ordering = ('date', 'survexpath')
+
def __unicode__(self):
return unicode(self.name)
@@ -37,6 +40,15 @@ class SurvexBlock(models.Model): fin.close()
return res
+ def GetPersonroles(self):
+ res = [ ]
+ for personrole in self.personrole_set.order_by('personexpedition'):
+ if res and res[-1]['person'] == personrole.personexpedition.person:
+ res[-1]['roles'] += ", " + str(personrole.role)
+ else:
+ res.append({'person':personrole.personexpedition.person, 'expeditionyear':personrole.personexpedition.expedition.year, 'roles':str(personrole.role)})
+ print res
+ return res
class PersonRole(models.Model):
|