diff options
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 |