Advertisement
themaleem

views.py

Jul 14th, 2023
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.36 KB | None | 0 0
  1.  
  2. @login_required_message
  3. @login_required
  4. def student_registrations(request):
  5.     registrations = Registration.objects.filter(student=request.user.student).order_by(
  6.         "registration_date"
  7.     )
  8.  
  9.     # paginate the registrations
  10.     paginated_registrations = Paginator(registrations, 2)
  11.     page_list = request.GET.get("page")
  12.     paginated_registrations = paginated_registrations.get_page(page_list)
  13.     context = {
  14.         "title": "My Registrations",
  15.         "paginated_registrations": paginated_registrations,
  16.     }
  17.     return render(request, "studentregistration/registrations.html", context)
  18.  
  19.  
  20. @login_required_message
  21. @login_required
  22. def register(request, code):
  23.     module = get_object_or_404(Module, code=code)
  24.  
  25.     # incase user tries to re-register buy copying the register url
  26.     registration, created = Registration.objects.get_or_create(
  27.         module=module, student=request.user.student
  28.     )
  29.     if created:
  30.         messages.success(request, f"Successfully registered to {module.name}")
  31.     else:
  32.         messages.success(request, f"You've already registered to {module.name}")
  33.  
  34.     # redirect to previous page that sent user here
  35.     # or build the module page url and redirect user there
  36.     module_page = reverse("studentregistration:module_details", args=[module.code])
  37.     redirect_to = request.META.get("HTTP_REFERER", module_page)
  38.     return redirect(redirect_to)
  39.  
  40.  
  41. @login_required_message
  42. @login_required
  43. def unregister(request, code):
  44.     registration = get_object_or_404(
  45.         Registration, module__code=code, student=request.user.student
  46.     )
  47.     module = registration.module
  48.     if request.method == "POST":
  49.         registration.delete()
  50.         messages.success(request, f"Successfully unregistered from {module.name}")
  51.         return redirect(
  52.             reverse("studentregistration:module_details", args=[module.code])
  53.         )
  54.         # module_page = reverse("studentregistration:module_details", args=[module.code])
  55.         # redirect_to = request.META.get("HTTP_REFERER", module_page)
  56.         # return redirect(redirect_to)
  57.  
  58.     context = {"title": "Unregister", "module": module, "registration": registration}
  59.     return render(request, "studentregistration/unregister.html", context)
  60.  
  61.  
  62. def error_404(request, exception):
  63.     return render(request, "studentregistration/404.html", {"title": "404 Error"})
  64.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement