From f39e2c9bb54b5520212c5ee555566fb659821037 Mon Sep 17 00:00:00 2001 From: Philip Sargent Date: Sun, 2 Feb 2025 03:10:10 +0000 Subject: many bugs fixed --- core/views/cave_kataster.py | 38 +++++++++++++++++++++++++++++--------- 1 file changed, 29 insertions(+), 9 deletions(-) (limited to 'core/views/cave_kataster.py') 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 "/{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}
\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, -- cgit v1.2.3