diff --git a/core/views/other.py b/core/views/other.py index 0f74657..2a2edee 100644 --- a/core/views/other.py +++ b/core/views/other.py @@ -43,6 +43,7 @@ def todos(request, module): ''' from troggle.core.TESTS.tests import todo as tests from troggle.core.views.logbooks import todo as viewlogbooks + from troggle.parsers.caves import todo as parserscaves from troggle.parsers.logbooks import todo as parserslogbooks from troggle.parsers.survex import todo as parserssurvex from troggle.core.models.caves import todo as modelcaves @@ -51,6 +52,7 @@ def todos(request, module): tododict = {'views/other': todo, 'tests': tests, 'views/logbooks': viewlogbooks, + 'parsers/caves': parserscaves, 'parsers/logbooks': parserslogbooks, 'parsers/survex': parserssurvex, 'core/models/caves': modelcaves, diff --git a/parsers/caves.py b/parsers/caves.py index 6b17878..c969acd 100644 --- a/parsers/caves.py +++ b/parsers/caves.py @@ -19,6 +19,12 @@ django.db.transaction.TransactionManagementError: An error occurred in the current transaction. You can't execute queries until the end of the 'atomic' block. ''' +todo='''- Update does not work when a cave id is in the pending list but a proper cave description file exists + and is being imported. It should work. But currently Django aborts and he file is not read in. + + - Cannot use Edit This Page for pendingcaves.txt_edit as Edit This Page is expecting an html file. + So we will need a separate file-editing capability just for this configuration file. +''' entrances_xslug = {} caves_xslug = {} areas_xslug = {} @@ -133,7 +139,13 @@ def readcaves(): ''' # For those caves which do not have cave_data/1623-xxx.html XML files even though they exist and have surveys # should put this in a simple list which can be edited using 'Edit this file' - pending = settings.PENDING + pending = [] + fpending = Path(settings.CAVEDESCRIPTIONS, "pendingcaves.txt") + if fpending.is_file(): + with open(fpending, "r") as fo: + cids = fo.readlines() + for cid in cids: + pending.append(cid.rstrip('\n')) with transaction.atomic(): print(" - Deleting Caves and Entrances") @@ -372,6 +384,7 @@ def readcave(filename): primary = primary) caves_xslug[slug] = cs except Exception as ex: + # This fails to do an update! It just crashes.. to be fixed message = " ! Cave update/create failure : %s, skipping file cave_data/%s with exception\nException: %s" % (slug, context, ex.__class__) DataIssue.objects.create(parser='caves', message=message) print(message)