From b48b7db33393eed3a65ca39cbbdf52c9791b9eec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Bedna=C5=99=C3=ADk?= <jan.bednarik@gmail.com> Date: Wed, 11 Aug 2021 15:05:50 +0200 Subject: [PATCH] elections2021: Small calendar refactoring --- calendar_utils/models.py | 21 -------------- elections2021/models.py | 28 +++++++++++++++++++ .../elections2021_calendar_page.html | 2 +- 3 files changed, 29 insertions(+), 22 deletions(-) diff --git a/calendar_utils/models.py b/calendar_utils/models.py index 6b219237..53f92e8a 100644 --- a/calendar_utils/models.py +++ b/calendar_utils/models.py @@ -26,27 +26,6 @@ class EventsJSONField(models.JSONField): for event in value: event["begin"] = arrow.get(event["begin"]).datetime event["end"] = arrow.get(event["end"]).datetime - - event["pir"] = { - "name": None, - "tags": [], - "region": None, - } - - pir_name = [] - - for word in event["name"].split(): - if word.startswith("#"): - event["pir"]["tags"].append(word[1:]) - else: - pir_name.append(word) - - if len(pir_name) > 0: - if pir_name[0].endswith(":") and len(pir_name[0]) == 4: - event["pir"]["region"] = pir_name.pop(0)[:-1] - - event["pir"]["name"] = " ".join(pir_name) - return value diff --git a/elections2021/models.py b/elections2021/models.py index 1d69e8b9..84386f9b 100644 --- a/elections2021/models.py +++ b/elections2021/models.py @@ -2425,3 +2425,31 @@ class Elections2021CalendarPage(SubpageMixin, MetadataPageMixin, CalendarMixin, @property def has_calendar(self): return self.calendar_id is not None + + def get_context(self, request): + context = super().get_context(request) + + future_events = self.calendar.future_events + for event in future_events: + event["pir"] = { + "name": None, + "tags": [], + "region": None, + } + + pir_name = [] + + for word in event.get("name", "").split(): + if word.startswith("#"): + event["pir"]["tags"].append(word[1:]) + else: + pir_name.append(word) + + if len(pir_name) > 0: + if pir_name[0].endswith(":") and len(pir_name[0]) == 4: + event["pir"]["region"] = pir_name.pop(0)[:-1] + + event["pir"]["name"] = " ".join(pir_name) + + context["future_events"] = future_events + return context diff --git a/elections2021/templates/elections2021/elections2021_calendar_page.html b/elections2021/templates/elections2021/elections2021_calendar_page.html index 23302d60..56d8b84a 100644 --- a/elections2021/templates/elections2021/elections2021_calendar_page.html +++ b/elections2021/templates/elections2021/elections2021_calendar_page.html @@ -148,7 +148,7 @@ </div> <div class="container container--default pt-8 pb-16 px-0 md:px-1"> - {% for event in page.calendar.future_events %} + {% for event in future_events %} {% if not request.GET.tag or request.GET.tag in event.pir.tags %} {% if not request.GET.region or request.GET.region == event.pir.region %} <div class="grid grid-cols-12 items-center calendar-table-row my-1"> -- GitLab