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 %} - # {{personrole.personname}} - # {% 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 ''' diff --git a/templates/base.html b/templates/base.html index 6d43e63..a25e13c 100644 --- a/templates/base.html +++ b/templates/base.html @@ -56,7 +56,7 @@
@@ -65,16 +65,15 @@ {% block contentheader %} {% endblock %} - + {% block content %} REPLACE : The content {% endblock %} - - + +