From 7158a79a347d99fb1f8e94e034f2d79e08ad9172 Mon Sep 17 00:00:00 2001 From: goatchurch Date: Mon, 27 Jul 2009 13:43:43 +0100 Subject: [svn] full checkin. animations disabled, sorry --- core/views_logbooks.py | 43 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-) (limited to 'core/views_logbooks.py') diff --git a/core/views_logbooks.py b/core/views_logbooks.py index e31f30f..07b5d57 100644 --- a/core/views_logbooks.py +++ b/core/views_logbooks.py @@ -22,6 +22,7 @@ def getNotablePersons(): notablepersons.append(person) return notablepersons + def personindex(request): persons = Person.objects.all() # From what I can tell, "persons" seems to be the table rows, while "personss" is the table columns. - AC 16 Feb 09 @@ -38,6 +39,7 @@ def personindex(request): return render_response(request,'personindex.html', {'persons': persons, 'personss':personss, 'notablepersons':notablepersons, }) + def expedition(request, expeditionname): year = int(expeditionname) expedition = Expedition.objects.get(year=year) @@ -53,6 +55,7 @@ def expedition(request, expeditionname): def get_absolute_url(self): return ('expedition', (expedition.year)) + def person(request, first_name='', last_name='', ): person = Person.objects.get(first_name = first_name, last_name = last_name) @@ -65,11 +68,45 @@ def person(request, first_name='', last_name='', ): return render_response(request,'person.html', {'person': person, }) + +def GetPersonChronology(personexpedition): + res = { } + for persontrip in personexpedition.persontrip_set.all(): + a = res.setdefault(persontrip.date, { }) + a.setdefault("persontrips", [ ]).append(persontrip) + + for personrole in personexpedition.personrole_set.all(): + a = res.setdefault(personrole.survex_block.date, { }) + b = a.setdefault("personroles", { }) + survexpath = personrole.survex_block.survexpath + + if b.get(survexpath): + b[survexpath] += ", " + str(personrole.role) + else: + b[survexpath] = str(personrole.role) + + # build up the tables + rdates = res.keys() + rdates.sort() + + + res2 = [ ] + for rdate in rdates: + persontrips = res[rdate].get("persontrips", []) + personroles = list(res[rdate].get("personroles", {}).items()) + 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]))) + + return res2 + + def personexpedition(request, first_name='', last_name='', year=''): person = Person.objects.get(first_name = first_name, last_name = last_name) expedition = Expedition.objects.get(year=year) personexpedition = person.personexpedition_set.get(expedition=expedition) - return render_response(request,'personexpedition.html', {'personexpedition': personexpedition, }) + personchronology = GetPersonChronology(personexpedition) + return render_response(request,'personexpedition.html', {'personexpedition': personexpedition, 'personchronology':personchronology}) + def logbookentry(request, date, slug): logbookentry = LogbookEntry.objects.filter(date=date, slug=slug) @@ -80,6 +117,7 @@ def logbookentry(request, date, slug): logbookentry=logbookentry[0] return render_response(request, 'logbookentry.html', {'logbookentry': logbookentry}) + def logbookSearch(request, extra): query_string = '' found_entries = None @@ -95,4 +133,5 @@ def logbookSearch(request, extra): def personForm(request,pk): person=Person.objects.get(pk=pk) form=PersonForm(instance=person) - return render_response(request,'personform.html', {'form':form,}) \ No newline at end of file + return render_response(request,'personform.html', {'form':form,}) + -- cgit v1.2.3