2
0
mirror of https://expo.survex.com/repositories/troggle/.git synced 2025-12-14 00:27:07 +00:00

attempted speedup, explicit dates wallet objects

This commit is contained in:
2022-12-20 00:07:55 +00:00
parent bb14c94ab1
commit f24f283a07
9 changed files with 73 additions and 32 deletions

View File

@@ -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