Pending caves with 1626 properly

This commit is contained in:
Philip Sargent 2022-07-25 02:57:00 +03:00
parent 25d5361da4
commit 476ee482fa

View File

@ -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()