diff options
author | Philip Sargent <philip.sargent@klebos.com> | 2022-07-31 01:02:02 +0300 |
---|---|---|
committer | Philip Sargent <philip.sargent@klebos.com> | 2022-07-31 01:02:02 +0300 |
commit | c1ba6a39a5f556d832da22e1f8e8ab33494f755b (patch) | |
tree | 7d136efe5a5c548ee270c9da6f4ecbba9877d6c7 /core/views/scans.py | |
parent | 724234949f1770645b0f8c34221ae16b0615daf3 (diff) | |
download | troggle-c1ba6a39a5f556d832da22e1f8e8ab33494f755b.tar.gz troggle-c1ba6a39a5f556d832da22e1f8e8ab33494f755b.tar.bz2 troggle-c1ba6a39a5f556d832da22e1f8e8ab33494f755b.zip |
Wallets by year and by cave
Diffstat (limited to 'core/views/scans.py')
-rw-r--r-- | core/views/scans.py | 45 |
1 files changed, 39 insertions, 6 deletions
diff --git a/core/views/scans.py b/core/views/scans.py index fda3d6d..6ecae2b 100644 --- a/core/views/scans.py +++ b/core/views/scans.py @@ -20,6 +20,9 @@ by looking inside the file before being served. need to check if inavlid query string is invalid, or produces multiple replies and render a user-friendly error page. + +Note that datewallet(), caveifywallet() etc do NOT save the object to the db. They are ephemeral, just for the page rendering of the +manywallets dict. ''' def populatewallet(w): @@ -42,13 +45,13 @@ def populatewallet(w): def datewallet(w, earliest): blocks = SurvexBlock.objects.filter(scanswallet = w) - for b in blocks: - if b.date < earliest: - earliest = b.date + for b in blocks: + if b.date: + if b.date < earliest: + earliest = b.date w.date = earliest def caveifywallet(w): - print('*') blocks = SurvexBlock.objects.filter(scanswallet = w) for b in blocks: # NB b.cave is not populated by parser. Use b.survexfile.cave instead, or we could parse b.survexpath @@ -64,7 +67,38 @@ def walletslistyear(request, year): return render(request, 'errors/generic.html', {'message': 'Year out of range. Must be between 1976 and 2050'}) else: year = str(year) - return render(request, 'errors/generic.html', {'message': 'This page logic not implemented yet'}) + #return render(request, 'errors/generic.html', {'message': 'This page logic not implemented yet'}) + earliest = datetime.datetime.now().date() + + manywallets = [] + wallets = Wallet.objects.all() + for w in wallets: + + if year == w.year(): + print(w.year(), w) + manywallets.append(w) + else: + print("NOT WANTED",year, w.year()) + continue + + wp = w.people() + if not wp: # an -empty list + populatewallet(w) + else: + if len(wp) == 1: + nobody = wp[0].lower() + if nobody == 'unknown' or nobody == 'nobody' or nobody == ' ': + populatewallet(w) + + if not w.date(): + datewallet(w, earliest) + + c = w.cave() + if not c: + caveifywallet(w) + + return render(request, 'yearwallets.html', { 'manywallets':manywallets, 'settings': settings, 'year': year}) + def cavewallets(request, caveid): @@ -98,7 +132,6 @@ def cavewallets(request, caveid): datewallet(w, earliest) c = w.cave() - if not c: caveifywallet(w) |