From c3cbe283144d93960ee98c95bf3958dfda84896c Mon Sep 17 00:00:00 2001 From: Donald Buczek Date: Tue, 23 Mar 2021 16:27:39 +0100 Subject: [PATCH 1/9] events: Remove Event.get_context() The added context variables seem to be ununused. Remove the method. --- mpicms/events/models.py | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/mpicms/events/models.py b/mpicms/events/models.py index 2b3d55a..d6addf1 100644 --- a/mpicms/events/models.py +++ b/mpicms/events/models.py @@ -90,17 +90,6 @@ def clean(self): if self.end and self.end < self.start: raise ValidationError({'end_time': 'The end time cannot be before the start time.'}) - def get_context(self, request, *args, **kwargs): - context = super().get_context(request, *args, **kwargs) - - events = [] - for child in self.get_parent().get_children().type(Event).live().specific(): - events.append(child.get_dict(request)) - - context["events"] = json.dumps(events) - - return context - class Meta(object): # noqa ordering = ['start_date'] verbose_name = _('event') From dfa0a206583e78d70c68bbfd5caa31f7563e0477 Mon Sep 17 00:00:00 2001 From: Donald Buczek Date: Sun, 21 Mar 2021 13:15:30 +0100 Subject: [PATCH 2/9] events: Add boolean field "external" to Event --- .../events/migrations/0015_event_external.py | 18 ++++++++++++++++++ mpicms/events/models.py | 2 ++ 2 files changed, 20 insertions(+) create mode 100644 mpicms/events/migrations/0015_event_external.py diff --git a/mpicms/events/migrations/0015_event_external.py b/mpicms/events/migrations/0015_event_external.py new file mode 100644 index 0000000..c1bbe40 --- /dev/null +++ b/mpicms/events/migrations/0015_event_external.py @@ -0,0 +1,18 @@ +# Generated by Django 3.1.7 on 2021-03-21 11:49 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('events', '0014_auto_20210114_1926'), + ] + + operations = [ + migrations.AddField( + model_name='event', + name='external', + field=models.BooleanField(default=False), + ), + ] diff --git a/mpicms/events/models.py b/mpicms/events/models.py index d6addf1..7ddd580 100644 --- a/mpicms/events/models.py +++ b/mpicms/events/models.py @@ -20,6 +20,7 @@ class Event(BodyMixin, BasePage): start_time = models.TimeField(_('start time'), blank=True, null=True) end_time = models.TimeField(_('end time'), blank=True, null=True) room = models.CharField(_('Room'), max_length=10, blank=True) + external = models.BooleanField(default=False) header_image = models.ForeignKey( 'wagtailimages.Image', @@ -36,6 +37,7 @@ class Event(BodyMixin, BasePage): ImageChooserPanel('header_image'), MultiFieldPanel( [ + FieldPanel('external'), FieldPanel('start_date'), FieldPanel('start_time'), FieldPanel('end_date'), From 315d7d124848c617cf132569ef3fc820ffeb8e9c Mon Sep 17 00:00:00 2001 From: Donald Buczek Date: Sun, 21 Mar 2021 13:16:22 +0100 Subject: [PATCH 3/9] events: Show tag "external" for external Event --- mpicms/templates/events/event.html | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mpicms/templates/events/event.html b/mpicms/templates/events/event.html index 73b4f33..11d569d 100644 --- a/mpicms/templates/events/event.html +++ b/mpicms/templates/events/event.html @@ -36,6 +36,11 @@

{{ page.title }}

