From 1e6cffa57ccf7b1accdd4b57577477aefefc458c Mon Sep 17 00:00:00 2001
From: Dominik George <nik@naturalnet.de>
Date: Thu, 5 Sep 2019 21:28:02 +0200
Subject: [PATCH] Add lesson substitution deletion.

---
 .../chronos/templates/chronos/edit_substitution.html  | 10 ++++++++++
 biscuit/apps/chronos/urls.py                          |  1 +
 biscuit/apps/chronos/views.py                         | 11 +++++++++++
 3 files changed, 22 insertions(+)

diff --git a/biscuit/apps/chronos/templates/chronos/edit_substitution.html b/biscuit/apps/chronos/templates/chronos/edit_substitution.html
index 9ca27435..88a03425 100644
--- a/biscuit/apps/chronos/templates/chronos/edit_substitution.html
+++ b/biscuit/apps/chronos/templates/chronos/edit_substitution.html
@@ -8,6 +8,16 @@
 {% block page_title %}{% blocktrans %}Edit substitution{% endblocktrans %}{% endblock %}
 
 {% block content %}
+  <div class="d-flex justify-content-between">
+    <div class="btn-group" role="group" aria-label="Day actions">
+      {% if substitution %}
+        <a href="{% url 'delete_substitution' substitution.lesson_period.id substitution.week %}" class="btn btn-danger">
+          {% fa 'trash-o' %}
+        </a>
+      {% endif %}
+    </div>
+  </div>
+
   <form method="post">
     {% csrf_token %}
     {% bootstrap_form edit_substitution_form %}
diff --git a/biscuit/apps/chronos/urls.py b/biscuit/apps/chronos/urls.py
index e3a9751a..f9f4e776 100644
--- a/biscuit/apps/chronos/urls.py
+++ b/biscuit/apps/chronos/urls.py
@@ -9,4 +9,5 @@ urlpatterns = [
     path('lessons', views.lessons_day, name='lessons_day'),
     path('lessons/<when>', views.lessons_day, name='lessons_day_by_date'),
     path('lessons/<int:id_>/<int:week>/substition', views.edit_substitution, name='edit_substitution')
+    path('lessons/<int:id_>/<int:week>/substition/delete', views.delete_substitution, name='delete_substitution')
 ]
diff --git a/biscuit/apps/chronos/views.py b/biscuit/apps/chronos/views.py
index 78508d42..7acc740f 100644
--- a/biscuit/apps/chronos/views.py
+++ b/biscuit/apps/chronos/views.py
@@ -158,3 +158,14 @@ def edit_substitution(request: HttpRequest, id_: int, week: int) -> HttpResponse
     context['edit_substitution_form'] = edit_substitution_form
 
     return render(request, 'chronos/edit_substitution.html', context)
+
+
+@admin_required
+def edit_substitution(request: HttpRequest, id_: int, week: int) -> HttpResponse:
+    context = {}
+
+    LessonSubstitution.objects.filter(
+        week=week, lesson_period__id=id_
+    ).delete()
+
+    return redirect('edit_substitution', week, id_)
-- 
GitLab