1
0
mirror of https://gitlab.com/animath/si/plateforme-corres2math.git synced 2025-02-06 12:53:03 +00:00

39 lines
1.2 KiB
Python
Raw Normal View History

2020-09-23 23:20:44 +02:00
import re
2020-09-22 20:41:42 +02:00
from django import forms
from django.core.exceptions import ValidationError
2020-09-23 23:20:44 +02:00
from django.utils.translation import gettext_lazy as _
2020-09-22 20:41:42 +02:00
from .models import Team
class TeamForm(forms.ModelForm):
2020-09-23 23:20:44 +02:00
def clean_trigram(self):
trigram = self.cleaned_data["trigram"].upper()
if not re.match("[A-Z]{3}", trigram):
raise ValidationError(_("The trigram must be composed of three uppercase letters."))
return trigram
2020-09-22 20:41:42 +02:00
class Meta:
model = Team
fields = ('name', 'trigram', 'grant_animath_access_videos',)
class JoinTeamForm(forms.ModelForm):
def clean_access_code(self):
access_code = self.cleaned_data["access_code"]
if not Team.objects.filter(access_code=access_code).exists():
2020-09-23 23:20:44 +02:00
raise ValidationError(_("No team was found with this access code."))
2020-09-22 20:41:42 +02:00
return access_code
def clean(self):
cleaned_data = super().clean()
if "access_code" in cleaned_data:
2020-09-23 23:20:44 +02:00
team = Team.objects.get(access_code=cleaned_data["access_code"])
self.instance = team
2020-09-22 20:41:42 +02:00
return cleaned_data
class Meta:
model = Team
fields = ('access_code',)