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:
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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])))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user