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

fixing cave slug <caveslug> issues

This commit is contained in:
2024-06-29 08:55:14 +03:00
parent 09dbe5b14b
commit 6d16f8f7ca
6 changed files with 35 additions and 19 deletions

View File

@@ -93,7 +93,7 @@ def pad5(x):
def padnumber(x):
return re.sub("\d+", pad5, x)
return re.sub("\d+", pad5, x) # SyntaxWarning: invalid escape sequence '\d'
def numericalcmp(x, y):
@@ -102,7 +102,7 @@ def numericalcmp(x, y):
def caveKey(c):
"""This function goes into a lexicographic sort function, and the values are strings,
but we want to sort numberically on kataster number before sorting on unofficial number.
but we want to sort numerically on kataster number before sorting on unofficial number.
"""
if not c.kataster_number:
return "9999." + c.unofficial_number
@@ -284,7 +284,7 @@ def rendercave(request, cave, slug, cave_id=""):
print(f" ! rendercave: slug:'{slug}' FAIL TO MANAGE survex file:'{cave.survex_file}'")
# NOTE the template itself loads the 3d file using javascript before it loads anything else.
# Django cannot see what this javascript is doing, so we need to ensure that the 3d file exists first.
# So only do this render if a valid .3d file exists. TO BE DONE -Not yet as CaveView is currently disabled
# So only do this render if a valid .3d file exists. TO BE DONE
# see design docum in troggle/templates/cave.html
# see rendercave() in troggle/core/views/caves.py
templatefile = "cave.html"
@@ -507,10 +507,11 @@ def edit_entrance(request, path="", caveslug=None, entslug=None):
"""
slugname = f"{slug}{letter}"
nents = Entrance.objects.filter(slug=slugname).count()
print(f"NUM ents {slugname=} => {nents}")
print(f"check_new_slugname_ok() {slugname=} {letter=} => {nents}")
if nents == 0:
# looks good, but we need to check the CaveaAndEntrance object too
e = entrance #Entrance.objects.get(slug=slugname) # does not exist yet!
e.save()
gcl = GetCaveLookup()
c = gcl[slug]
nce = CaveAndEntrance.objects.filter(cave=c, entrance=e).count()
@@ -593,12 +594,16 @@ def edit_entrance(request, path="", caveslug=None, entslug=None):
entrance = entform.save(commit=False)
# entrance = ce.entrance # the one we created earlier?
if entranceletter:
slugname, letter = check_new_slugname_ok(cave.slug(), entranceletter)
else:
slugname, letter = check_new_slugname_ok(cave.slug(), "")
ce.entranceletter = letter
try:
if entranceletter:
slugname, letter = check_new_slugname_ok(cave.slug(), entranceletter)
else:
slugname, letter = check_new_slugname_ok(cave.slug(), "")
ce.entranceletter = letter
except Exception as e:
print(f"- EXCEPTION entranceletter {caveslug=} {entslug=} {entranceletter=} {path=}\n{e}")
raise
entrance.slug = slugname
entrance.cached_primary_slug = slugname
entrance.filename = slugname + ".html"