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)