summaryrefslogtreecommitdiffstats
path: root/parsers/caves.py
diff options
context:
space:
mode:
authorPhilip Sargent <philip.sargent@klebos.com>2022-07-25 02:57:00 +0300
committerPhilip Sargent <philip.sargent@klebos.com>2022-07-25 02:57:00 +0300
commit476ee482fab74eb4da901777c19de72754c6c752 (patch)
tree37eec57dd3c5654ca851a8a2035af01cb1f9faa1 /parsers/caves.py
parent25d5361da4a1215bfea74a1a93e4940427786380 (diff)
downloadtroggle-476ee482fab74eb4da901777c19de72754c6c752.tar.gz
troggle-476ee482fab74eb4da901777c19de72754c6c752.tar.bz2
troggle-476ee482fab74eb4da901777c19de72754c6c752.zip
Pending caves with 1626 properly
Diffstat (limited to 'parsers/caves.py')
-rw-r--r--parsers/caves.py23
1 files changed, 13 insertions, 10 deletions
diff --git a/parsers/caves.py b/parsers/caves.py
index 4b8178a..f568c8c 100644
--- a/parsers/caves.py
+++ b/parsers/caves.py
@@ -8,7 +8,8 @@ from django.db import transaction
from troggle.settings import SURVEX_DATA, EXPOWEB, CAVEDESCRIPTIONS, ENTRANCEDESCRIPTIONS
from troggle.core.models.troggle import DataIssue
-from troggle.core.models.caves import Area, Cave, Entrance, CaveSlug, EntranceSlug, CaveAndEntrance
+from troggle.core.models.caves import Area, Cave, Entrance, CaveSlug, EntranceSlug, CaveAndEntrance, GetCaveLookup
+
'''Reads all the cave description data by parsing the xml files (stored as e.g. :EXPOWEB:/cave_data/1623-161.html )
and creating the various Cave, Entrance and necessary Area objects.
@@ -83,12 +84,10 @@ def set_dummy_entrance(id, slug, cave, msg="DUMMY"):
DataIssue.objects.create(parser='caves', message=message, url=f'{cave.url}')
print(message)
-def do_pending_cave(k, url, area_1623):
+def do_pending_cave(k, url, area):
'''
default for a PENDING cave, should be overwritten in the db later if a real cave of the same name exists
in expoweb/cave_data/1623-"k".html
-
- oops. Now need to do for 1626 area too
'''
slug = k
@@ -116,14 +115,14 @@ def do_pending_cave(k, url, area_1623):
cave = Cave(
unofficial_number = k,
underground_description = "Pending cave write-up - creating as empty object. No XML file available yet.",
- survex_file = "caves-1623/" + k + "/" + k +".svx",
+ survex_file = f"caves-{area.short_name}/{k}/{k}.svx",
url = url,
notes = default_note)
if cave:
cave.save() # must save to have id before foreign keys work. This is also a ManyToMany key.
- cave.area.add(area_1623)
+ cave.area.add(area)
cave.save()
- message = f" ! {k:12} {cave.underground_description}"
+ message = f" ! {k:14} {cave.underground_description} url: {url}"
DataIssue.objects.create(parser='caves', message=message, url=url)
print(message)
@@ -468,9 +467,9 @@ def readcaves():
for k in pending:
- url = k.replace("-","/") # Note we are not appending the .htm as we are modern folks now.
area = area_1623
- areanum = k[0:3]
+ areanum = k[0:4]
+ url = areanum + "/" + k[5:] # Note we are not appending the .htm as we are modern folks now.
if areanum == "1623":
area = area_1623
if areanum == "1624":
@@ -478,7 +477,7 @@ def readcaves():
if areanum == "1626":
area = area_1626
try:
- do_pending_cave(k, url, area)
+ do_pending_cave(k[5:], url, area)
except:
message = f" ! Error. Cannot create pending cave and entrance, pending-id:{k} in area {areanum}"
DataIssue.objects.create(parser='caves', message=message)
@@ -500,3 +499,7 @@ def readcaves():
for filename in next(os.walk(CAVEDESCRIPTIONS))[2]: #Should be a better way of getting a list of files
if filename.endswith('.html'):
readcave(filename)
+
+ print (" - Setting up all the variously useful alias names")
+ mycavelookup = GetCaveLookup()
+