diff --git a/src/core/forms/__init__.py b/src/core/forms/__init__.py index f7d33eb1b1124c803a3855000949e2b10ce1f342..caa5a9cce5f49b9c4dd780969154baa704c55c0f 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 0000000000000000000000000000000000000000..e1f91be9ee1bb9352402e47035ff3b2fb6127059 --- /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 870d86a831ee091e6698274138985c13bf04b322..3dd78c958a5d1088bec7da309062be8413d988c2 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 e720fec65ffe5f9657ee463fecb45684488fcee2..be9a7184079e6f13a513170f47e9b0974b159a7c 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"