forked from expo/troggle
attempted speedup, explicit dates wallet objects
This commit is contained in:
@@ -8,6 +8,7 @@ from urllib.request import urlopen
|
||||
from django.conf import settings
|
||||
from django.shortcuts import render
|
||||
from django.http import HttpResponse
|
||||
from django.db import transaction
|
||||
|
||||
from troggle.core.models.survex import Wallet, SingleScan, SurvexBlock
|
||||
from troggle.core.models.troggle import Person, Expedition
|
||||
@@ -48,6 +49,9 @@ def populatewallet(w):
|
||||
w.persons = list(set(survexpeople))
|
||||
|
||||
def datewallet(w, earliest):
|
||||
'''Gets the date of the youngest survexblock associated with the wallet
|
||||
REFACTOR this to do the whole date-getting task
|
||||
'''
|
||||
first = earliest
|
||||
blocks = SurvexBlock.objects.filter(scanswallet = w)
|
||||
for b in blocks:
|
||||
@@ -59,6 +63,7 @@ def datewallet(w, earliest):
|
||||
w.date = None
|
||||
else:
|
||||
w.date = first.isoformat()
|
||||
return w.date
|
||||
|
||||
def caveifywallet(w):
|
||||
'''Gets the cave from the list of survex files,
|
||||
@@ -94,10 +99,13 @@ def fillblankpeople(w):
|
||||
# print(f' - {wp=} {nobody=}')
|
||||
populatewallet(w)
|
||||
|
||||
def fillblankothers(w):
|
||||
earliest = datetime.datetime.now().date()
|
||||
if not w.date():
|
||||
datewallet(w, earliest)
|
||||
def fillblankothers(w):
|
||||
if not w.walletdate:
|
||||
earliest = datetime.datetime.now().date()
|
||||
if not w.date(): # sets .walletdate as a side-effect, gets it from JSON
|
||||
d =datewallet(w, earliest) # if nothing in JASON, it looks at the survex blocks
|
||||
w.walletdate = d
|
||||
w.save()
|
||||
|
||||
Gcavelookup = GetCaveLookup()
|
||||
|
||||
@@ -140,6 +148,8 @@ def walletslistperson(request, first_name, last_name):
|
||||
w.ticks = w.get_ticks() # the complaints in colour form
|
||||
fixsurvextick(w, w.ticks)
|
||||
return manywallets
|
||||
|
||||
print(f"-walletslistperson")
|
||||
|
||||
try:
|
||||
if last_name:
|
||||
@@ -153,37 +163,43 @@ def walletslistperson(request, first_name, last_name):
|
||||
|
||||
manywallets = tickspersonwallet(p)
|
||||
expeditions = Expedition.objects.all()
|
||||
print(f"--")
|
||||
return render(request, 'personwallets.html', { 'manywallets':manywallets, 'settings': settings, 'person': p, 'expeditions': expeditions})
|
||||
|
||||
def setwalletsdates():
|
||||
wallets = Wallet.objects.filter(walletdate=None)
|
||||
print(f"undated wallets: {len(wallets)}")
|
||||
for w in wallets:
|
||||
w.walletdate = w.date()
|
||||
w.save()
|
||||
|
||||
|
||||
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.
|
||||
We have a field .walletyear, which we set on import.
|
||||
'''
|
||||
def ticksyearwallet(year):
|
||||
manywallets = []
|
||||
wallets = Wallet.objects.all()
|
||||
wallets = Wallet.objects.filter(walletyear__year=year)
|
||||
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, from the json file on disc
|
||||
fixsurvextick(w, w.ticks)
|
||||
else:
|
||||
continue
|
||||
manywallets.append(w)
|
||||
fillblankpeople(w)
|
||||
fillblankothers(w)
|
||||
w.ticks = w.get_ticks() # the complaints in colour form, from the json file on disc
|
||||
fixsurvextick(w, w.ticks)
|
||||
|
||||
return manywallets
|
||||
|
||||
print(f"-walletslistyear")
|
||||
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'})
|
||||
|
||||
|
||||
year = str(year)
|
||||
manywallets = ticksyearwallet(year)
|
||||
expeditions = Expedition.objects.all()
|
||||
expedition = Expedition.objects.filter(year=year)
|
||||
expedition = expeditions.filter(year=year)
|
||||
print(f"--")
|
||||
return render(request, 'yearwallets.html', { 'manywallets':manywallets, 'settings': settings, 'year': year, 'expeditions': expeditions, 'expedition': expedition})
|
||||
|
||||
|
||||
@@ -191,6 +207,8 @@ def walletslistyear(request, year):
|
||||
def cavewallets(request, caveid):
|
||||
'''Returns all the wallets for just one cave
|
||||
'''
|
||||
print(f"-cavewalletsl")
|
||||
|
||||
Gcavelookup = GetCaveLookup()
|
||||
if caveid in Gcavelookup:
|
||||
cave = Gcavelookup[caveid]
|
||||
@@ -224,6 +242,7 @@ def cavewallets(request, caveid):
|
||||
w.ticks = w.get_ticks() # the complaints in colour form, from the json file on disc
|
||||
fixsurvextick(w, w.ticks)
|
||||
expeditions = Expedition.objects.all()
|
||||
print(f"--")
|
||||
return render(request, 'cavewallets.html', { 'manywallets':manywallets, 'settings': settings, 'cave': cave, 'expeditions': expeditions})
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user