From fb10df77e5b63c34215d6c18b5a9927484724cf9 Mon Sep 17 00:00:00 2001 From: Emmy D'Anello Date: Wed, 5 Mar 2025 18:57:01 +0100 Subject: [PATCH] Allow admins to create users outside registration period --- registration/forms.py | 13 ------------- registration/templates/registration/signup.html | 4 ++-- registration/views.py | 14 ++++++++++++++ 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/registration/forms.py b/registration/forms.py index 4f16d42..85db31e 100644 --- a/registration/forms.py +++ b/registration/forms.py @@ -38,19 +38,6 @@ class SignupForm(UserCreationForm): self.add_error("email", _("This email address is already used.")) return email - def clean(self): - # Check that registrations are opened - now = timezone.now() - if now < settings.REGISTRATION_DATES['open']: - self.add_error(None, format_lazy(_("Registrations are not opened yet. " - "They will open on the {opening_date:%Y-%m-%d %H:%M}."), - opening_date=settings.REGISTRATION_DATES['open'])) - elif now > settings.REGISTRATION_DATES['close']: - self.add_error(None, format_lazy(_("Registrations for this year are closed since " - "{closing_date:%Y-%m-%d %H:%M}."), - closing_date=settings.REGISTRATION_DATES['close'])) - return super().clean() - def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.fields["first_name"].required = True diff --git a/registration/templates/registration/signup.html b/registration/templates/registration/signup.html index 35e87e3..dd59945 100644 --- a/registration/templates/registration/signup.html +++ b/registration/templates/registration/signup.html @@ -10,13 +10,13 @@ {% block content %} {% now "c" as now %} - {% if now < TFJM.REGISTRATION_DATES.open.isoformat %} + {% if now < TFJM.REGISTRATION_DATES.open.isoformat and not user.registration.is_admin %}
{% trans "Thank you for your great interest, but registrations are not opened yet!" %} {% trans "They will open on:" %} {{ TFJM.REGISTRATION_DATES.open|date:'DATETIME_FORMAT' }}. {% trans "Please come back at this time to register!" %}
- {% elif now > TFJM.REGISTRATION_DATES.close.isoformat %} + {% elif now > TFJM.REGISTRATION_DATES.close.isoformat and not user.registration.is_admin %}
{% trans "Registrations are closed for this year. We hope to see you next year!" %} {% trans "If needed, you can contact us by mail." %} diff --git a/registration/views.py b/registration/views.py index e004af8..2771eb3 100644 --- a/registration/views.py +++ b/registration/views.py @@ -62,6 +62,20 @@ class SignupView(CreateView): @transaction.atomic def form_valid(self, form): + if not self.request.user.registration.is_admin: + # Check that registrations are opened + now = timezone.now() + if now < settings.REGISTRATION_DATES['open']: + form.add_error(None, format_lazy(_("Registrations are not opened yet. " + "They will open on the {opening_date:%Y-%m-%d %H:%M}."), + opening_date=settings.REGISTRATION_DATES['open'])) + elif now > settings.REGISTRATION_DATES['close']: + form.add_error(None, format_lazy(_("Registrations for this year are closed since " + "{closing_date:%Y-%m-%d %H:%M}."), + closing_date=settings.REGISTRATION_DATES['close'])) + if not form.is_valid(): + return self.form_invalid(form) + role = form.cleaned_data["role"] if role == "participant": registration_form = StudentRegistrationForm(self.request.POST)