summaryrefslogtreecommitdiffstats
path: root/core/models/survex.py
diff options
context:
space:
mode:
authorPhilip Sargent <philip.sargent@gmail.com>2022-12-20 00:07:55 +0000
committerPhilip Sargent <philip.sargent@gmail.com>2022-12-20 00:07:55 +0000
commitf24f283a073d070f1335239d0df47d499ba3876f (patch)
tree29f291c740335ec6fdbe8c7e8e2daebfc984c028 /core/models/survex.py
parentbb14c94ab10cbd279586c97822372bba8375b67b (diff)
downloadtroggle-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.py16
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