mirror of
https://gitlab.com/animath/si/plateforme.git
synced 2025-07-04 13:32:17 +02:00
Register new organizers
This commit is contained in:
@ -21,8 +21,9 @@ from participation.models import Solution, Synthesis
|
||||
from tfjm.tokens import email_validation_token
|
||||
from tfjm.views import AdminMixin, UserMixin
|
||||
|
||||
from .forms import CoachRegistrationForm, HealthSheetForm, ParentalAuthorizationForm, PhotoAuthorizationForm,\
|
||||
SignupForm, StudentRegistrationForm, UserForm
|
||||
from .forms import AddOrganizerForm, AdminRegistrationForm, CoachRegistrationForm, HealthSheetForm, \
|
||||
ParentalAuthorizationForm, PhotoAuthorizationForm, SignupForm, StudentRegistrationForm, UserForm, \
|
||||
VolunteerRegistrationForm
|
||||
from .models import Registration, StudentRegistration, ParticipantRegistration
|
||||
from .tables import RegistrationTable
|
||||
|
||||
@ -73,6 +74,47 @@ class SignupView(CreateView):
|
||||
return reverse_lazy("registration:email_validation_sent")
|
||||
|
||||
|
||||
class AddOrganizerView(AdminMixin, CreateView):
|
||||
model = User
|
||||
form_class = AddOrganizerForm
|
||||
template_name = "registration/add_organizer.html"
|
||||
extra_context = dict(title=_("Add organizer"))
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super().get_context_data()
|
||||
|
||||
context["volunteer_registration_form"] = VolunteerRegistrationForm(self.request.POST or None)
|
||||
context["admin_registration_form"] = AdminRegistrationForm(self.request.POST or None)
|
||||
|
||||
del context["volunteer_registration_form"].fields["email_confirmed"]
|
||||
del context["admin_registration_form"].fields["email_confirmed"]
|
||||
|
||||
return context
|
||||
|
||||
@transaction.atomic
|
||||
def form_valid(self, form):
|
||||
role = form.cleaned_data["type"]
|
||||
if role == "admin":
|
||||
registration_form = AdminRegistrationForm(self.request.POST)
|
||||
else:
|
||||
registration_form = VolunteerRegistrationForm(self.request.POST)
|
||||
del registration_form.fields["email_confirmed"]
|
||||
|
||||
if not registration_form.is_valid():
|
||||
return self.form_invalid(form)
|
||||
|
||||
ret = super().form_valid(form)
|
||||
registration = registration_form.instance
|
||||
registration.user = form.instance
|
||||
registration.save()
|
||||
|
||||
return ret
|
||||
|
||||
def get_success_url(self):
|
||||
return reverse_lazy("registration:email_validation_sent")
|
||||
|
||||
|
||||
|
||||
class UserValidateView(TemplateView):
|
||||
"""
|
||||
A view to validate the email address.
|
||||
|
Reference in New Issue
Block a user