From 84483050272d718f8f102074e79e01c33b065e27 Mon Sep 17 00:00:00 2001 From: Grollicus <cccvgitlab.db5c7b60@grollmann.eu> Date: Fri, 17 Dec 2021 13:06:32 +0100 Subject: [PATCH] disallow setting state_assembly=state_channel=none --- src/backoffice/forms.py | 5 +++++ src/core/locale/de/LC_MESSAGES/django.po | 3 +++ src/core/locale/en/LC_MESSAGES/django.po | 3 +++ 3 files changed, 11 insertions(+) diff --git a/src/backoffice/forms.py b/src/backoffice/forms.py index e211c295b..1ddb05345 100644 --- a/src/backoffice/forms.py +++ b/src/backoffice/forms.py @@ -126,6 +126,11 @@ class AssemblyEditForm(forms.ModelForm): # call original .clean() which e.g. removes 'slug' from cleaned_data if that isn't a slug super().clean() + # ensure assembly is either a channel or an assembly + if self.cleaned_data.get('state_assembly') == Assembly.State.NONE and self.cleaned_data.get('state_channel') == Assembly.State.NONE: + self.add_error('state_assembly', _('Assembly__states_must_not_be_none')) + self.add_error('state_channel', _('Assembly__states_must_not_be_none')) + # slug must not already exist in the conference slug = self.cleaned_data.get('slug') if slug is not None and Assembly.objects.filter(conference=self.instance.conference, slug=slug).exclude(pk=self.instance.pk).exists(): diff --git a/src/core/locale/de/LC_MESSAGES/django.po b/src/core/locale/de/LC_MESSAGES/django.po index b13824bf5..7dad9e681 100644 --- a/src/core/locale/de/LC_MESSAGES/django.po +++ b/src/core/locale/de/LC_MESSAGES/django.po @@ -255,6 +255,9 @@ msgstr "Die Assembly muss einen Typ haben (zumindest eins von physisch/virtuell/ msgid "Assembly__technical_user__must_be_assembly" msgstr "Der technische Benutzer muss vom Typ 'Assembly' sein." +msgid "Assembly__states_must_not_be_none" +msgstr "Assemblystate oder Channelstate muss gesetzt sein!" + msgid "Assembly__slug__is_forbidden" msgstr "Dieser Kurzname ist verboten!" diff --git a/src/core/locale/en/LC_MESSAGES/django.po b/src/core/locale/en/LC_MESSAGES/django.po index 7eddfc35b..62b73f72e 100644 --- a/src/core/locale/en/LC_MESSAGES/django.po +++ b/src/core/locale/en/LC_MESSAGES/django.po @@ -255,6 +255,9 @@ msgstr "The assembly requires a type (at least one of physical/virtual/remote)." msgid "Assembly__technical_user__must_be_assembly" msgstr "The technical user must be of type 'assembly'." +msgid "Assembly__states_must_not_be_none" +msgstr "assembly state or channel state must be set!" + msgid "Assembly__slug__is_forbidden" msgstr "this short name is forbidden" -- GitLab