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 %} - - + + diff --git a/templates/cavewallets.html b/templates/cavewallets.html index 8fd5d83..8ce1da1 100644 --- a/templates/cavewallets.html +++ b/templates/cavewallets.html @@ -14,8 +14,9 @@ traced to produce Tunnel or Therion drawings and eventually the final complete c +{% include 'wallet_table.html' %} +
{% for wallet in manywallets|dictsort:"walletname" %} @@ -33,7 +34,7 @@ traced to produce Tunnel or Therion drawings and eventually the final complete c {% endfor %} -
WalletWallet DateWallet NamePeopleScansSurvex blocksDrawings using these scans
+ {% for drawing in wallet.drawingfile_set.all %} {{drawing.dwgpath}}
{% empty %} diff --git a/templates/personwallets.html b/templates/personwallets.html index 5586485..f513e20 100644 --- a/templates/personwallets.html +++ b/templates/personwallets.html @@ -15,46 +15,7 @@ traced to produce Tunnel or Therion drawings and eventually the final complete c
  • per cave, e.g. 1623/161 - - - - - - - - - - - - - - - - - - - -{% for wallet in manywallets|dictsort:"walletname" %} - - - - - - - - - - - - - - - - - - -{% endfor %} -
    WalletWallet DateCaveWallet NameSCQNPETW
    {{wallet.walletname}}{{wallet.date}}{{wallet.cave}}{{wallet.name}}        
    +{% include 'wallet_table.html' %}
    @@ -74,7 +35,7 @@ traced to produce Tunnel or Therion drawings and eventually the final complete c {% endfor %} -
    WalletWallet DateWallet NameOther PeopleCaveScansSurvex blocksDrawings using these scans
    + {% for drawing in wallet.drawingfile_set.all %} {{drawing.dwgpath}}
    {% empty %} diff --git a/templates/wallet_table.html b/templates/wallet_table.html new file mode 100644 index 0000000..b239e91 --- /dev/null +++ b/templates/wallet_table.html @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + +{% for wallet in manywallets|dictsort:"walletname" %} + + + + + + + + + + + + + + + + + + +{% endfor %} +
    WalletWallet DateCaveWallet NameSCQNPETW
    {{wallet.walletname}}{{wallet.date}}{{wallet.cave}}{{wallet.name}}        
    diff --git a/templates/yearwallets.html b/templates/yearwallets.html index ce061c0..33b86ef 100644 --- a/templates/yearwallets.html +++ b/templates/yearwallets.html @@ -14,6 +14,9 @@ traced to produce Tunnel or Therion drawings and eventually the final complete c
  • per cave, e.g. 1623/161
  • per person, e.g. Michael Sargent + +{% include 'wallet_table.html' %} +
    {% for wallet in manywallets|dictsort:"walletname" %} @@ -32,7 +35,7 @@ traced to produce Tunnel or Therion drawings and eventually the final complete c {% endfor %} -
    WalletWallet DateWallet NamePeopleCaveScansSurvex blocksDrawings using these scans
    + {% for drawing in wallet.drawingfile_set.all %} {{drawing.dwgpath}}
    {% empty %}