mirror of
https://expo.survex.com/repositories/troggle/.git
synced 2025-12-17 08:07:18 +00:00
New log report by title
This commit is contained in:
@@ -218,6 +218,61 @@ def personexpedition(request, slug="", year=""):
|
||||
print(msg)
|
||||
return render(request, "errors/generic.html", {"message": msg})
|
||||
|
||||
def logreport(request, year=1999):
|
||||
"""
|
||||
Remember that 'personexpedition__expedition' is interpreted by Django to mean the
|
||||
'expedition' object which is connected by a foreign key to the 'personexpedition'
|
||||
object, which is a field of the PersonLogEntry object:
|
||||
PersonLogEntry.objects.filter(personexpedition__expedition=expo)
|
||||
|
||||
"""
|
||||
print(f"logreport(): begun")
|
||||
|
||||
expeditions = Expedition.objects.all() # top menu only, evaluated only when template renders
|
||||
dates = None
|
||||
dateditems = None
|
||||
|
||||
|
||||
try:
|
||||
expo = Expedition.objects.get(year=int(year))
|
||||
except:
|
||||
message = (
|
||||
"Expedition not found - database apparently empty, you probably need to do a full re-import of all data."
|
||||
)
|
||||
return render(request, "errors/generic.html", {"message": message})
|
||||
|
||||
entries = expo.logbookentry_set.all() # lazy list
|
||||
dateditems = list(entries) # evaluates the Django query and hits db
|
||||
dates = sorted(set([item.date for item in dateditems]))
|
||||
|
||||
try:
|
||||
for entry in dateditems:
|
||||
|
||||
people = PersonLogEntry.objects.filter(logbook_entry=entry)
|
||||
entry.who = []
|
||||
for p in people:
|
||||
if p.is_logbook_entry_author:
|
||||
entry.author = p
|
||||
else:
|
||||
entry.who.append(p)
|
||||
|
||||
|
||||
print(f"logreport(): trying..")
|
||||
context = {
|
||||
"year": year,
|
||||
"expedition": expo,
|
||||
"expeditions": expeditions,
|
||||
"settings": settings,
|
||||
"dateditems": dateditems,
|
||||
"dates": dates,
|
||||
}
|
||||
print(f"logreport(): rendering..")
|
||||
return render(request, "logreport.html", context)
|
||||
|
||||
except Exception as e:
|
||||
msg = f' Logbook report for year:"{year}" not implemented yet\n{e}\n {context}'
|
||||
print(msg)
|
||||
return render(request, "errors/generic.html", {"message": msg})
|
||||
|
||||
def logbookentry(request, date, slug):
|
||||
# start = time.time()
|
||||
|
||||
Reference in New Issue
Block a user