summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/models.py19
-rw-r--r--core/models_survex.py1
-rw-r--r--core/views_logbooks.py12
3 files changed, 21 insertions, 11 deletions
diff --git a/core/models.py b/core/models.py
index 64529f1..08504c0 100644
--- a/core/models.py
+++ b/core/models.py
@@ -65,6 +65,8 @@ class TroggleImageModel(ImageModel):
class Expedition(TroggleModel):
year = models.CharField(max_length=20, unique=True)
name = models.CharField(max_length=100)
+
+ # these will become min and max dates
date_from = models.DateField(blank=True,null=True)
date_to = models.DateField(blank=True,null=True)
@@ -78,7 +80,19 @@ class Expedition(TroggleModel):
def get_absolute_url(self):
return urlparse.urljoin(settings.URL_ROOT, reverse('expedition', args=[self.year]))
-
+ def get_expedition_day(self, date):
+ expeditiondays = self.expeditionday_set.filter(date=date)
+ if expeditiondays:
+ assert len(expeditiondays) == 1
+ return expeditiondays[0]
+ res = ExpeditionDay(expedition=self, date=date)
+ res.save()
+ return res
+
+
+class ExpeditionDay(TroggleModel):
+ expedition = models.ForeignKey("Expedition")
+ date = models.DateField()
#
# single Person, can go on many years
@@ -168,7 +182,7 @@ class PersonExpedition(TroggleModel):
return res
class Meta:
- ordering = ('expedition',)
+ ordering = ('-expedition',)
#order_with_respect_to = 'expedition'
get_latest_by = 'expedition'
@@ -242,6 +256,7 @@ class LogbookEntry(TroggleModel):
class PersonTrip(TroggleModel):
person_expedition = models.ForeignKey(PersonExpedition,null=True)
+ expeditionday = models.ForeignKey("ExpeditionDay")
date = models.DateField()
time_underground = models.FloatField(help_text="In decimal hours")
logbook_entry = models.ForeignKey(LogbookEntry)
diff --git a/core/models_survex.py b/core/models_survex.py
index c6eb5b9..f3fc61d 100644
--- a/core/models_survex.py
+++ b/core/models_survex.py
@@ -77,6 +77,7 @@ class SurvexBlock(models.Model):
cave = models.ForeignKey('Cave', blank=True, null=True)
date = models.DateField(blank=True, null=True)
+ expeditionday = models.ForeignKey("ExpeditionDay", null=True)
expedition = models.ForeignKey('Expedition', blank=True, null=True)
survexfile = models.ForeignKey("SurvexFile", blank=True, null=True)
diff --git a/core/views_logbooks.py b/core/views_logbooks.py
index 1ce158e..17c88fd 100644
--- a/core/views_logbooks.py
+++ b/core/views_logbooks.py
@@ -78,15 +78,9 @@ def GetPersonChronology(personexpedition):
a = res.setdefault(persontrip.date, { })
a.setdefault("persontrips", [ ]).append(persontrip)
- for personrole in personexpedition.personrole_set.all():
+ for personrole in personexpedition.survexpersonrole_set.all():
a = res.setdefault(personrole.survexblock.date, { })
- b = a.setdefault("personroles", { })
- survexpath = personrole.survexblock.survexpath
-
- if b.get(survexpath):
- b[survexpath] += ", " + str(personrole.nrole)
- else:
- b[survexpath] = str(personrole.nrole)
+ a.setdefault("personroles", [ ]).append(personrole.survexblock)
# build up the tables
rdates = res.keys()
@@ -96,7 +90,7 @@ def GetPersonChronology(personexpedition):
res2 = [ ]
for rdate in rdates:
persontrips = res[rdate].get("persontrips", [])
- personroles = list(res[rdate].get("personroles", {}).items())
+ personroles = res[rdate].get("personroles", [])
for n in range(max(len(persontrips), len(personroles))):
res2.append(((n == 0 and rdate or "--"), (n < len(persontrips) and persontrips[n]), (n < len(personroles) and personroles[n])))