summaryrefslogtreecommitdiffstats
path: root/core/views/uploads.py
diff options
context:
space:
mode:
authorPhilip Sargent <philip.sargent@gmail.com>2023-09-05 17:19:09 +0300
committerPhilip Sargent <philip.sargent@gmail.com>2023-09-05 17:19:09 +0300
commit8e2990ca7a2c08031d8434e138edc77df3229818 (patch)
tree3371a4106f57876a55ef420e3d11071fcbdbe5af /core/views/uploads.py
parent220e1327d743b3b3c65b2d37aebdc063ca3c18a3 (diff)
downloadtroggle-8e2990ca7a2c08031d8434e138edc77df3229818.tar.gz
troggle-8e2990ca7a2c08031d8434e138edc77df3229818.tar.bz2
troggle-8e2990ca7a2c08031d8434e138edc77df3229818.zip
validate year in logbook entry form
Diffstat (limited to 'core/views/uploads.py')
-rw-r--r--core/views/uploads.py55
1 files changed, 34 insertions, 21 deletions
diff --git a/core/views/uploads.py b/core/views/uploads.py
index 67ffb48..232eb5e 100644
--- a/core/views/uploads.py
+++ b/core/views/uploads.py
@@ -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):