summaryrefslogtreecommitdiffstats
path: root/core/views/cave_kataster.py
diff options
context:
space:
mode:
authorPhilip Sargent <philip.sargent@gmail.com>2025-01-31 01:51:22 +0000
committerPhilip Sargent <philip.sargent@gmail.com>2025-01-31 01:51:22 +0000
commit4a0496b3b4946e8e13130107040c8f235f30f488 (patch)
tree17e90db2ba1f9bb4a691efbb7ddfab9b681397f2 /core/views/cave_kataster.py
parente080610010917e1865df5fb612f7c3011ad7f9e0 (diff)
downloadtroggle-4a0496b3b4946e8e13130107040c8f235f30f488.tar.gz
troggle-4a0496b3b4946e8e13130107040c8f235f30f488.tar.bz2
troggle-4a0496b3b4946e8e13130107040c8f235f30f488.zip
begun to do fields, blue
Diffstat (limited to 'core/views/cave_kataster.py')
-rw-r--r--core/views/cave_kataster.py71
1 files changed, 50 insertions, 21 deletions
diff --git a/core/views/cave_kataster.py b/core/views/cave_kataster.py
index 08aced6..48aad7d 100644
--- a/core/views/cave_kataster.py
+++ b/core/views/cave_kataster.py
@@ -1,3 +1,4 @@
+import re
from pathlib import Path
import django.forms as forms
@@ -23,6 +24,38 @@ is 'katastered', ie.e moves from an informal number, such as
"""
def kataster(request, slug):
+ """Create the page which analyses how to rename a cave and all the files from the unofficial_number
+ identifier, e.g. 1623-2023-mg-03 to the kataster number e.g. 1623-999
+ """
+ def do_file_finding():
+
+ global cavefilename, cave_data, entrance_data, loser_name, loser_data
+
+ cavefilename = str(cave) + ".html"
+
+ cave_data = Path( "cave_data", cavefilename )
+ if not (settings.CAVEDESCRIPTIONS / cavefilename).is_file: # settings.EXPOWEB / cave_data
+ cave_data = "does not exist"
+
+ ent_dir = settings.ENTRANCEDESCRIPTIONS # settings.EXPOWEB / "entrance_data"
+
+ entrance_data = []
+ for ent in ent_dir.iterdir():
+ if str(ent.name).startswith(str(cave)):
+ print(ent.name)
+ entrance_data.append("entrance_data/"+ent.name)
+
+ loser_name = f"caves-{str(cave.areacode)}/{str(cave.unofficial_number)}"
+ loser_dir = settings.SURVEX_DATA / loser_name
+ loser_data = []
+ if (loser_dir).is_dir():
+ print(loser_dir)
+ for svx in loser_dir.iterdir():
+ print(svx)
+ loser_data.append(Path(loser_dir , svx).name)
+
+
+
if cave := get_cave_from_slug(slug.lower()):
pass
elif cave := get_cave_from_slug(slug.upper()):
@@ -31,29 +64,25 @@ def kataster(request, slug):
return HttpResponseRedirect("/caves")
knum = 9999
- filename = str(cave) + ".html"
-
- cave_data = Path( "cave_data", filename )
- if not (settings.EXPOWEB / cave_data).is_file:
- cave_data = "does not exist"
-
- ent_dir = settings.EXPOWEB / "entrance_data"
+ do_file_finding()
- entrance_data = []
- for ent in ent_dir.iterdir():
- if str(ent.name).startswith(str(cave)):
- print(ent.name)
- entrance_data.append("entrance_data/"+ent.name)
+ try:
+ # this is a python generator idiom.
+ # see https://realpython.com/introduction-to-python-generators/
+ with open(settings.CAVEDESCRIPTIONS / cavefilename, 'r') as f:
+ for line in f:
+ if match := re.search(r'<entranceslug>(.*?)</entranceslug>', line):
+ entrance = match.group(1)
+ print(entrance)
+
+ except PermissionError as e:
+ msg=f"CANNOT save this file.\nPERMISSIONS incorrectly set on server for this file {filepath}. Ask a nerd to fix this: {e}"
+ print(msg)
+ raise
+ except Exception as e:
+ msg=f"CANNOT write this file {filepath}. Ask a nerd to fix this: {e}"
+ print(msg)
- loser_name = f"caves-{str(cave.areacode)}/{str(cave.unofficial_number)}"
- loser_dir = settings.SURVEX_DATA / loser_name
- loser_data = []
- if (loser_dir).is_dir():
- print(loser_dir)
- for svx in loser_dir.iterdir():
- print(svx)
- loser_data.append(Path(loser_dir , svx).name)
-
if request.method == "POST": # If the form has been submitted...
form = KatasterForm(request.POST) # A form bound to the POST data
if form.is_valid():