summaryrefslogtreecommitdiffstats
path: root/parsers/caves.py
diff options
context:
space:
mode:
Diffstat (limited to 'parsers/caves.py')
-rw-r--r--parsers/caves.py30
1 files changed, 24 insertions, 6 deletions
diff --git a/parsers/caves.py b/parsers/caves.py
index d2a8306..22624b2 100644
--- a/parsers/caves.py
+++ b/parsers/caves.py
@@ -147,11 +147,11 @@ def create_new_cave(svxpath, svxid=None, msg=None):
# double check
if a[0:3] == "162":
areacode = a[0:4]
- url = f"{areacode}/{caveid}.html" # Note we are appending the .html as we are believe in backwards compatability. This is to fix Martin's new 2023 app.
+ url = f"{areacode}/{caveid}/{caveid}.html" # Note we are appending the .html as we are believe in backwards compatability. This is to fix Martin's new 2023 app.
else:
print(f"WARNING: parsers/caves/create_new_cave called with svxpath '{svxpath}'. Surely it should start 'caves-162*'? {msg}")
areacode = "1623"
- url = f"1623/{caveid}.html"
+ url = f"1623/{caveid}/{caveid}.html"
k = f"{areacode}-{caveid}"
@@ -194,7 +194,7 @@ def do_ARGE_cave(slug, caveid, areacode, svxid):
"""
default_note = "This is (probably) an ARGE cave where we only have the survex file and no other information"
- url = f"{areacode}/{caveid}.html"
+ url = f"{areacode}/{caveid}/{caveid}.html"
urltest = Cave.objects.filter(url=url)
if urltest:
@@ -643,7 +643,7 @@ def read_cave(filename, cave=None):
except:
print(f"! Entrance setting failure {slug}")
message = f' ! Entrance setting failure, slug:"{slug}" #entrances:{len(entrances)} letter:"{letter}" cave:"{cave}" filename:"cave_data/{filename}"\n{e}'
- DataIssue.objects.create(parser="entrances", message=message, url=f"{cave.url}_cave_edit/")
+ DataIssue.objects.create(parser="entrances", message=message, url=f"{cave.areacode}/{cave.areacode}-{cave.url}_cave_edit/")
print(message)
def reload_entrances():
"""For individual re-reading of a cave_data file when editing,
@@ -671,10 +671,25 @@ def read_cave(filename, cave=None):
#raise
# This fails to do an update! It just crashes.. to be fixed
message = f" ! CaveSlug update/create failure : {slug}, skipping file cave_data/{context} with exception\nException: {ex.__class__}"
- DataIssue.objects.create(parser="caves", message=message, url=f"{cave.url}_edit/")
+ DataIssue.objects.create(parser="caves", message=message, url=f"{cave.url()}_edit/")
print(message)
primary = False
+ def check_directory(areacode, caveid, url, cave):
+ dir = Path(settings.EXPOWEB, areacode, caveid)
+ dir_l = Path(settings.EXPOWEB, areacode, caveid.lower())
+ dir_u = Path(settings.EXPOWEB, areacode, caveid.upper())
+ if dir.is_dir():
+ return
+ if dir_l.is_dir() or dir_u.is_dir():
+ message = f" ! Cave URL capitalisation incorrect '{dir}' is not a directory but different capitalisation is. {url=} "
+ DataIssue.objects.create(parser="caves", message=message, url=f"{cave.slug()}_cave_edit/")
+ print(message)
+ return
+ if cave.filename:
+ # not a pending cave, yet the directory does not exist. This is FINE. Many don't (yet)
+ pass
+
def check_slug(areacode, kataster_number, unofficial_number, url):
if kataster_number:
if slug == f"{areacode}-{kataster_number}":
@@ -806,7 +821,10 @@ def read_cave(filename, cave=None):
cave.extent=extent[0]
cave.survex_file=survex_file[0]
cave.description_file=description_file[0]
- cave.url=url[0]
+ # cave.url=url[0]
+ # override url in file. We now have a standard canonical form:
+ cave.url = f"{cave.areacode}/{cave.number()}/{cave.number()}.html"
+ check_directory(cave.areacode, cave.number(), cave.url, cave)
check_slug(cave.areacode,cave.kataster_number, cave.unofficial_number, cave.url)