Created
September 15, 2020 07:27
-
-
Save Tobi-De/e8b2be716ece3f27e9578054f3bf194f to your computer and use it in GitHub Desktop.
Override dispatch
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class StudentRequiredMixin: | |
def dispatch(self, request, *args, **kwargs): | |
response = super().dispatch(request, *args, **kwargs) # noqa | |
if request.user.status != "étudiant": | |
messages.info( | |
request=request, | |
message="Seuls les étudiants peuvent se pré-inscrire", | |
) | |
return redirect("university:detail", slug=self.kwargs.get("slug")) # noqa | |
return response | |
class HasAlreadyRegisterMixin: | |
def dispatch(self, request, *args, **kwargs): | |
response = super().dispatch(request, *args, **kwargs) # noqa | |
university = get_object_or_404(University, slug=self.kwargs.get("slug")) # noqa | |
registration = Registration.objects.filter( | |
user=request.user, university=university | |
).first() | |
if not registration: | |
return response | |
if registration.paid: | |
messages.info( | |
request=request, | |
message="Vous etes deja inscrit a cette universite", | |
) | |
return redirect("university:detail", slug=university.slug) | |
messages.info( | |
request=request, | |
message="Vous etes inscrit a cette universite, a present Il vous suffit " | |
"de payer pour valider votre preinscription a cette universite", | |
) | |
return redirect( | |
"university:pre_registration_payment", slug=registration.slug | |
) # noqa |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class RegisterView( | |
LoginRequiredMixin, StudentRequiredMixin, HasAlreadyRegisterMixin, View | |
): | |
template_name = "universities/register.html" | |
def get_university(self): | |
return get_object_or_404(University, slug=self.kwargs.get("slug")) | |
def get_context_data(self, **kwargs): # noqa | |
return { | |
"register_form": RegisterForm(prefix="register"), | |
"tutor_m_form": TutorForm(prefix="tutor_m"), | |
"tutor_f_form": TutorForm(prefix="tutor_f"), | |
} | |
def get(self, request, *args, **kwargs): | |
registration = Registration.automatic_registration( | |
user=request.user, university=self.get_university() | |
) | |
if registration: | |
messages.success( | |
request, | |
"Vous etes a present inscrit, il vous suffit de payer pour valider votre preinscription" | |
" a cette universite", | |
) | |
return redirect( | |
"university:pre_registration_payment", slug=registration.slug | |
) | |
return render(request, self.template_name, self.get_context_data()) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment