diff options
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 |
commit | cda77c979e232386ef24ea7a04600f16f3c32c98 (patch) | |
tree | 7d53e762723338913594ccdb42c6fa08c4bfb5ef /archaeological_files/models.py | |
parent | 4746cd2938df3cf87ae338d22eb4f67f35bac960 (diff) | |
download | Ishtar-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.py | 31 |
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 |