2
0
mirror of https://expo.survex.com/repositories/troggle/.git synced 2026-02-08 15:21:02 +00:00

modelviz added

This commit is contained in:
goatchurch
2009-09-11 09:04:59 +01:00
parent 735b729a41
commit f21cddb2d0
9 changed files with 248 additions and 31 deletions

View File

@@ -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)

View File

@@ -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)

View File

@@ -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])))