{% endif %} + {% if page.external %} +
+ external +
+ {% endif %} {% if page.room %}
From d8f22b13fc98fab96bb2675f7e4efe2cca6bf178 Mon Sep 17 00:00:00 2001 From: Donald Buczek Date: Tue, 23 Mar 2021 18:09:45 +0100 Subject: [PATCH 4/9] EventIndex: optionally get external events --- mpicms/events/models.py | 4 ++-- mpicms/events/templatetags/event_tags.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mpicms/events/models.py b/mpicms/events/models.py index 7ddd580..1af9789 100644 --- a/mpicms/events/models.py +++ b/mpicms/events/models.py @@ -108,8 +108,8 @@ def events(self): return Event.objects.live().specific() return self.get_children().type(Event).live().specific() - def get_json_events(self, request=None): - event_dicts = [event.get_dict(request) for event in self.events] + def get_json_events(self, request=None, external=False): + event_dicts = [ event.get_dict(request) for event in self.events.filter(external=external) ] return json.dumps(event_dicts) def clean(self): # Prevent more than one event index diff --git a/mpicms/events/templatetags/event_tags.py b/mpicms/events/templatetags/event_tags.py index d7d0aac..615c62d 100644 --- a/mpicms/events/templatetags/event_tags.py +++ b/mpicms/events/templatetags/event_tags.py @@ -5,5 +5,5 @@ @register.simple_tag(takes_context=True) -def get_json_events(context, event_index): - return event_index.get_json_events(request=context['request']) +def get_json_events(context, event_index, external=False): + return event_index.get_json_events(request=context['request'], external=external) From 9141129e1c9df346af2ac03d7a28a8fba1d4e9e9 Mon Sep 17 00:00:00 2001 From: Donald Buczek Date: Fri, 26 Mar 2021 17:40:01 +0100 Subject: [PATCH 5/9] events: Remove "color" from event_dict We are going to feed internal and external events as separat event sources to the FullCalendar. It is more efficient to specify the color for the whole event source. So remove it from what get_dict returns for an event. --- mpicms/events/models.py | 1 - 1 file changed, 1 deletion(-) diff --git a/mpicms/events/models.py b/mpicms/events/models.py index 1af9789..b0920c6 100644 --- a/mpicms/events/models.py +++ b/mpicms/events/models.py @@ -76,7 +76,6 @@ def get_dict(self, request=None): 'start': self.start.isoformat(), 'end': self.end.isoformat() if self.end else None, 'url': self.get_url(request=request), - 'color': '#006c66' } def clean(self): From f7b03b7ce7809d95b8b5246a555c0fbeebbb86ca Mon Sep 17 00:00:00 2001 From: Donald Buczek Date: Fri, 26 Mar 2021 17:44:06 +0100 Subject: [PATCH 6/9] event_index: Use event sources Retrive internal and external separately and use them as event sources for FullCalendar. Provide button to switch of and back on the "external" event source. --- mpicms/static/css/custom.css | 9 +++++++ mpicms/templates/events/event_index.html | 34 +++++++++++++++++++++--- 2 files changed, 39 insertions(+), 4 deletions(-) diff --git a/mpicms/static/css/custom.css b/mpicms/static/css/custom.css index 3dadad0..20424a7 100644 --- a/mpicms/static/css/custom.css +++ b/mpicms/static/css/custom.css @@ -761,3 +761,12 @@ div.codehilite:not(:last-child) { width: 100%; height: 100%; } + +#switch_external { + color: black; + background-color: silver; +} + +#switch_external:hover { + background-color: lightgray; +} diff --git a/mpicms/templates/events/event_index.html b/mpicms/templates/events/event_index.html index e10110e..09d2df0 100644 --- a/mpicms/templates/events/event_index.html +++ b/mpicms/templates/events/event_index.html @@ -8,19 +8,30 @@

{{ page.title }}


- {% trans 'Subscribe' %} - +
- {% get_json_events page as events %} +{% autoescape off %} +{% endautoescape %} {% endblock %} From 13cc582e34ab209e30854744862570863a1bd785 Mon Sep 17 00:00:00 2001 From: Donald Buczek Date: Wed, 21 Apr 2021 14:03:17 +0200 Subject: [PATCH 7/9] event_index: Make button label translatable Make the label of the button with toggles display of extern events translatable. Put the two translated strings into template variables, because one of it is used multiple times in the template. --- mpicms/templates/events/event_index.html | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/mpicms/templates/events/event_index.html b/mpicms/templates/events/event_index.html index 09d2df0..bc82363 100644 --- a/mpicms/templates/events/event_index.html +++ b/mpicms/templates/events/event_index.html @@ -2,6 +2,8 @@ {% load event_tags i18n %} {% block content %} + {% translate "hide external events" as txt_hide_external_events %} + {% translate "show external events" as txt_show_external_events %}

