diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index 0b0fc7f..89847e7 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 "Externe Events verbergen" + +#: mpicms/templates/events/event_index.html:6 +msgid "show external events" +msgstr "Externe Events zeigen" + +#: mpicms/templates/events/event_index.html:15 msgid "Subscribe" msgstr "Abonnieren" 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 2b3d55a..b0920c6 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'), @@ -74,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): @@ -90,17 +91,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') @@ -117,8 +107,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) 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.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 %}
diff --git a/mpicms/templates/events/event_index.html b/mpicms/templates/events/event_index.html index e10110e..bc82363 100644 --- a/mpicms/templates/events/event_index.html +++ b/mpicms/templates/events/event_index.html @@ -2,25 +2,38 @@ {% load event_tags i18n %} {% block content %} + {% translate "hide external events" as txt_hide_external_events %} + {% translate "show external events" as txt_show_external_events %} - {% get_json_events page as events %} +{% autoescape off %} +{% endautoescape %} {% endblock %}