mirror of
https://expo.survex.com/repositories/troggle/.git
synced 2025-12-18 02:37:13 +00:00
initial rename script textarea
This commit is contained in:
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user