summaryrefslogtreecommitdiffstats
path: root/core/views
diff options
context:
space:
mode:
authorPhilip Sargent <philip.sargent@gmail.com>2025-01-31 18:30:22 +0000
committerPhilip Sargent <philip.sargent@gmail.com>2025-01-31 18:30:22 +0000
commit43634fb47547a5fbfbc2af1ead93f8597f4925a3 (patch)
tree9e71713ee9c793fd2b59e4bda0d6416ca04658c7 /core/views
parent49ea30cf0691bfb075791d6a6f9837db9392ff88 (diff)
downloadtroggle-43634fb47547a5fbfbc2af1ead93f8597f4925a3.tar.gz
troggle-43634fb47547a5fbfbc2af1ead93f8597f4925a3.tar.bz2
troggle-43634fb47547a5fbfbc2af1ead93f8597f4925a3.zip
initial rename script textarea
Diffstat (limited to 'core/views')
-rw-r--r--core/views/cave_kataster.py33
1 files changed, 25 insertions, 8 deletions
diff --git a/core/views/cave_kataster.py b/core/views/cave_kataster.py
index a682870..96bfe6a 100644
--- a/core/views/cave_kataster.py
+++ b/core/views/cave_kataster.py
@@ -7,7 +7,7 @@ from django.http import HttpResponseRedirect
from django.shortcuts import redirect, render
import troggle.settings as settings
-
+#from troggle.core.models.caves import Entrance, Cave
from troggle.core.utils import (
COOKIE_MAX_AGE,
WriteAndCommitError,
@@ -27,23 +27,27 @@ 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():
+
+ def do_file_finding(knum):
global cavefilename, cave_data, entrance_data, loser_name, loser_data
+ mvscript = f"cd {settings.CAVEDESCRIPTIONS }\n"
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"
+ mvscript += f"mv {cavefilename} {cave.areacode}-{str(knum)}.html\n"
ent_dir = settings.ENTRANCEDESCRIPTIONS # settings.EXPOWEB / "entrance_data"
-
+ mvscript += f"cd {settings.ENTRANCEDESCRIPTIONS }\n"
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)
+ mvscript += f"mv {ent.name} {ent.name.replace(str(cave),str(knum))}\n"
loser_name = f"caves-{str(cave.areacode)}/{str(cave.unofficial_number)}"
loser_dir = settings.SURVEX_DATA / loser_name
@@ -52,8 +56,10 @@ def kataster(request, slug):
print(loser_dir)
for svx in loser_dir.iterdir():
print(svx)
- loser_data.append(Path(loser_dir , svx).name)
+ loser_data.append(Path(loser_dir , svx).name)
+ return mvscript
+ knum = 9999
if cave := get_cave_from_slug(slug.lower()):
@@ -63,14 +69,18 @@ def kataster(request, slug):
else:
return HttpResponseRedirect("/caves")
- knum = 9999
- do_file_finding()
+ entrances = []
+ for e in cave.entrances(): # horrid CaveAndEntrance indirection we need to refactor out in due course
+ if e.entrance.best_station():
+ entrances.append(e.entrance)
+ _ = do_file_finding(knum)
try:
# this is a python generator idiom.
# see https://realpython.com/introduction-to-python-generators/
# THIS IS VERY SILLY. We have this in the databse fom when this file was parsed. Don't read it again !
+ # However we will need to parse the href= and src= strings in the cave description text, notes etc.
with open(settings.CAVEDESCRIPTIONS / cavefilename, 'r') as f:
for line in f:
if match := re.search(r'<entranceslug>(.*?)</entranceslug>', line):
@@ -85,24 +95,31 @@ def kataster(request, slug):
msg=f"CANNOT write this file {filepath}. Ask a nerd to fix this: {e}"
print(msg)
+ script = ""
+
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():
clean = form.cleaned_data
knum = clean['kataster_number']
print(f" # kataster_number {clean['kataster_number']}")
+
+ # DETECT if this is an LAREADY USED kataster number in this area ! If so, WARNING!!
+ # (we might be half-way through, so it might exist)
else: # GET and fall-through if POST is not valid
form = KatasterForm()
+ script += do_file_finding(knum)
+
return render(
request,
"cave_kataster.html",
{
"form": form,
- "cave": cave,
+ "cave": cave, "entrances": entrances,
"cave_data": cave_data, "entrance_data": entrance_data,
"loser_name": loser_name, "loser_data": loser_data,
- "knum": knum,
+ "knum": knum, "script": script,
}, )
class KatasterForm(forms.Form):