diff options
author | Philip Sargent <philip.sargent@gmail.com> | 2023-10-23 02:32:44 +0300 |
---|---|---|
committer | Philip Sargent <philip.sargent@gmail.com> | 2023-10-23 02:32:44 +0300 |
commit | 54ffab3e93a8d3f0b3d253037eb57a7fb78012d5 (patch) | |
tree | 61b76c536bd61024ef46ea45a7ed73af1cc5972c /core | |
parent | 8f87e4f77a1128cb89826827bf5b9ae9dea901dc (diff) | |
download | troggle-54ffab3e93a8d3f0b3d253037eb57a7fb78012d5.tar.gz troggle-54ffab3e93a8d3f0b3d253037eb57a7fb78012d5.tar.bz2 troggle-54ffab3e93a8d3f0b3d253037eb57a7fb78012d5.zip |
checking wallets earlier int he process
Diffstat (limited to 'core')
-rw-r--r-- | core/models/wallets.py | 31 | ||||
-rw-r--r-- | core/views/caves.py | 1 | ||||
-rw-r--r-- | core/views/wallets_edit.py | 8 |
3 files changed, 30 insertions, 10 deletions
diff --git a/core/models/wallets.py b/core/models/wallets.py index 3f59da0..1cc42e8 100644 --- a/core/models/wallets.py +++ b/core/models/wallets.py @@ -10,6 +10,7 @@ from django.conf import settings from django.db import models from django.urls import reverse +from troggle.core.models.troggle import DataIssue from troggle.core.views.caves import get_cave_leniently # from troggle.core.models.survex import SurvexBlock @@ -143,8 +144,26 @@ class Wallet(models.Model): message = f"! {str(self.walletname)} Date format not ISO {waldata['date']}. Failed to load from {jsonfile} JSON file" from troggle.core.models.troggle import DataIssue DataIssue.objects.update_or_create(parser="wallets", message=message, url=wurl) + + return waldata - + + def check_survexlist(self): + wurl = f"/walletedit/{self.walletname}".replace('#', ':') + if not (waldata := self.get_json()): # WALRUS + return None + if waldata["survex file"]: + if not type(waldata["survex file"]) == list: # a string also is a sequence type, so do it this way + waldata["survex file"] = [waldata["survex file"]] + for sx in waldata["survex file"]: + # this logic appears in several places, inc get_ticks(). and wallets_edit.py Refactor. + if sx != "": + if Path(sx).suffix.lower() != ".svx": + sx = sx + ".svx" + if not (Path(settings.SURVEX_DATA) / sx).is_file(): + message=f"{self} Survex file {sx} was not found in LOSER repo" + DataIssue.objects.update_or_create(parser="wallets", message=message, url=wurl) + def allcaves(self): """Reads all the JSON data just to get the JSON date.""" if not (jsondata := self.get_json()): # WALRUS @@ -209,23 +228,19 @@ class Wallet(models.Model): self.save() return self.walletdate - # for gods sake redo this, it parse JSON twice every time.. def people(self): - if not self.get_json(): + if not (jsondata := self.get_json()): # WALRUS return None - jsondata = self.get_json() return jsondata["people"] def cave(self): - if not self.get_json(): + if not (jsondata := self.get_json()): # WALRUS return None - jsondata = self.get_json() return jsondata["cave"] def name(self): - if not self.get_json(): + if not (jsondata := self.get_json()): # WALRUS return None - jsondata = self.get_json() return jsondata["name"] def get_fnames(self): diff --git a/core/views/caves.py b/core/views/caves.py index bc5d6d7..c845f01 100644 --- a/core/views/caves.py +++ b/core/views/caves.py @@ -405,6 +405,7 @@ def edit_cave(request, path="", slug=None): if form.is_valid(): # and ceFormSet.is_valid(): # print(f'! POST is valid. {cave}') cave = form.save(commit=False) + print(cave) if not cave.filename: cave.filename = cave.areacode + "-" + cave.number() + ".html" if not cave.url: diff --git a/core/views/wallets_edit.py b/core/views/wallets_edit.py index c99201b..541048d 100644 --- a/core/views/wallets_edit.py +++ b/core/views/wallets_edit.py @@ -156,7 +156,7 @@ def get_complaints(complaints, waldata, svxfiles, files, wallet, wurl): message = f"! {file_complaint}" print(message) DataIssue.objects.update_or_create( - parser="scans", message=message, url=wurl + parser="wallets", message=message, url=wurl ) # set URL to this wallet folder else: try: @@ -165,6 +165,10 @@ def get_complaints(complaints, waldata, svxfiles, files, wallet, wurl): except MultipleObjectsReturned: # can happen if connecting a wallet to a survex file.. i think.. QSsvxfiles = SurvexFile.objects.filter(path=sxpath) + message = f"! {wallet} Urk, multiple SurvexFile objects {sxpath}" + DataIssue.objects.update_or_create( + parser="wallets", message=message, url=wurl + ) # set URL to this wallet folder for s in QSsvxfiles: print(s.path, s.cave, s.primary) # QSsvxfiles[0] # dont' know how this happened, fix later.. @@ -176,7 +180,7 @@ def get_complaints(complaints, waldata, svxfiles, files, wallet, wurl): message = f"! {file_complaint}" print(message) DataIssue.objects.update_or_create( - parser="scans", message=message, url=wurl + parser="wallets", message=message, url=wurl ) # set URL to this wallet folder if waldata["survex not required"] and waldata["survex file"] != [""]: |