2
0
mirror of https://expo.survex.com/repositories/troggle/.git synced 2025-12-17 18:37:11 +00:00

Revised text on pending cave creation

This commit is contained in:
2025-07-26 14:31:11 +02:00
parent d6dcd7a39a
commit 76f7b10777

View File

@@ -35,10 +35,6 @@ todo = """
re.findall("<%(itemname)s>(.*?)</%(itemname)s>" % {"itemname": itemname}, text, re.S) re.findall("<%(itemname)s>(.*?)</%(itemname)s>" % {"itemname": itemname}, text, re.S)
in modern form and pre-compile it. in modern form and pre-compile it.
- crashes on MariaDB in databasereset.py on server when deleting Caves and complains Area needs a
non null parent, But this is not true. The only solution we have found is to let it crash, then
stop and restart MariaDB (requires a logon able to sudo) and then restart the databasereset.py
again. (status as of July 2022). May not happen now that class Area is removed (Sept.2023).
""" """
AREACODES = {"1623", "1624", "1626", "1627"} # NB set not dict AREACODES = {"1623", "1624", "1626", "1627"} # NB set not dict
ARGEAREAS = {"1626", "1627", "1624"} # NB set not dict ARGEAREAS = {"1626", "1627", "1624"} # NB set not dict
@@ -75,18 +71,7 @@ def report_absent_entrace(id, slug, cave, msg="DUMMY"):
Called when the Entrance field in a cave_data file is either missing or Called when the Entrance field in a cave_data file is either missing or
holds a null string instead of a filename. holds a null string instead of a filename.
Previously, the lack of an entrance where an entrance was expected, caused troggle to crash in several places.
But it is more robust now, so this is not necessary... we hope.
Also, Cave and Entrance editing now expects there to be a real file (since April 2023), so creating this
dummy is actually harmful. So this is commented out, pending removal after further experience.
global variable entrances_xslug is simply a cache of references to Entrance objects
to speed things up when parsing a lot of caves and entrances. All DB actions are time-consuming
so
""" """
global entrances_xslug
message = f" - Note: Missing Entrance for entrance '{id}' on cave '{cave}' - Is this a problem?" message = f" - Note: Missing Entrance for entrance '{id}' on cave '{cave}' - Is this a problem?"
print(message) print(message)
DataIssue.objects.create(parser="entrances", message=message, url=f"{cave.url}") DataIssue.objects.create(parser="entrances", message=message, url=f"{cave.url}")
@@ -105,25 +90,13 @@ def create_new_cave(svxpath, svxid=None, msg=None):
# e.g. svxpath = "caves-1623/666/beast" .svx - from the *inlcude tree # e.g. svxpath = "caves-1623/666/beast" .svx - from the *inlcude tree
# e.g. svxid = "caves-1623/666/beast" # e.g. svxid = "caves-1623/666/beast"
print(f"Create new cave at {svxpath} - {msg}") print(f"Create new cave at {svxpath} - {msg}")
#
survex_file = ""
if svxid: if svxid:
sv = Path(settings.SURVEX_DATA, svxid + ".svx") sv = svxid
if sv.is_file:
survex_file = svxid + ".svx"
else: else:
sv = Path(settings.SURVEX_DATA, svxpath + ".svx") sv = svxpath
if sv.is_file: survex_file = settings.SURVEX_DATA / sv / ".svx"
survex_file = svxpath + ".svx" if not survex_file.is_file:
message = f"NOT found a survex file {sv} in create_new_cave() {svxpath=} {svxid=}"
if survex_file:
# message = f"Found a survex file {survex_file=} {svxpath=} {svxid=} "
# DataIssue.objects.create(parser="caves", message=message)
# print(message, file=sys.stderr)
# print(message)
pass
else:
message = f"NOT found a survex file {svxpath=} {svxid=}"
DataIssue.objects.create(parser="caves", message=message) DataIssue.objects.create(parser="caves", message=message)
print(message, file=sys.stderr) print(message, file=sys.stderr)
print(message) print(message)
@@ -143,7 +116,7 @@ def create_new_cave(svxpath, svxid=None, msg=None):
k = f"{areacode}-{caveid}" k = f"{areacode}-{caveid}"
caves = Cave.objects.filter(unofficial_number=caveid, areacode =areacode) caves = Cave.objects.filter(unofficial_number=caveid, areacode=areacode)
if caves: if caves:
message = f" ! Already exists, caveid:{k} in areacode {areacode} {caves} - {msg}" message = f" ! Already exists, caveid:{k} in areacode {areacode} {caves} - {msg}"
DataIssue.objects.create(parser="caves", message=message) DataIssue.objects.create(parser="caves", message=message)
@@ -306,43 +279,68 @@ def do_pending_cave(slug, caveid, url, areacode, msg=None):
DataIssue.objects.create(parser="caves", message=message, url=url) DataIssue.objects.create(parser="caves", message=message, url=url)
print(message) print(message)
return return
default_note = f"""
This cave in is the "pending" state.
<p>This can happen for 3 reasons:
<ul>
<li>A reference has been found to this cave id in a survex file, [MOST LIKELY]
<li>or on a wallet,
<li>or this cave id is listed in the "pending caves" list.
</ul>
but no <em>Cave Description</em> exists yet [see below]. <p>
INSTRUCTIONS: <br />
Open 'This survex file' elsewhere on this page to find the date and info. Then
<ol>
default_note = "A reference has been found to this cave id in a survex file in the loser repo, or in a wallet metadata" <li>search in the survex file (<em>{survex_file}</em>) for the *ref to find
default_note += " in a JSON file in the drawings repo, but no Cave Description exists in expoweb (in /cave_data/)<br><br><br>\n" a relevant wallet, e.g.<a href='/survey_scans/2009%252311/'>2009#11</a> and
default_note += "INSTRUCTIONS: FIRST read the notes in <a href='/cave_data/pendingcaves.txt'>pendingcaves.txt</a><br />" read the notes image files n the wallet.
default_note += "Next open 'This survex file' (link above the CaveView panel) to find the date and info. Then " <ul>
default_note += '<br><br>\n\n - (0) look in the <a href="/noinfo/cave-number-index">cave number index</a> for notes on this cave, ' <li>Scroll down to the bottom of the wallet page where you will find a list of logbook entries,
default_note += "<br><br>\n\n - (1) search in the survex file for the *ref to find a " wallets and survex files which have all been dated to <em>the same day</em>.
default_note += "relevant wallet, e.g.<a href='/survey_scans/2009%252311/'>2009#11</a> and read the notes image files <br>\n - " Check all these to see if there is any other relevant information about this cave.
default_note += ( </ul><br><br>
"<br><br>\n\n - (2) search in the Expo for that year e.g. <a href='/expedition/2009'>2009</a> to find a "
) <li>search in the Expo for that year e.g. <a href='/logreport/2009'>2009</a> to find a relevant logbook entry,
default_note += "relevant logbook entry, remember that the date may have been recorded incorrectly, " remember that the date may have been recorded incorrectly, so check for trips
default_note += ( i.e. logbook entries involving the same people as were listed in the survex file,
"so check for trips i.e. logbook entries involving the same people as were listed in the survex file, " and you should also check the scanned copy of the logbook (linked from each logbook entry page)
) just in case a vital trip was not fully transcribed (sketch images are missing for many years in the online logbooks).
default_note += (
"and you should also check the scanned copy of the logbook (linked from each logbook entry page) " <li>check the <a href="/noinfo/cave-number-index">cave number index</a> just in case there are notes for this cave, <br><br>
) </ol>
default_note += "just in case a vital trip was not transcribed, then <br>\n - " Then
default_note += ( <ol>
"click on 'Edit this cave' and copy the information you find in the survex file and the logbook" <li>click on 'Edit this cave' [menu item on the left hand side of this page] to type in the <em>Cave Description</em>
) and copy the information you find in the survex file, the wallet and the logbook and
default_note += "and delete all the text in the 'Notes' section - which is the text you are reading now." delete all the dummy default text in the 'Notes' section of the <em>Cave Description</em> - which is the text you are reading now.
default_note += "<br><br>\n\n - Only two fields on this form are essential. "
default_note += "Documentation of all the fields on 'Edit this cave' form is in <a href='/handbook/survey/caveentryfields.html'>handbook/survey/caveentryfields</a>" <li>Read the documentation of all the fields on 'Edit this cave' form.
default_note += "<br><br>\n\n - " It is in <a href='/handbook/survey/caveentryfields.html'>handbook/survey/caveentryfields</a><br><br>
default_note += "You will also need to create a new entrance from the 'Edit this cave' page. Ignore the existing dummy one, it will evaporate on the next full import."
default_note += "<br><br>\n\n - " <li>You will also need to create a new entrance from the 'Edit this cave' page.
default_note += "When you Submit it will create a new file in expoweb/cave_data/ " Ignore the existing dummy one, it will evaporate on the next full import.<br><br>
default_note += (
"<br><br>\n\n - Now you can edit the entrance info: click on Edit below for the dummy entrance. " <li>When you Submit the Cave form it will create a new file in expoweb/cave_data/ <br><br>
)
default_note += "and then Submit to save it (if you forget to do this, a dummy entrance will be created for your new cave description)." <li><em>Only now</em> can you edit the entrance info:
default_note += "<br><br>\n\n - Finally, you need to find a nerd to edit the file '<var>expoweb/cave_data/pendingcaves.txt</var>' " click on Edit below for the dummy entrance. and then Submit to save it.<br><br>
default_note += (
f"to remove the line <br><var>{slug}</var><br> as it is no longer 'pending' but 'done. Well Done." - Finally, if there was an entry in the pending list,
) edit the file '<var>expoweb/cave_data/pendingcaves.txt</var>' to remove
the line referring to <br><var>{caveid}</var><br> as it is no longer 'pending' but 'done'.
Do this using this link: <a href="/cave_data/pendingcaves.txt_edit">edit the pending list</a>. Well Done.
</ol>
<h4>Explanatory footnote</h4>
A reference to this cave would be in
</ul>
<li>A survex file, which is stored in the <var>:loser:</var> repo.
<li>A wallet, which is stored in the <var>walletjson</var> folder inside the <var>:drawings:</var> repo.
<li> the pending caves file in the <var>:expoweb:</var> repo. Read the notes in <a href='/cave_data/pendingcaves.txt'>pendingcaves.txt</a>
</ul>
"""
urltest = Cave.objects.filter(url=url) urltest = Cave.objects.filter(url=url)
if urltest: if urltest:
message = f" ! Cave {urltest[0]} already exists with this url {url}. Can't create new cave {slug}" message = f" ! Cave {urltest[0]} already exists with this url {url}. Can't create new cave {slug}"