diff options
Diffstat (limited to 'core/models')
-rw-r--r-- | core/models/caves.py | 14 | ||||
-rw-r--r-- | core/models/wallets.py | 7 |
2 files changed, 19 insertions, 2 deletions
diff --git a/core/models/caves.py b/core/models/caves.py index 3193f2b..b3f6dfe 100644 --- a/core/models/caves.py +++ b/core/models/caves.py @@ -62,6 +62,20 @@ class CaveAndEntrance(models.Model): # class CaveSlug(models.Model): # moved to models/logbooks.py to avoid cyclic import problem. No I don't know why either. +def get_cave_leniently(caveid): + try: + c = getCave(caveid) + if c: + return c + except: + # print(f"get_cave_leniently FAIL {caveid}") + try: + c = getCave("1623-"+caveid) + if c: + return c + except: + return None + class Cave(TroggleModel): # (far) too much here perhaps, areacode = models.CharField(max_length=4, blank=True, null=True) # could use models.IntegerChoices diff --git a/core/models/wallets.py b/core/models/wallets.py index 3078e2d..0382adb 100644 --- a/core/models/wallets.py +++ b/core/models/wallets.py @@ -11,7 +11,7 @@ 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.caves import get_cave_leniently # from troggle.core.models.survex import SurvexBlock # from troggle.core.models.troggle import DataIssue # circular import. Hmm @@ -133,6 +133,9 @@ class Wallet(models.Model): # we do not use URL_ROOT any more. return reverse("singlewallet", kwargs={"path": re.sub("#", "%23", self.walletname)}) + def get_url(self): + return f"/walletedit/{self.walletname}".replace('#', ':') + def get_json(self): """Read the JSON file for the wallet and do stuff Do it every time it is queried, to be sure the result is fresh.. well, no. @@ -150,7 +153,7 @@ class Wallet(models.Model): fp = Path(self.fpath) wname = fp.name wyear = fp.parent.name - wurl = f"/walletedit/{self.walletname}".replace('#', ':') + wurl = self.get_url() if len(wyear) != 4 or len(wname) !=6: # no contents.json for old-style wallets |