From f4d8e0b2317c45471e0e8b8e23d60b084a9555f7 Mon Sep 17 00:00:00 2001 From: Jonathan Weth <git@jonathanweth.de> Date: Sun, 23 Aug 2020 19:22:54 +0200 Subject: [PATCH] Use class-based views for deleting personal notes --- aleksis/apps/alsijil/urls.py | 4 ++-- aleksis/apps/alsijil/views.py | 20 +++++++++----------- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/aleksis/apps/alsijil/urls.py b/aleksis/apps/alsijil/urls.py index 76e12ea7b..e2bba60a0 100644 --- a/aleksis/apps/alsijil/urls.py +++ b/aleksis/apps/alsijil/urls.py @@ -30,8 +30,8 @@ urlpatterns = [ path("persons/<int:id_>/", views.overview_person, name="overview_person"), path("me/", views.overview_person, name="overview_me"), path( - "notes/<int:id_>/delete/", - views.delete_personal_note, + "notes/<int:pk>/delete/", + views.DeletePersonalNoteView.as_view(), name="delete_personal_note", ), path("absence/new", views.register_absence, name="register_absence"), diff --git a/aleksis/apps/alsijil/views.py b/aleksis/apps/alsijil/views.py index c467ee72b..f936e19aa 100644 --- a/aleksis/apps/alsijil/views.py +++ b/aleksis/apps/alsijil/views.py @@ -7,6 +7,7 @@ from django.http import Http404, HttpRequest, HttpResponse, HttpResponseNotFound from django.shortcuts import get_object_or_404, redirect, render from django.urls import reverse, reverse_lazy from django.utils.translation import ugettext as _ +from django.views.generic import DetailView from calendarweek import CalendarWeek from django_tables2 import SingleTableView @@ -638,18 +639,15 @@ def register_absence(request: HttpRequest) -> HttpResponse: return render(request, "alsijil/absences/register.html", context) -def delete_personal_note(request: HttpRequest, id_: int) -> HttpResponse: - context = {} - - personal_note = get_object_or_404(PersonalNote, pk=id_) - - context["object"] = personal_note +class DeletePersonalNoteView(DetailView): + model = PersonalNote + template_name = "core/pages/delete.html" - if request.method == "POST": - personal_note.reset() - return redirect("overview_person", personal_note.person.pk) - else: - return render(request, "core/pages/delete.html", context) + def post(self, request, *args, **kwargs): + note = self.get_object() + note.reset() + messages.success(request, _("The personal note has been deleted.")) + return redirect("overview_person", note.person.pk) class ExtraMarkListView(SingleTableView, PermissionRequiredMixin): -- GitLab