diff options
author | Philip Sargent <philip.sargent@gmail.com> | 2022-12-20 00:07:55 +0000 |
---|---|---|
committer | Philip Sargent <philip.sargent@gmail.com> | 2022-12-20 00:07:55 +0000 |
commit | f24f283a073d070f1335239d0df47d499ba3876f (patch) | |
tree | 29f291c740335ec6fdbe8c7e8e2daebfc984c028 /core/models/survex.py | |
parent | bb14c94ab10cbd279586c97822372bba8375b67b (diff) | |
download | troggle-f24f283a073d070f1335239d0df47d499ba3876f.tar.gz troggle-f24f283a073d070f1335239d0df47d499ba3876f.tar.bz2 troggle-f24f283a073d070f1335239d0df47d499ba3876f.zip |
attempted speedup, explicit dates wallet objects
Diffstat (limited to 'core/models/survex.py')
-rw-r--r-- | core/models/survex.py | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/core/models/survex.py b/core/models/survex.py index 5d60e62..3c6ba47 100644 --- a/core/models/survex.py +++ b/core/models/survex.py @@ -172,6 +172,7 @@ class Wallet(models.Model): fpath = models.CharField(max_length=200) walletname = models.CharField(max_length=200) walletdate = models.DateField(blank=True, null=True) + walletyear = models.DateField(blank=True, null=True) class Meta: ordering = ('walletname',) @@ -213,6 +214,8 @@ class Wallet(models.Model): print(f' - {datestr=} ') try: thisdate = datetime.date.fromisoformat(datestr) + self.walletdate = thisdate + self.save() try: waldata["date"] = thisdate.isoformat() except: @@ -220,20 +223,24 @@ class Wallet(models.Model): from troggle.core.models.troggle import DataIssue DataIssue.objects.update_or_create(parser='scans', message=message, url=wurl) except: - message = f"! {str(self.walletname)} Date format not ISO {datestr}. Failed to load fro, {jsonfile} JSON file" + message = f"! {str(self.walletname)} Date format not ISO {datestr}. Failed to load from {jsonfile} JSON file" from troggle.core.models.troggle import DataIssue DataIssue.objects.update_or_create(parser='scans', message=message, url=wurl) return waldata def year(self): + '''This gets the year syntactically without opening and reading the JSON + ''' if len(self.walletname) < 5: return None if self.walletname[4] != "#": return None year = int(self.walletname[0:4]) - if year < 1976 or year > 2050: + if year < 1975 or year > 2050: return None else: + self.walletyear = datetime.date(year, 1, 1) + self.save() return str(year) @@ -243,7 +250,7 @@ class Wallet(models.Model): return self.walletdate if not self.get_json(): return None - jsondata = self.get_json() + jsondata = self.get_json() # use walrus operator? datestr = jsondata["date"] if not datestr: @@ -252,12 +259,13 @@ class Wallet(models.Model): datestr = datestr.replace('.','-') try: samedate = datetime.date.fromisoformat(datestr) + self.walletdate = samedate.isoformat() except: try: samedate = datetime.date.fromisoformat(datestr[:10]) + self.walletdate = samedate.isoformat() except: samedate = None - self.walletdate = samedate.isoformat() self.save() return self.walletdate |