From 023cf9af325052f9d648a25e146d66c1a8242dbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Valenta?= <git@imaniti.org> Date: Thu, 12 Oct 2023 16:59:36 +0200 Subject: [PATCH] delete view --- package-lock.json | 30 +++++++++----- timer/templates/timer/delete_timer.html | 54 +++++++++++++++++++++++++ timer/templates/timer/edit_timer.html | 9 +++++ timer/urls.py | 1 + timer/views.py | 11 ++++- 5 files changed, 94 insertions(+), 11 deletions(-) create mode 100644 timer/templates/timer/delete_timer.html diff --git a/package-lock.json b/package-lock.json index 779f79f..87b8aee 100644 --- a/package-lock.json +++ b/package-lock.json @@ -667,9 +667,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001481", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001481.tgz", - "integrity": "sha512-KCqHwRnaa1InZBtqXzP98LPg0ajCVujMKjqKDhZEthIpAsJl/YEIa3YvXjGXPVqzZVguccuu7ga9KOE1J9rKPQ==", + "version": "1.0.30001547", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001547.tgz", + "integrity": "sha512-W7CrtIModMAxobGhz8iXmDfuJiiKg1WADMO/9x7/CLNin5cpSbuBjooyoIUVB5eyCc36QuTVlkVa1iB2S5+/eA==", "funding": [ { "type": "opencollective", @@ -1627,9 +1627,15 @@ } }, "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -1814,9 +1820,9 @@ } }, "node_modules/postcss": { - "version": "8.4.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", - "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", "funding": [ { "type": "opencollective", @@ -1825,10 +1831,14 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "nanoid": "^3.3.4", + "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, diff --git a/timer/templates/timer/delete_timer.html b/timer/templates/timer/delete_timer.html new file mode 100644 index 0000000..62d7582 --- /dev/null +++ b/timer/templates/timer/delete_timer.html @@ -0,0 +1,54 @@ +{% extends "shared/base.html" %} + +{% load render_bundle from webpack_loader %} + +{% block title %}Časovače{% endblock %} +{% block header_name %}Časovače{% endblock %} +{% block description %}{% endblock %} + +{% block head %} + <link + rel="stylesheet" + href="https://styleguide.pirati.cz/2.12.x/css/styles.css" + > + {% render_bundle "timer" %} +{% endblock %} + +{% block content %} + <main> + <h1 class="text-6xl font-bebas">Odstraněnà časovače {{ timer.name }}</h1> + + <div class="prose mb-4"> + Skutečně chceš odstranit časovač {{ timer.name }}? Tento krok nelze vrátit zpět. + </div> + + <div class="flex gap-2"> + <a + class="btn btn--icon btn--black" + href="{% url 'timer:edit_timer' timer.id %}" + > + <div class="btn__body-wrap"> + <div class="btn__body">Zrušit</div> + <div class="btn__icon"> + <i class="ico--cross"></i> + </div> + </div> + </a> + + <form method="post"> + {% csrf_token %} + <button + class="btn btn--icon btn--red-600" + href="{% url 'timer:edit_timer' timer.id %}" + > + <div class="btn__body-wrap"> + <div class="btn__body">Smazat</div> + <div class="btn__icon"> + <i class="ico--checkmark"></i> + </div> + </div> + </a> + </form> + </div> + </main> +{% endblock %} diff --git a/timer/templates/timer/edit_timer.html b/timer/templates/timer/edit_timer.html index 8ae6485..7e9811a 100644 --- a/timer/templates/timer/edit_timer.html +++ b/timer/templates/timer/edit_timer.html @@ -77,6 +77,15 @@ <div class="btn__body">Aktualizovat čas</div> </button> </div> + + <a + id="delete-timer" + class="btn btn--red-600 w-64" + role="button" + href="{% url 'timer:delete_timer' timer.id %}" + > + <div class="btn__body">Smazat časovač</div> + </a> </div> </main> {% endblock %} diff --git a/timer/urls.py b/timer/urls.py index 7dc4435..a58f10c 100644 --- a/timer/urls.py +++ b/timer/urls.py @@ -8,4 +8,5 @@ urlpatterns = [ path("novy", views.create, name="create"), path("<int:id>", views.view_timer, name="view_timer"), path("<int:id>/uprava", views.edit_timer, name="edit_timer"), + path("<int:id>/smazat", views.delete_timer, name="delete_timer"), ] diff --git a/timer/views.py b/timer/views.py index 614acc4..252f802 100644 --- a/timer/views.py +++ b/timer/views.py @@ -20,7 +20,6 @@ def create(request): if form.is_valid(): timer = OngoingTimer( - hours=form.cleaned_data["hours"], minutes=form.cleaned_data["minutes"], seconds=form.cleaned_data["seconds"], name=form.cleaned_data["name"], @@ -44,3 +43,13 @@ def edit_timer(request, id: int): timer = get_object_or_404(OngoingTimer, id=id) return render(request, "timer/edit_timer.html", {"timer": timer}) + + +def delete_timer(request, id: int): + timer = get_object_or_404(OngoingTimer, id=id) + + if request.method == "POST": + timer.delete() + return redirect("timer:index") + + return render(request, "timer/delete_timer.html", {"timer": timer}) -- GitLab