{{ page.title }}

@@ -15,7 +17,7 @@

{{ page.title }}

@@ -46,11 +48,11 @@

{{ page.title }}

if (externalEventsShown) { calendar.getEventSources()[1].remove() externalEventsShown = 0 - this.innerHTML="show external events" + this.innerHTML="{{ txt_show_external_events }}" } else { calendar.addEventSource(event_source_external) externalEventsShown = 1 - this.innerHTML="hide external events" + this.innerHTML="{{ txt_hide_external_events }}" } }); From b541908d6869b38c67785e90565c1620d587a2f6 Mon Sep 17 00:00:00 2001 From: Donald Buczek Date: Wed, 21 Apr 2021 14:08:09 +0200 Subject: [PATCH 8/9] i18n: Run makemessages Create django.po with ./manage.py makemessages -l de --ignore bla/lib/python3.7/site-packages/xlwt --- locale/de/LC_MESSAGES/django.po | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index 0b0fc7f..0a6af2e 100644 --- a/locale/de/LC_MESSAGES/django.po +++ b/locale/de/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-03-20 19:33+0100\n" +"POT-Creation-Date: 2021-04-21 14:09+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1522,7 +1522,7 @@ msgid "Wagtail search tests" msgstr "" #: bla/lib/python3.7/site-packages/wagtail/tests/settings.py:239 -#: config/settings/base.py:219 +#: config/settings/base.py:220 msgid "English" msgstr "Englisch" @@ -2000,7 +2000,7 @@ msgstr "" msgid "Edit this video" msgstr "" -#: config/settings/base.py:220 +#: config/settings/base.py:221 msgid "German" msgstr "Deutsch" @@ -2150,23 +2150,23 @@ msgstr "Endzeit" msgid "Room" msgstr "Raum" -#: mpicms/events/models.py:44 +#: mpicms/events/models.py:46 msgid "event dates" msgstr "Veranstaltungsdaten" -#: mpicms/events/models.py:106 +#: mpicms/events/models.py:96 msgid "event" msgstr "Veranstaltung" -#: mpicms/events/models.py:107 +#: mpicms/events/models.py:97 msgid "events" msgstr "Veranstaltungen" -#: mpicms/events/models.py:148 +#: mpicms/events/models.py:138 msgid "event index" msgstr "Veranstaltungs-Index" -#: mpicms/events/models.py:149 +#: mpicms/events/models.py:139 msgid "event indexes" msgstr "Veranstaltungs-Indexes" @@ -2303,7 +2303,15 @@ msgstr "Veranstaltungen der Woche" msgid "All events" msgstr "Alle Veranstaltungen" -#: mpicms/templates/events/event_index.html:11 +#: mpicms/templates/events/event_index.html:5 +msgid "hide external events" +msgstr "" + +#: mpicms/templates/events/event_index.html:6 +msgid "show external events" +msgstr "" + +#: mpicms/templates/events/event_index.html:15 msgid "Subscribe" msgstr "Abonnieren" From bf6910c2885b72834f08772c36f84387e7da56d8 Mon Sep 17 00:00:00 2001 From: Donald Buczek Date: Wed, 21 Apr 2021 14:11:01 +0200 Subject: [PATCH 9/9] event_index: Add German translation --- locale/de/LC_MESSAGES/django.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index 0a6af2e..89847e7 100644 --- a/locale/de/LC_MESSAGES/django.po +++ b/locale/de/LC_MESSAGES/django.po @@ -2305,11 +2305,11 @@ msgstr "Alle Veranstaltungen" #: mpicms/templates/events/event_index.html:5 msgid "hide external events" -msgstr "" +msgstr "Externe Events verbergen" #: mpicms/templates/events/event_index.html:6 msgid "show external events" -msgstr "" +msgstr "Externe Events zeigen" #: mpicms/templates/events/event_index.html:15 msgid "Subscribe"