From a44d945b701806af19bf93496179866174220668 Mon Sep 17 00:00:00 2001
From: HanseGucker <joniweth@gmx.de>
Date: Sun, 9 Dec 2018 13:09:32 +0100
Subject: [PATCH] Delete function for menus

---
 schoolapps/helper.py                          |  4 ++--
 schoolapps/mealplan/templates/menu/index.html | 15 ++++++++++++--
 .../mealplan/templates/menu/upload.html       |  8 ++++----
 schoolapps/mealplan/urls.py                   |  1 +
 schoolapps/mealplan/views.py                  |  8 +++++++-
 schoolapps/templates/components/msgbox.html   | 20 ++++++-------------
 6 files changed, 33 insertions(+), 23 deletions(-)

diff --git a/schoolapps/helper.py b/schoolapps/helper.py
index 85f985096..7a7cb54e1 100644
--- a/schoolapps/helper.py
+++ b/schoolapps/helper.py
@@ -18,5 +18,5 @@ def path_and_rename(instance, filename):
 
 
 @register.inclusion_tag("components/msgbox.html")
-def msg_box(msg, color="red"):
-    return {"msg": msg, "color": color}
+def msg_box(msg, color="red", icon="info"):
+    return {"msg": msg, "color": color, "icon": icon}
diff --git a/schoolapps/mealplan/templates/menu/index.html b/schoolapps/mealplan/templates/menu/index.html
index e6eca6353..d3087ef69 100755
--- a/schoolapps/mealplan/templates/menu/index.html
+++ b/schoolapps/mealplan/templates/menu/index.html
@@ -3,6 +3,8 @@
 <main>
     {% if msg == "success" %}
         {% msg_box "Der Speiseplan wurde erfolgreich hochgeladen." "green" %}
+    {% elif msg == "delete_success" %}
+        {% msg_box "Der Speiseplan wurde erfolgreich gelöscht." "green" %}
     {% endif %}
     <script type="text/javascript">
 
@@ -22,12 +24,21 @@
                 <span class="title">{{ menu }}</span>
                 <p>
                     <a class="btn-flat" href="/media/{{ menu.pdf }}" target="_blank">
-                        <i class="material-icons left">picture_as_pdf</i> PDF anzeigen
+                        <i class="material-icons left">picture_as_pdf</i> Anzeigen
+                    </a>
+                    <a class="btn-flat delete-menu" href="{% url "menu_delete"  menu.id %}">
+                        <i class="material-icons left">delete</i> Löschen
                     </a>
                 </p>
-                <a href="#!" class="secondary-content"><i class="material-icons">grade</i></a>
             </li>
         {% endfor %}
     </ul>
+    <script type="text/javascript">
+        $(".delete-menu").click(function (e) {
+            if (!confirm("Wirklich löschen?")) {
+                e.preventDefault();
+            }
+        })
+    </script>
 </main>
 {% include 'partials/footer.html' %}
diff --git a/schoolapps/mealplan/templates/menu/upload.html b/schoolapps/mealplan/templates/menu/upload.html
index dc20877f3..f838228e8 100755
--- a/schoolapps/mealplan/templates/menu/upload.html
+++ b/schoolapps/mealplan/templates/menu/upload.html
@@ -5,10 +5,10 @@
 
         {% csrf_token %}
 
-        <p class="red-text">{{ form.non_field_errors }}</p>
+        {% msg_box form.non_field_errors "red" "" %}
         <div class="row">
             <div class="input-field col s5">
-                <div class="red-text">{{ form.calendar_week.errors }}</div>
+                {% msg_box form.calendar_week.errors "red" "" %}
                 {#                <label for="{{ form.calendar_week.id_for_label }}">Kalenderwoche</label>#}
                 <small>Kalenderwoche</small>
                 {{ form.calendar_week }}
@@ -18,7 +18,7 @@
                 <h4>/</h4>
             </div>
             <div class="input-field col s5">
-                <div class="red-text">{{ form.year.errors }}</div>
+                {% msg_box form.year.errors "red" "" %}
                 {#                <label for="{{ form.year.id_for_label }}">Jahr</label>#}
                 <small>Jahr</small>
                 {{ form.year }}
@@ -26,7 +26,7 @@
         </div>
         <div class="file-field input-field">
             <div class="red-text">
-                {{ form.pdf.errors }}
+                {% msg_box form.pdf.errors "red" "" %}
             </div>
             <div class="btn">
                 <span><i class="material-icons center">cloud_upload</i> </span>
diff --git a/schoolapps/mealplan/urls.py b/schoolapps/mealplan/urls.py
index d34cda6c3..7e42ec018 100755
--- a/schoolapps/mealplan/urls.py
+++ b/schoolapps/mealplan/urls.py
@@ -4,6 +4,7 @@ from . import views
 urlpatterns = [
     path('', views.index, name="menu_index"),
     path('upload/', views.upload, name="menu_upload"),
+    path('delete/<int:id>', views.delete, name="menu_delete"),
     path('current.pdf', views.show_current, name="menu_show_current"),
     path('<str:msg>', views.index, name="menu_index_msg"),
 ]
diff --git a/schoolapps/mealplan/views.py b/schoolapps/mealplan/views.py
index 4ba436044..8e745620a 100644
--- a/schoolapps/mealplan/views.py
+++ b/schoolapps/mealplan/views.py
@@ -9,7 +9,6 @@ from mealplan.models import MealPlan
 from .forms import MenuUploadForm
 
 
-# Create your views here.
 def upload(request):
     if request.method == 'POST':
         form = MenuUploadForm(request.POST, request.FILES)
@@ -24,6 +23,13 @@ def upload(request):
     })
 
 
+def delete(request, id):
+    print(id)
+    MealPlan.objects.get(id=id).delete()
+
+    return redirect("menu_index_msg", msg="delete_success")
+
+
 def index(request, msg=None):
     menus = MealPlan.objects.all().order_by("calendar_week", "year")
     return render(request, 'menu/index.html', {"msg": msg, "menus": menus})
diff --git a/schoolapps/templates/components/msgbox.html b/schoolapps/templates/components/msgbox.html
index fe165068c..96ce2a787 100644
--- a/schoolapps/templates/components/msgbox.html
+++ b/schoolapps/templates/components/msgbox.html
@@ -1,18 +1,10 @@
 <div class="row" id="alert_box">
     <div class="col s12 m12">
-        <div class="card {{ color }} darken-1">
-            <div class="row">
-                <div class="col s12 m10">
-                    <div class="card-content white-text">
-                        {{ msg }}
-                    </div>
-                </div>
-                <div class="col s12 m2">
-                    <a class="btn-flat right waves-effect waves-{{ color }}" id="alert_close">
-                        <i class="material-icons center white-text">close</i>
-                    </a>
-                </div>
-            </div>
-        </div>
+        <p class="{{ color }}-text darken-1">
+            {% if icon != "" %}
+                <i class="material-icons left">{{ icon }}</i>
+            {% endif %}
+            {{ msg }}
+        </p>
     </div>
 </div>
\ No newline at end of file
-- 
GitLab