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:
@ -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")
|
||||
|
Reference in New Issue
Block a user