From 3060d66c81d201f57425f889c37eaef7ea793fac Mon Sep 17 00:00:00 2001 From: Lucas Brandstaetter <lucas@brandstaetter.tech> Date: Sat, 7 Dec 2024 17:21:58 +0100 Subject: [PATCH] Add team form --- src/core/forms/__init__.py | 2 ++ src/core/forms/teams.py | 32 ++++++++++++++++++++++++ src/core/locale/de/LC_MESSAGES/django.po | 3 +++ src/core/locale/en/LC_MESSAGES/django.po | 3 +++ 4 files changed, 40 insertions(+) create mode 100644 src/core/forms/teams.py diff --git a/src/core/forms/__init__.py b/src/core/forms/__init__.py index f7d33eb1b..caa5a9cce 100644 --- a/src/core/forms/__init__.py +++ b/src/core/forms/__init__.py @@ -3,6 +3,7 @@ from core.forms.conferences import ConferencePublicationForm, ConferenceRegistra from core.forms.invitations import InvitationHabitatForm from core.forms.links import LinkForm, LinkFormSet from core.forms.projects import ProjectForm +from core.forms.teams import TeamForm __all__ = [ 'ConferencePublicationForm', @@ -14,4 +15,5 @@ __all__ = [ 'PasswordResetForm', 'ProjectForm', 'RegistrationForm', + 'TeamForm', ] diff --git a/src/core/forms/teams.py b/src/core/forms/teams.py new file mode 100644 index 000000000..e1f91be9e --- /dev/null +++ b/src/core/forms/teams.py @@ -0,0 +1,32 @@ +from django.forms import ModelForm +from django.utils.translation import gettext_lazy as _ + +from core.models import Team + + +class TeamForm(ModelForm): + class Meta: + model = Team + fields = [ + 'name', + 'description_en', + 'description_de', + 'require_staff', + ] + help_texts = { + 'name': _('Team__name__help'), + } + + def __init__(self, *args, instance: Team | None = None, conference, super_user: bool = False, **kwargs): + self.create = instance is None + self.conference = conference + super().__init__(*args, instance=instance, **kwargs) + if not super_user: + del self.fields['require_staff'] + + def save(self, commit: bool = True) -> Team: + team = super().save(commit=False) + team.conference = self.conference + if commit: # pragma: no branch + team.save() + return team diff --git a/src/core/locale/de/LC_MESSAGES/django.po b/src/core/locale/de/LC_MESSAGES/django.po index 870d86a83..3dd78c958 100644 --- a/src/core/locale/de/LC_MESSAGES/django.po +++ b/src/core/locale/de/LC_MESSAGES/django.po @@ -167,6 +167,9 @@ msgstr "Der Besitzer eines Projekts kann nicht geändert werden!" msgid "Project__conference__unchangeable" msgstr "Die Konferenz eines Projekts kann nicht geändert werden!" +msgid "Team__name__help" +msgstr "Der Name des Teams" + msgid "Request failed" msgstr "Anfrage fehlgeschlagen" diff --git a/src/core/locale/en/LC_MESSAGES/django.po b/src/core/locale/en/LC_MESSAGES/django.po index e720fec65..be9a71840 100644 --- a/src/core/locale/en/LC_MESSAGES/django.po +++ b/src/core/locale/en/LC_MESSAGES/django.po @@ -167,6 +167,9 @@ msgstr "The owner of a project cannot be changed!" msgid "Project__conference__unchangeable" msgstr "The conference of a project cannot be changed!" +msgid "Team__name__help" +msgstr "name of the team" + msgid "Request failed" msgstr "Request failed" -- GitLab