summaryrefslogtreecommitdiffstats
path: root/expo/models.py
diff options
context:
space:
mode:
authorsubstantialnoninfringinguser <substantialnoninfringinguser@gmail.com>2009-05-13 05:40:56 +0100
committersubstantialnoninfringinguser <substantialnoninfringinguser@gmail.com>2009-05-13 05:40:56 +0100
commiteb431eb5c949bb30c51cd53dbbd802816e7f15ec (patch)
tree0a3e4e299d2d6a699153bfad4506fb98ab88721a /expo/models.py
parentaeef470c6d3d7f2619e61249d9c1f6bb5146ec41 (diff)
downloadtroggle-eb431eb5c949bb30c51cd53dbbd802816e7f15ec.tar.gz
troggle-eb431eb5c949bb30c51cd53dbbd802816e7f15ec.tar.bz2
troggle-eb431eb5c949bb30c51cd53dbbd802816e7f15ec.zip
[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
Diffstat (limited to 'expo/models.py')
-rw-r--r--expo/models.py34
1 files changed, 26 insertions, 8 deletions
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())