summaryrefslogtreecommitdiffstats
path: root/core/views/scans.py
diff options
context:
space:
mode:
authorPhilip Sargent <philip.sargent@klebos.com>2022-07-31 01:02:02 +0300
committerPhilip Sargent <philip.sargent@klebos.com>2022-07-31 01:02:02 +0300
commitc1ba6a39a5f556d832da22e1f8e8ab33494f755b (patch)
tree7d136efe5a5c548ee270c9da6f4ecbba9877d6c7 /core/views/scans.py
parent724234949f1770645b0f8c34221ae16b0615daf3 (diff)
downloadtroggle-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.py45
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)