1
0
mirror of https://gitlab.com/animath/si/plateforme-corres2math.git synced 2025-07-05 14:43:55 +02:00

Create and join teams forms

This commit is contained in:
Yohann D'ANELLO
2020-09-23 23:20:44 +02:00
parent 369c9e2fa2
commit cce3a0a7df
7 changed files with 69 additions and 13 deletions

View File

@ -1,4 +1,6 @@
from django.contrib.auth.mixins import LoginRequiredMixin
from django.db import transaction
from django.urls import reverse_lazy
from django.utils.translation import gettext_lazy as _
from django.views.generic import CreateView, FormView
@ -12,9 +14,47 @@ class CreateTeamView(LoginRequiredMixin, CreateView):
extra_context = dict(title=_("Create team"))
template_name = "participation/create_team.html"
@transaction.atomic
def form_valid(self, form):
user = self.request.user
registration = user.registration
if not registration.participates:
form.add_error(None, _("You don't participate, so you can't create a team."))
return self.form_invalid(form)
elif registration.team:
form.add_error(None, _("You are already in a team."))
return self.form_invalid(form)
ret = super().form_valid(form)
registration.team = form.instance
registration.save()
return ret
def get_success_url(self):
return reverse_lazy("index")
class JoinTeamView(LoginRequiredMixin, FormView):
model = Team
form_class = JoinTeamForm
extra_context = dict(title=_("Join team"))
template_name = "participation/create_team.html"
@transaction.atomic
def form_valid(self, form):
user = self.request.user
registration = user.registration
if not registration.participates:
form.add_error(None, _("You don't participate, so you can't create a team."))
return self.form_invalid(form)
elif registration.team:
form.add_error(None, _("You are already in a team."))
return self.form_invalid(form)
ret = super().form_valid(form)
registration.team = form.instance
registration.save()
return ret
def get_success_url(self):
return reverse_lazy("index")