mirror of
https://expo.survex.com/repositories/troggle/.git
synced 2025-12-15 07:57:09 +00:00
Populate blank wallet fields with survex data
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import os, stat
|
||||
import re
|
||||
import datetime
|
||||
from pathlib import Path
|
||||
from urllib.parse import urljoin, unquote as urlunquote
|
||||
from urllib.request import urlopen
|
||||
@@ -8,7 +9,7 @@ from django.conf import settings
|
||||
from django.shortcuts import render
|
||||
from django.http import HttpResponse
|
||||
|
||||
from troggle.core.models.survex import Wallet, SingleScan
|
||||
from troggle.core.models.survex import Wallet, SingleScan, SurvexBlock
|
||||
from troggle.core.models.caves import GetCaveLookup
|
||||
from troggle.core.views.expo import getmimetype
|
||||
#import parsers.surveys
|
||||
@@ -21,9 +22,43 @@ need to check if inavlid query string is invalid, or produces multiple replies
|
||||
and render a user-friendly error page.
|
||||
'''
|
||||
|
||||
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:
|
||||
for personrole in b.survexpersonrole_set.all():
|
||||
survexpeople.append(personrole.personname)
|
||||
w.people = list(set(survexpeople)) # remove duplicates
|
||||
|
||||
def datewallet(w, earliest):
|
||||
blocks = SurvexBlock.objects.filter(scanswallet = w)
|
||||
for b in blocks:
|
||||
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
|
||||
if b.survexfile.cave:
|
||||
w.cave = b.survexfile.cave # just gets the last one, randomly
|
||||
print(w.cave)
|
||||
|
||||
|
||||
def walletslistyear(request, year):
|
||||
'''Page which displays a list of all the wallets in a specific year
|
||||
'''Page which displays a list of all the wallets in a specific year - TO BE WRITTEN
|
||||
'''
|
||||
if year < 1976 or year > 2050:
|
||||
return render(request, 'errors/generic.html', {'message': 'Year out of range. Must be between 1976 and 2050'})
|
||||
@@ -35,16 +70,38 @@ 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)
|
||||
|
||||
return render(request, 'cavewallets.html', { 'manywallets':manywallets, 'settings': settings, 'cave': cave})
|
||||
|
||||
def oldwallet(request, path):
|
||||
|
||||
Reference in New Issue
Block a user