summaryrefslogtreecommitdiffstats
path: root/core/views/scans.py
diff options
context:
space:
mode:
Diffstat (limited to 'core/views/scans.py')
-rw-r--r--core/views/scans.py147
1 files changed, 58 insertions, 89 deletions
diff --git a/core/views/scans.py b/core/views/scans.py
index 94fb560..0ffdb22 100644
--- a/core/views/scans.py
+++ b/core/views/scans.py
@@ -31,14 +31,6 @@ manywallets dict.
def populatewallet(w):
'''Copy survex data here just for display, not permanently
'''
- # {% for personrole in wallet.survexblock.survexpersonrole_set.all %}
- # {% if personrole.personexpedition %}
- # <a href="{{personrole.personexpedition.get_absolute_url}}">{{personrole.personname}}</a>
- # {% else %}
- # {{personrole.personname}}
- # {% endif %}
- # {% endfor %}
-
survexpeople = []
blocks = SurvexBlock.objects.filter(scanswallet = w)
for b in blocks:
@@ -60,11 +52,34 @@ def datewallet(w, earliest):
w.date = first
def caveifywallet(w):
+ '''Gets the cave from the list of survex files,
+ only selects one of them though. Only used for display.
+ '''
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
if b.survexfile.cave:
- w.cave = b.survexfile.cave # just gets the last one, randomly
+ w.cave = b.survexfile.cave # just gets the last one, randomly. SHould make this a list or many:many ideally
+
+def fillblankpeople(w):
+ 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)
+
+def fillblankothers(w):
+ earliest = datetime.datetime.now().date()
+ if not w.date():
+ datewallet(w, earliest)
+
+ c = w.cave()
+ if not c:
+ caveifywallet(w)
+
def walletslistperson(request, first_name, last_name):
'''Page which displays a list of all the wallets for a specific person
@@ -72,6 +87,18 @@ def walletslistperson(request, first_name, last_name):
'''
# This is where we face having to re-do everything to do with names properly, rather than the horrible series of hacks over 20 years..
#GetPersonExpeditionNameLookup
+ def tickspersonwallet(p):
+ manywallets = []
+ wallets = Wallet.objects.all()
+ for w in wallets:
+ w.persons = w.people() # ephemeral attribute for web page
+ fillblankpeople(w)
+ if w.persons:
+ if p.fullname in w.persons:
+ manywallets.append(w)
+ fillblankothers(w)
+ w.ticks = w.get_ticks() # the complaints in colour form
+ return manywallets
try:
if last_name:
@@ -82,79 +109,37 @@ def walletslistperson(request, first_name, last_name):
except:
#raise
return render(request, 'errors/generic.html', {'message': f'Unrecognised name of a expo person: "{first_name} {last_name}"'})
-
- #personyear = GetPersonExpeditionNameLookup(expedition).get(tripperson.lower())
- earliest = datetime.datetime.now().date()
-
- manywallets = []
- wallets = Wallet.objects.all()
- for w in wallets:
- w.persons = w.people() # ephemeral attribute for web page
- w.ticks = {} # ephemeral tick boxes display
- # check if there is a json
- if not w.get_json():
- populatewallet(w)
- else:
- 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 w.persons:
- if p.fullname in w.persons:
- #found person
- manywallets.append(w)
-
- if not w.date():
- datewallet(w, earliest)
-
- c = w.cave()
- if not c:
- caveifywallet(w)
-
- w.ticks = w.get_ticks() # the complaints in colour form
+ manywallets = tickspersonwallet(p)
return render(request, 'personwallets.html', { 'manywallets':manywallets, 'settings': settings, 'person': p})
+
def walletslistyear(request, year):
'''Page which displays a list of all the wallets in a specific year
'''
+ def ticksyearwallet(year):
+ manywallets = []
+ wallets = Wallet.objects.all()
+ for w in wallets:
+
+ if year == w.year():
+ manywallets.append(w)
+ fillblankpeople(w)
+ fillblankothers(w)
+ w.ticks = w.get_ticks() # the complaints in colour form
+ else:
+ continue
+
+ return manywallets
+
if year < 1976 or year > 2050:
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'})
- 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:
- 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)
+ manywallets = ticksyearwallet(year)
return render(request, 'yearwallets.html', { 'manywallets':manywallets, 'settings': settings, 'year': year})
@@ -163,39 +148,23 @@ def walletslistyear(request, year):
def cavewallets(request, caveid):
'''Returns all the wallets for just one cave
'''
-
Gcavelookup = GetCaveLookup()
if caveid in Gcavelookup:
cave = Gcavelookup[caveid]
else:
return render(request,'errors/badslug.html', {'badslug': caveid})
- earliest = datetime.datetime.now().date()
-
# remove duplication. SOrting is done in the template
wallets = set(Wallet.objects.filter(survexblock__survexfile__cave=cave)) # NB a filtered set
manywallets = list(wallets)
-
for w in manywallets:
- 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)
-
+ fillblankpeople(w)
+ fillblankothers(w)
+ w.ticks = w.get_ticks() # the complaints in colour form
return render(request, 'cavewallets.html', { 'manywallets':manywallets, 'settings': settings, 'cave': cave})
+
def oldwallet(request, path):
'''Now called only for non-standard wallet structures for pre-2000 wallets
'''