]> git.parisson.com Git - teleforma.git/commitdiff
https://trackers.pilotsystems.net/prebarreau/0239 : Can now cancel webclass subscription
authorYoan Le Clanche <yoanl@pilotsystems.net>
Wed, 1 Sep 2021 12:16:27 +0000 (14:16 +0200)
committerYoan Le Clanche <yoanl@pilotsystems.net>
Wed, 1 Sep 2021 12:16:27 +0000 (14:16 +0200)
teleforma/webclass/templates/webclass/inc/webclass_list.html
teleforma/webclass/urls.py
teleforma/webclass/views.py

index 962b878639943b44d9def2492d90ac93f702e936..a344786b4fec1037c51a5e10eeed5f9879c25f64 100644 (file)
@@ -15,7 +15,9 @@
                         <strong>{{webclass_slot.get_day_display}} de
                             {{webclass_slot.start_hour|date:"H\hi"}} à
                             {{webclass_slot.end_hour|date:"H\hi"}}</strong>
-                        avec le professeur <strong>{{webclass_slot.professor.user.last_name}}</strong>.</p>
+                        avec le professeur <strong>{{webclass_slot.professor.user.last_name}}</strong>.
+                    </p>
+                    <p><a href="{% url 'teleforma-webclass-unregister' pk=webclass_slot.id %}" class="component_icon button icon_next">Se désinscrire</a> Vous pourrez ensuite vous inscrire sur un autre créneau.</p>
 
                     {% if webclass_slot.status == 'past' %}
                     <p>
index fdc9c35e38cf720f87f09fbddec2ad88e301f6f8..7cc6b9cfd07b12da8c186c2b49bc203d1fade981 100644 (file)
@@ -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<pk>.*)$', WebclassAppointment.as_view(),
@@ -48,7 +48,11 @@ urlpatterns = [
         name="teleforma-webclass-record"),
     url(r'^webclass/periods/(?P<period_id>.*)/webclass_records_form/$',
         WebclassRecordsFormView.as_view(), name="teleforma-webclass-records-form"),
+    url(r'^desk/webclass/(?P<pk>.*)/unregister/$',
+        unregister,
+        name="teleforma-webclass-unregister"),
     url(r'^desk/webclass/(?P<pk>.*)/join/$',
         join_webclass,
         name="teleforma-webclass-join")
+    
 ]
index cced620e25e69098e35742202ebe9a5f388e8eeb..327023594e188162035d124226b7c724c6fcc3a5 100644 (file)
@@ -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}))