2
0
mirror of https://expo.survex.com/repositories/troggle/.git synced 2025-12-17 00:47:09 +00:00

validate year in logbook entry form

This commit is contained in:
2023-09-05 17:19:09 +03:00
parent 220e1327d7
commit 8e2990ca7a
3 changed files with 44 additions and 33 deletions

View File

@@ -12,7 +12,7 @@ from troggle.core.models.caves import GetCaveLookup
from troggle.core.models.logbooks import LogbookEntry, writelogbook, PersonLogEntry
from troggle.core.models.survex import DrawingFile
from troggle.core.models.troggle import DataIssue, Expedition, PersonExpedition
from troggle.core.utils import alphabet_suffix
from troggle.core.utils import alphabet_suffix, current_expo
from troggle.parsers.people import GetPersonExpeditionNameLookup, known_foreigner
# from databaseReset import reinit_db # don't do this. databaseRest runs code *at import time*
@@ -158,6 +158,22 @@ def logbookedit(request, year=None, slug=None):
No check is done on the other people on the trip as this is picked up anyway by parsing on import
and we don't really care at this point.
"""
def validate_year(year):
try:
expo = Expedition.objects.get(year=year)
except:
year = current_expo()
return year
def new_entry_form():
return render(
request,
"logbookform.html",
{
"form": form,
"year": year,
},
)
def clean_tu(tu):
if tu =="":
return 0
@@ -169,10 +185,14 @@ def logbookedit(request, year=None, slug=None):
if not year:
if not slug:
year = 2023 # we need a CURRENT_EXPO() function, we use this in a lot of places..
year = current_expo()
else:
year = slug[0:4]
print(year)
try:
year = str(int(year))
except:
year = current_expo()
author = ""
if request.method == "POST":
@@ -206,7 +226,8 @@ def logbookedit(request, year=None, slug=None):
print(f"! Invalid date string {date}, setting to {odate}")
dateflag = True
date = odate.isoformat()
year = validate_year(year)
expo = Expedition.objects.get(year=year)
personyear = GetPersonExpeditionNameLookup(expo).get(author.lower())
if personyear:
@@ -328,12 +349,17 @@ def logbookedit(request, year=None, slug=None):
# GET here
else:
form = LogbookEditForm()
if slug:
year = validate_year(year)
if not slug: # no slug or bad slug for an lbe which does not exist
return new_entry_form()
else:
lbes = LogbookEntry.objects.filter(slug=slug)
if lbes:
if not lbes:
return new_entry_form()
else:
if len(lbes) > 1:
return render(request, "object_list.html", {"object_list": lbe}) # ie a bug
return render(request, "object_list.html", {"object_list": lbes}) # ie a bug
else:
lbe = lbes[0]
print(f"{lbe}")
@@ -373,19 +399,6 @@ def logbookedit(request, year=None, slug=None):
"textrows": rows,
},
)
else: # no slug or bad slug for an lbe which does not exist
# NEW logbook entry
return render(
request,
"logbookform.html",
{
"form": form,
"year": year,
},
)
@login_required_if_public
def expofilerename(request, filepath):