From eb431eb5c949bb30c51cd53dbbd802816e7f15ec Mon Sep 17 00:00:00 2001 From: substantialnoninfringinguser Date: Wed, 13 May 2009 05:40:56 +0100 Subject: [svn] Fixed up calendar with estimated dates from logbook. Copied from http://cucc@cucc.survex.com/svn/trunk/expoweb/troggle/, rev. 8202 by aaron @ 1/19/2009 8:28 AM --- expo/models.py | 34 ++++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) (limited to 'expo/models.py') diff --git a/expo/models.py b/expo/models.py index 2e8dc88..ee3179b 100644 --- a/expo/models.py +++ b/expo/models.py @@ -19,11 +19,29 @@ class Expedition(models.Model): def __unicode__(self): return self.year + def GuessDateFrom(self): + try: + return self.logbookentry_set.order_by('date')[0].date + except IndexError: + pass + + def GuessDateTo(self): # returns the date of the last logbook entry in the expedition + try: + return self.logbookentry_set.order_by('date')[-1].date + except IndexError: + pass + def ListDays(self): - if self.start_date and self.end_date: + if self.date_from and self.date_to: res=[] - date=self.start_date - while date <= self.end_date: + date=self.date_from + while date <= self.date_to: + res.append(date) + date+=datetime.timedelta(days=1) + return res + elif self.GuessDateFrom() and self.GuessDateTo(): # if we don't have the real dates, try it with the dates taken from the earliest and latest logbook entries + date=self.GuessDateFrom() + while date <= self.GuessDateTo(): res.append(date) date+=datetime.timedelta(days=1) return res @@ -78,18 +96,18 @@ class PersonExpedition(models.Model): if self.nickname: res.append(self.nickname) return res - + def ListDays(self): - if self.from_date and self.to_date: + if self.date_from and self.date_to: res=[] - date=self.from_date - while date <= self.to_date: + date=self.date_from + while date <= self.date_to: res.append(date) date+=datetime.timedelta(days=1) return res def ListDaysTF(self): - if self.from_date and self.to_date: + if self.date_from and self.date_to: res=[] for date in self.expedition.ListDays(): res.append(date in self.ListDays()) -- cgit v1.2.3