From a5ddc9bb476c3d0d075b2c5cc4952df75f44e446 Mon Sep 17 00:00:00 2001 From: nickmwangemi Date: Wed, 4 Oct 2023 21:21:14 +0300 Subject: [PATCH 1/2] Show warning for legislation that has a future commencement date --- peachjam/views/legislation.py | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/peachjam/views/legislation.py b/peachjam/views/legislation.py index f16504873..a814d264b 100644 --- a/peachjam/views/legislation.py +++ b/peachjam/views/legislation.py @@ -59,7 +59,22 @@ def get_notices(self): } ) - if not commenced: + current_date = datetime.now().date() + latest_commencement_date = self.get_latest_commencement_date() + if commenced: + if latest_commencement_date > current_date: + notices.append( + { + "type": messages.WARNING, + "html": _("This %(friendly_type)s will commence on %(date)s.") + % { + "friendly_type": friendly_type, + "date": format_date(latest_commencement_date, "j F Y"), + }, + } + ) + + else: notices.append( { "type": messages.WARNING, @@ -168,6 +183,13 @@ def get_work_amendments(self): def get_commencement_info(self): return self.object.metadata_json.get("commenced", None) + def get_latest_commencement_date(self): + commencement_dates = [ + commencement["date"] + for commencement in self.object.metadata_json.get("commencements", None) + ] + return datetime.strptime(max(commencement_dates), "%Y-%m-%d").date() + def set_unapplied_amendment_notice(self, notices): notices.append( { From be2c73bb4a60177ecaf6628fbdbcb5cf25835e1a Mon Sep 17 00:00:00 2001 From: nickmwangemi Date: Thu, 5 Oct 2023 12:21:22 +0300 Subject: [PATCH 2/2] Fix tests --- peachjam/views/legislation.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/peachjam/views/legislation.py b/peachjam/views/legislation.py index a814d264b..a7d34e91f 100644 --- a/peachjam/views/legislation.py +++ b/peachjam/views/legislation.py @@ -62,7 +62,7 @@ def get_notices(self): current_date = datetime.now().date() latest_commencement_date = self.get_latest_commencement_date() if commenced: - if latest_commencement_date > current_date: + if latest_commencement_date and latest_commencement_date > current_date: notices.append( { "type": messages.WARNING, @@ -184,11 +184,14 @@ def get_commencement_info(self): return self.object.metadata_json.get("commenced", None) def get_latest_commencement_date(self): - commencement_dates = [ - commencement["date"] - for commencement in self.object.metadata_json.get("commencements", None) - ] - return datetime.strptime(max(commencement_dates), "%Y-%m-%d").date() + commencements = self.object.metadata_json.get("commencements", None) + if commencements: + commencement_dates = [ + commencement["date"] for commencement in commencements + ] + return datetime.strptime(max(commencement_dates), "%Y-%m-%d").date() + + return None def set_unapplied_amendment_notice(self, notices): notices.append(