summaryrefslogtreecommitdiff
path: root/archaeological_files/models.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2022-11-15 16:29:30 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2022-12-12 12:23:19 +0100
commitcda77c979e232386ef24ea7a04600f16f3c32c98 (patch)
tree7d53e762723338913594ccdb42c6fa08c4bfb5ef /archaeological_files/models.py
parent4746cd2938df3cf87ae338d22eb4f67f35bac960 (diff)
downloadIshtar-cda77c979e232386ef24ea7a04600f16f3c32c98.tar.bz2
Ishtar-cda77c979e232386ef24ea7a04600f16f3c32c98.zip
File module refactoring - more tests for files
Diffstat (limited to 'archaeological_files/models.py')
-rw-r--r--archaeological_files/models.py31
1 files changed, 22 insertions, 9 deletions
diff --git a/archaeological_files/models.py b/archaeological_files/models.py
index bcc90ab4f..9b878ab35 100644
--- a/archaeological_files/models.py
+++ b/archaeological_files/models.py
@@ -282,10 +282,10 @@ class FileType(GeneralType):
ordering = ("label",)
@classmethod
- def is_preventive(cls, file_type_id, key=""):
+ def is_preventive(cls, file_type_id, key="", force=False):
key = key or "preventive"
try:
- preventive = FileType.get_cache(key).pk
+ preventive = FileType.get_cache(key, force=force).pk
return file_type_id == preventive
except (FileType.DoesNotExist, AttributeError):
return False
@@ -793,6 +793,11 @@ class File(
if not date:
date = datetime.date(2500, 1, 1)
elif settings.COUNTRY == "fr" and self.saisine_type and self.saisine_type.delay:
+ if isinstance(date, str):
+ try:
+ date = datetime.datetime.strptime(date, "%Y-%m-%d").date()
+ except ValueError:
+ date = datetime.date(2500, 1, 1)
date += datetime.timedelta(days=self.saisine_type.delay)
cache.set(cache_key, date, settings.CACHE_TIMEOUT)
return date
@@ -917,13 +922,21 @@ class File(
if not self.file_type.txt_idx == "preventive":
cls = "blue"
elif not self.has_adminact and self.reception_date:
- delta = datetime.date.today() - self.reception_date
- cls = "red"
- if self.saisine_type and self.saisine_type.delay:
- if delta.days <= (self.saisine_type.delay * 2 / 3):
- cls = "green"
- elif delta.days <= self.saisine_type.delay:
- cls = "orange"
+ reception_date = self.reception_date
+ if isinstance(self.reception_date, str):
+ try:
+ reception_date = datetime.datetime.strptime(self.reception_date,
+ "%Y-%m-%d").date()
+ except ValueError:
+ reception_date = None
+ if reception_date:
+ delta = datetime.date.today() - reception_date
+ cls = "red"
+ if self.saisine_type and self.saisine_type.delay:
+ if delta.days <= (self.saisine_type.delay * 2 / 3):
+ cls = "green"
+ elif delta.days <= self.saisine_type.delay:
+ cls = "orange"
cache.set(cache_key, cls, settings.CACHE_TIMEOUT)
return cls