diff --git a/expo/admin.py b/expo/admin.py index 7c170d9..52138af 100644 --- a/expo/admin.py +++ b/expo/admin.py @@ -16,13 +16,13 @@ class SurveyAdmin(admin.ModelAdmin): inlines = (ScannedImageInline,) class LogbookEntryAdmin(admin.ModelAdmin): - search_fields = ('title',) + search_fields = ('title','expedition__year') class PersonAdmin(admin.ModelAdmin): search_fields = ('first_name','last_name') class PersonExpeditionAdmin(admin.ModelAdmin): - search_fields = ('person__first_name',) + search_fields = ('person__first_name','expedition__year') admin.site.register(Photo) admin.site.register(Cave) 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()) diff --git a/templates/calendar.html b/templates/calendar.html index a39556c..70d3ecf 100644 --- a/templates/calendar.html +++ b/templates/calendar.html @@ -9,12 +9,13 @@ {% endif %} {% endblock %} -{% block javascript %} +{% block head %} <style type="text/css"> <!-- -td.yes { background: #7f96e8; width: 80pt; font-size: 10pt } -td.no { background: #ff6666; width: 80pt; font-size: 10pt } -td.name { background: #7f96e8; width: 80pt; text-align:right; font-size: 10pt } +.no { background: #7f96e8; width: 80pt; font-size: 10pt } +.yes { background: #ff6666; width: 80pt; font-size: 10pt } +.name { background: #999; width: 80pt; text-align:right; font-size: 10pt } +.date { background: #999; width: 80pt; text-align:right; font-size: 10pt } --> </style> @@ -26,20 +27,20 @@ td.name { background: #7f96e8; width: 80pt; text-align:right; <tr><td /> {% for date in expedition.ListDays %} {% ifchanged date.month %} - <td class="h">{{ date|date:"F" }}</td> + <td class="date">{{ date|date:"F" }}</td> {% else %} - <td class="h"></td> + <td class="date"></td> {% endifchanged %} {% endfor %} </tr> <tr><td /> {% for date in expedition.ListDays %} - <td class="h">{{ date|date:"D" }}</td> + <td class="date">{{ date|date:"D" }}</td> {% endfor %} </tr> <tr><td /> {% for date in expedition.ListDays %} - <td class="h">{{ date|date:"d" }}</td> + <td class="date">{{ date|date:"d" }}</td> {% endfor %} </tr> @@ -51,7 +52,7 @@ td.name { background: #7f96e8; width: 80pt; text-align:right; {% for dateTF in personexpedition.ListDaysTF %} <td {{ dateTF|yesno:"class='yes',class='no'"|safe }}></td> {% empty %} - <td colspan="{{ expedition.ListDays|length }}">No data yet.</td> + <td colspan="{{ expedition.ListDays|length }}"><center>No data.</center></td> {% endfor %}