diff options
author | Philip Sargent <philip.sargent@gmail.com> | 2025-02-02 03:10:10 +0000 |
---|---|---|
committer | Philip Sargent <philip.sargent@gmail.com> | 2025-02-02 03:10:10 +0000 |
commit | f39e2c9bb54b5520212c5ee555566fb659821037 (patch) | |
tree | dde97f0112cda696cca397048bfb6681df469326 /core | |
parent | 3003b3c3c30107493ee7a43b821b511fb28c42c8 (diff) | |
download | troggle-f39e2c9bb54b5520212c5ee555566fb659821037.tar.gz troggle-f39e2c9bb54b5520212c5ee555566fb659821037.tar.bz2 troggle-f39e2c9bb54b5520212c5ee555566fb659821037.zip |
many bugs fixed
Diffstat (limited to 'core')
-rw-r--r-- | core/views/cave_kataster.py | 38 |
1 files changed, 29 insertions, 9 deletions
diff --git a/core/views/cave_kataster.py b/core/views/cave_kataster.py index cc5f5ab..bb9d684 100644 --- a/core/views/cave_kataster.py +++ b/core/views/cave_kataster.py @@ -77,12 +77,21 @@ def kataster(request, slug): mvscript += f'sed -i {sed_cmd} {ent}.html\n'
mvscript += f'sed -i {sed_cmd} {pt_target}\n'
+ # 2024-DM-01 has no tag_ or other_station, but does have a *fix, cited in the survex file, catch this case:
+ fix = (cave.unofficial_number)
+ new = fix.replace(cave.unofficial_number,str(knum))
+ sed_cmd = f"s/{fix}/{new}/g".replace(".","\.")
+ mvscript += f'sed -i "{sed_cmd}" {pt_target}\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)
- # entrance_ids.append(ent.name.replace(".html",""))
+
+ mvscript += f'sed -i "/<slug>{str(cave)}/d" {ent.name}\n'
+ mvscript += f'sed -i "/href=\|src=/s/\/{cave.areacode}\/{cave.unofficial_number}\//\/{cave.areacode}\/{knum}\//g" {ent.name}\n'
mvscript += f"mv {ent.name} {ent.name.replace(str(cave.unofficial_number),str(knum))}\n"
mvscript += f"\ncd {get_cd(settings.CAVEDESCRIPTIONS)}\n"
@@ -101,6 +110,11 @@ def kataster(request, slug): mvscript += f"mv {cavefilename} {target}.html\n\n"
mvscript += f"cd {get_cd(settings.EXPOWEB / cave.areacode / cave.unofficial_number)}\n"
+ mvscript += f'sed -i "/href=\|src=/s/\/{cave.areacode}\/{cave.unofficial_number}\//\/{cave.areacode}\/{knum}\//g" *.html\n'
+ mvscript += f'sed -i "/href=\|src=/s/\/{cave.areacode}\/{cave.unofficial_number}\//\/{cave.areacode}\/{knum}\//g" */*.html\n\n'
+
+ mvscript += f"cd {get_cd(settings.EXPOWEB / cave.areacode)}\n"
+ mvscript += f"mv {cave.unofficial_number} {knum}\n\n"
loser_data = []
@@ -126,18 +140,23 @@ def kataster(request, slug): l_script += f'sed -i "/^*begin/s/{survex_name}/{knum}/" {loser_name}/{survex_name}.svx\n'
l_script += f'sed -i "/^*end/s/{survex_name}/{knum}/" {loser_name}/{survex_name}.svx\n'
l_script +=f"# These 'sed' edits will not do everything in all cases, but they do the basics\n\n"
-
- l_script +=f"mv {loser_name} {target}\n"
- l_script +=f"cd {target}\n"
+
+ area_dir = get_cd(settings.SURVEX_DATA / f"caves-{cave.areacode}")
+ l_script +=f"cd {area_dir}\n"
+ l_script +=f"mv {cave.unofficial_number} {knum}\n"
+ l_script +=f"cd {knum}\n"
for filename in loser_data:
l_script +=f"mv {filename} {filename.replace(survex_name,str(knum))}\n"
l_script +=f"# But note that git ignores .log and .3d files\n\n"
-
+ error = ""
+ for dir in [(settings.SURVEX_DATA / f"caves-{cave.areacode}" / str(knum)), (settings.EXPOWEB / cave.areacode / str(knum))]:
+ if dir.is_dir():
+ error += f"STOP: a target directory exists. REMOVE or RENAME it first: {dir}<br>\n"
# 1623 : fixedpts/gps/gps23.svx:26:*fix p2023-mg-03 reference 13.81514 47.69169 1767
# 1626: fixedpts/1626-no-schoenberg-hs-not-tied-to-caves.svx
- return l_script
+ return l_script, error
knum = 9999
@@ -172,7 +191,7 @@ def kataster(request, slug): print(msg)
raise
except Exception as e:
- msg=f"CANNOT write this file {filepath}. Ask a nerd to fix this: {e}"
+ msg=f"CANNOT write this file {f}. Ask a nerd to fix this: {e}"
print(msg)
# Restart script with POST data
@@ -198,7 +217,8 @@ def kataster(request, slug): form = KatasterForm()
script += do_file_finding(knum)
- script += script_loser(knum)
+ scr, error = script_loser(knum)
+ script += scr
alias = f'(\\"{cave.slug()}\\", \\"{cave.areacode}-{knum}\\"),'
aliasfile = settings.CAVEDESCRIPTIONS / "cavealiases.txt"
@@ -214,7 +234,7 @@ def kataster(request, slug): request,
"cave_kataster.html",
{
- "form": form, "warning": warning,
+ "form": form, "warning": warning, "error": error,
"cave": cave, "entrances": entrances,
"cave_data": cave_data, "entrance_data": entrance_data,
"loser_name": loser_name, "loser_data": loser_data,
|