1
0
mirror of https://gitlab.com/animath/si/plateforme.git synced 2025-06-21 09:18:23 +02:00

Validate teams

This commit is contained in:
Yohann D'ANELLO
2020-05-05 02:20:45 +02:00
parent 4534a278d7
commit 4d9b6ad2c5
5 changed files with 202 additions and 13 deletions

View File

@ -77,10 +77,18 @@ class AddTeamView(LoginRequiredMixin, CreateView):
form_class = TeamForm
def form_valid(self, form):
if self.request.user.organizes:
form.add_error('name', _("You can't organize and participate at the same time."))
return self.form_invalid(form)
if self.request.user.team:
form.add_error('name', _("You are already in a team."))
return self.form_invalid(form)
team = form.instance
alphabet = "0123456789abcdefghijklmnopqrstuvwxyz0123456789"
code = ""
for _ in range(6):
for i in range(6):
code += random.choice(alphabet)
team.access_code = code
team.validation_status = "0invalid"
@ -104,6 +112,23 @@ class JoinTeamView(LoginRequiredMixin, FormView):
def form_valid(self, form):
team = form.cleaned_data["team"]
if self.request.user.organizes:
form.add_error('access_code', _("You can't organize and participate at the same time."))
return self.form_invalid(form)
if self.request.user.team:
form.add_error('access_code', _("You are already in a team."))
return self.form_invalid(form)
if self.request.user.role == '2coach' and team.encadrants.size() == 3:
form.add_error('access_code', _("This team is full of coachs."))
return self.form_invalid(form)
if self.request.user.role == '3participant' and team.participants.size() == 5:
form.add_error('access_code', _("This team is full of participants."))
return self.form_invalid(form)
self.request.user.team = team
self.request.user.save()
return super().form_valid(form)