diff --git a/calendar_utils/models.py b/calendar_utils/models.py index 6b219237e3f6d99497f69c2f9c7441e2ecc18822..53f92e8adc42ae2f58c0c9eefaf34e8eab5a704a 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 1d69e8b938ba58cdd491eec8b210cdec0327e839..84386f9b1738e240def7fe9aac47af015702daf4 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 23302d608b102097188e0362cd8d8bf138517fc6..56d8b84ad92f2da0c24d085767a2789918b320f1 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">