From 5a95c8b1b55ec085bb6a3ae697763caa0dd5f094 Mon Sep 17 00:00:00 2001
From: Yoan Le Clanche
Date: Wed, 1 Sep 2021 14:16:27 +0200
Subject: [PATCH] https://trackers.pilotsystems.net/prebarreau/0239 : Can now
cancel webclass subscription
---
.../templates/webclass/inc/webclass_list.html | 4 +++-
teleforma/webclass/urls.py | 6 +++++-
teleforma/webclass/views.py | 18 ++++++++++++++++++
3 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/teleforma/webclass/templates/webclass/inc/webclass_list.html b/teleforma/webclass/templates/webclass/inc/webclass_list.html
index 962b8786..a344786b 100644
--- a/teleforma/webclass/templates/webclass/inc/webclass_list.html
+++ b/teleforma/webclass/templates/webclass/inc/webclass_list.html
@@ -15,7 +15,9 @@
{{webclass_slot.get_day_display}} de
{{webclass_slot.start_hour|date:"H\hi"}} Ã
{{webclass_slot.end_hour|date:"H\hi"}}
- avec le professeur {{webclass_slot.professor.user.last_name}}.
+ avec le professeur {{webclass_slot.professor.user.last_name}}.
+
+ Se désinscrire Vous pourrez ensuite vous inscrire sur un autre créneau.
{% if webclass_slot.status == 'past' %}
diff --git a/teleforma/webclass/urls.py b/teleforma/webclass/urls.py
index fdc9c35e..7cc6b9cf 100644
--- a/teleforma/webclass/urls.py
+++ b/teleforma/webclass/urls.py
@@ -37,7 +37,7 @@ from django.conf.urls import url
from ..webclass.views import (WebclassAppointment,
WebclassProfessorAppointments,
WebclassRecordsFormView, WebclassRecordView,
- join_webclass)
+ join_webclass, unregister)
urlpatterns = [
url(r'^desk/webclass_appointments/(?P.*)$', WebclassAppointment.as_view(),
@@ -48,7 +48,11 @@ urlpatterns = [
name="teleforma-webclass-record"),
url(r'^webclass/periods/(?P.*)/webclass_records_form/$',
WebclassRecordsFormView.as_view(), name="teleforma-webclass-records-form"),
+ url(r'^desk/webclass/(?P.*)/unregister/$',
+ unregister,
+ name="teleforma-webclass-unregister"),
url(r'^desk/webclass/(?P.*)/join/$',
join_webclass,
name="teleforma-webclass-join")
+
]
diff --git a/teleforma/webclass/views.py b/teleforma/webclass/views.py
index cced620e..32702359 100644
--- a/teleforma/webclass/views.py
+++ b/teleforma/webclass/views.py
@@ -151,6 +151,7 @@ class WebclassAppointment(View):
# return data
+
class WebclassRecordView(TemplateView):
template_name = 'webclass/record.html'
@@ -207,3 +208,20 @@ def join_webclass(request, pk):
return redirect(webclass_slot.get_join_webclass_url(request, user))
else:
return HttpResponse('Unauthorized', status=401)
+
+
+@access_required
+def unregister(request, pk):
+ """
+ Unregister to a webclass
+ """
+ webclass_slot = WebclassSlot.objects.get(pk=int(pk))
+ user = request.user
+
+ if user in webclass_slot.participants.all():
+ webclass_slot.participants.remove(user)
+
+ messages.add_message(request, messages.INFO,
+ "Votre réservation a été annulé.")
+ # redirect to register form
+ return redirect(reverse("teleforma-webclass-appointments", kwargs={'pk':webclass_slot.webclass.id}))
--
2.39.5