1
0
mirror of https://gitlab.com/animath/si/plateforme-corres2math.git synced 2025-07-04 03:32:08 +02:00

We can only register during the first phase

This commit is contained in:
Yohann D'ANELLO
2020-11-15 01:40:20 +01:00
parent ece1e800ab
commit d3e18a8fbb
4 changed files with 31 additions and 7 deletions

View File

@ -4,6 +4,7 @@ from django.contrib.auth.models import User
from django.core.exceptions import ValidationError
from django.forms import FileInput
from django.utils.translation import gettext_lazy as _
from participation.models import Phase
from .models import AdminRegistration, CoachRegistration, StudentRegistration
@ -28,6 +29,11 @@ class SignupForm(UserCreationForm):
self.fields["last_name"].required = True
self.fields["email"].required = True
def clean(self):
if Phase.current_phase() is None or Phase.current_phase().phase_number >= 2:
self.add_error(None, _("You can't register now."))
return super().clean()
class Meta:
model = User
fields = ('first_name', 'last_name', 'email', 'password1', 'password2', 'role',)

View File

@ -1,3 +1,4 @@
from datetime import timedelta
import os
from corres2math.tokens import email_validation_token
@ -7,8 +8,10 @@ from django.contrib.sites.models import Site
from django.core.management import call_command
from django.test import TestCase
from django.urls import reverse
from django.utils import timezone
from django.utils.encoding import force_bytes
from django.utils.http import urlsafe_base64_encode
from participation.models import Phase
from .models import AdminRegistration, CoachRegistration, StudentRegistration
@ -84,6 +87,23 @@ class TestRegistration(TestCase):
response = self.client.get(reverse("registration:signup"))
self.assertEqual(response.status_code, 200)
# After first phase
response = self.client.post(reverse("registration:signup"), data=dict(
last_name="Toto",
first_name="Toto",
email="toto@example.com",
password1="azertyuiopazertyuiop",
password2="azertyuiopazertyuiop",
role="participant",
student_class=12,
school="God",
give_contact_to_animath=False,
))
self.assertEqual(response.status_code, 200)
Phase.objects.filter(phase_number__gte=2).update(start=timezone.now() + timedelta(days=1),
end=timezone.now() + timedelta(days=2))
# Incomplete form
response = self.client.post(reverse("registration:signup"), data=dict(
last_name="Toto",