From 7e9fd0f353e26cb3440f8658d5da7b9f1992af82 Mon Sep 17 00:00:00 2001 From: Philip Sargent Date: Wed, 24 Aug 2022 18:28:15 +0300 Subject: [PATCH] Better display of wallet names copied from svx files --- core/models/survex.py | 2 +- core/views/scans.py | 9 +++++++++ parsers/scans.py | 6 +++++- parsers/survex.py | 2 +- templates/cavewallets.html | 4 ++-- templates/personwallets.html | 2 +- templates/wallet_table.html | 3 ++- templates/yearwallets.html | 2 +- 8 files changed, 22 insertions(+), 8 deletions(-) diff --git a/core/models/survex.py b/core/models/survex.py index e5fd1505a..cdf3e59af 100644 --- a/core/models/survex.py +++ b/core/models/survex.py @@ -280,7 +280,7 @@ class Wallet(models.Model): waldata["survex file"] = [waldata["survex file"]] ngood = 0 nbad = 0 - ticks["S"] = "lightblue" + ticks["S"] = "black" for svx in waldata["survex file"]: if svx !="": if (Path(settings.SURVEX_DATA) / svx).is_file(): diff --git a/core/views/scans.py b/core/views/scans.py index 8c380c160..727456308 100644 --- a/core/views/scans.py +++ b/core/views/scans.py @@ -55,12 +55,21 @@ def caveifywallet(w): '''Gets the cave from the list of survex files, only selects one of them though. Only used for display. ''' + blocknames = [] blocks = SurvexBlock.objects.filter(scanswallet = w) for b in blocks: # NB b.cave is not populated by parser. Use b.survexfile.cave instead, or we could parse b.survexpath if b.survexfile.cave: w.cave = b.survexfile.cave # just gets the last one, randomly. SHould make this a list or many:many ideally + if b.name: + blocknames.append(b.name) + + if w.name(): + w.displaynames = [w.name()] + else: + w.displaynames = blocknames + def fillblankpeople(w): wp = w.people() if not wp: # an -empty list diff --git a/parsers/scans.py b/parsers/scans.py index b18dd64ab..f9ec4497d 100644 --- a/parsers/scans.py +++ b/parsers/scans.py @@ -72,6 +72,10 @@ def load_all_scans(): and builds up the models we can access later. It does NOT read or validate anything in the JSON data attached to each wallet. Those checks are done at runtime, when a wallet is accessed, not at import time. + + NOTE that parsers/survex.py does NOT create a wallet if it finds an unrecognised *REF wallet. + Instead it reports an error in DataIssues. But it does make a link in the db between the + existing wallet (probably no JSON, just a folder containing scans) and the survex file. ''' print(' - Loading Survey Scans') @@ -113,7 +117,7 @@ def load_all_scans(): else: - # but We should load all the scans, even for nonstandard names. + # but We *should* load all the scans, even for nonstandard names. print(f'\n - IGNORE {walletname} - {fpath}') # but we also need to check if JSON exists, even if there are no uploaded scan files diff --git a/parsers/survex.py b/parsers/survex.py index 07f57996b..4eec86be9 100644 --- a/parsers/survex.py +++ b/parsers/survex.py @@ -514,7 +514,7 @@ class LoadingSurvex(): print(manywallets[0]) survexblock.save() if len(manywallets) > 1: - message = " ! Wallet *REF {} - more than one found {} scan folders in {}".format(refscan, len(manywallets), survexblock.survexfile.path) + message = " ! Wallet *REF {} - more than one found {} scan folders in block {}".format(refscan, len(manywallets), survexblock.survexfile.path) print(self.insp+message) DataIssue.objects.create(parser='survex', message=message, url=url) else: diff --git a/templates/cavewallets.html b/templates/cavewallets.html index df3b009eb..1647c0c30 100644 --- a/templates/cavewallets.html +++ b/templates/cavewallets.html @@ -27,8 +27,8 @@ traced to produce Tunnel or Therion drawings and eventually the final complete c {{wallet.walletname}} {% if wallet.date %}{{wallet.date}}{% else %} {% endif %} - {% if wallet.name %}{{wallet.name}}{% else %} {% endif %} - {{wallet.persons}} + {% if wallet.name %}{{wallet.name}}{% else %}{% if wallet.displaynames %} {% for dn in wallet.displaynames %}{{dn}}{%if not forloop.last %}, {% endif %} {% endfor %}{% else %} {% endif %}{% endif %} + {{wallet.persons }} {{wallet.singlescan_set.all|length}} diff --git a/templates/personwallets.html b/templates/personwallets.html index 0ec4f63c7..0c52765ad 100644 --- a/templates/personwallets.html +++ b/templates/personwallets.html @@ -26,7 +26,7 @@ traced to produce Tunnel or Therion drawings and eventually the final complete c {{wallet.walletname}} {% if wallet.date %}{{wallet.date}}{% else %} {% endif %} - {% if wallet.name %}{{wallet.name}}{% else %} {% endif %} + {% if wallet.name %}{{wallet.name}}{% else %}{% if wallet.displaynames %} {% for dn in wallet.displaynames %}{{dn}}{%if not forloop.last %}, {% endif %} {% endfor %}{% else %} {% endif %}{% endif %} {{wallet.persons}} {% if wallet.cave %}{{wallet.cave}}{% else %} {% endif %} diff --git a/templates/wallet_table.html b/templates/wallet_table.html index bad144a7f..a7114d1bc 100644 --- a/templates/wallet_table.html +++ b/templates/wallet_table.html @@ -23,7 +23,7 @@ {% if wallet.date %}{{wallet.date}}{% else %} {% endif %} {% if wallet.cave %}{{wallet.cave}}{% else %} {% endif %} - {% if wallet.name %}{{wallet.name}}{% else %} {% endif %} + {% if wallet.name %}{{wallet.name}}{% else %}{% if wallet.displaynames %} {% for dn in wallet.displaynames %}{{dn}}{%if not forloop.last %}, {% endif %} {% endfor %}{% else %} {% endif %}{% endif %}     @@ -38,3 +38,4 @@ {% endfor %} +

Note that names in italics are copied from the related survex file block name. diff --git a/templates/yearwallets.html b/templates/yearwallets.html index df6c7ac9b..231f0e9d9 100644 --- a/templates/yearwallets.html +++ b/templates/yearwallets.html @@ -26,7 +26,7 @@ traced to produce Tunnel or Therion drawings and eventually the final complete c {{wallet.walletname}} {% if wallet.date %}{{wallet.date}}{% else %} {% endif %} - {% if wallet.name %}{{wallet.name}}{% else %} {% endif %} + {% if wallet.name %}{{wallet.name}}{% else %}{% if wallet.displaynames %} {% for dn in wallet.displaynames %}{{dn}}{%if not forloop.last %}, {% endif %} {% endfor %}{% else %} {% endif %}{% endif %} {{wallet.persons}} {% if wallet.cave %}{{wallet.cave}}{% else %} {% endif %}