From 360a1d76c056f184b5c5ec91e044b3ba9ee53145 Mon Sep 17 00:00:00 2001 From: Kristofers Solo Date: Mon, 26 Jun 2023 14:42:10 +0000 Subject: [PATCH] Added `Project` delete view --- FOSSDB/apps/fossdb/urls.py | 1 + FOSSDB/apps/fossdb/views.py | 13 +++++++++++++ templates/fossdb/delete_view.html | 9 +++++++++ 3 files changed, 23 insertions(+) create mode 100644 templates/fossdb/delete_view.html diff --git a/FOSSDB/apps/fossdb/urls.py b/FOSSDB/apps/fossdb/urls.py index a86d3c2..7653018 100644 --- a/FOSSDB/apps/fossdb/urls.py +++ b/FOSSDB/apps/fossdb/urls.py @@ -7,4 +7,5 @@ urlpatterns = [ path("add/", views.add_project, name="add-project"), path("//", views.ProjectDetailView.as_view(), name="project-detail"), path("//update/", views.ProjectUpdateView.as_view(), name="project-update"), + path("//delete/", views.ProjectDeleteView.as_view(), name="project-delete"), ] diff --git a/FOSSDB/apps/fossdb/views.py b/FOSSDB/apps/fossdb/views.py index 16a03fb..8a29c1f 100644 --- a/FOSSDB/apps/fossdb/views.py +++ b/FOSSDB/apps/fossdb/views.py @@ -88,3 +88,16 @@ class ProjectUpdateView(LoginRequiredMixin, UserPassesTestMixin, UpdateView): return self.get_object().owner == self.request.user +class ProjectDeleteView(LoginRequiredMixin, UserPassesTestMixin, DeleteView): + model = Project + template_name = "fossdb/delete_view.html" + slug_field = "name" + slug_url_kwarg = "project_name" + success_url = reverse_lazy("index") + + def get_queryset(self): + queryset = super().get_queryset() + return queryset.filter(owner__username=self.kwargs.get("username")) + + def test_func(self): + return self.get_object().owner == self.request.user diff --git a/templates/fossdb/delete_view.html b/templates/fossdb/delete_view.html new file mode 100644 index 0000000..b0c59df --- /dev/null +++ b/templates/fossdb/delete_view.html @@ -0,0 +1,9 @@ +{% extends "layout.html" %} +{% block title %}Delete {{ project.name }}{% endblock %} +{% block content %} +

Are you sue you want to delete {{ project.name }}?

+
+ {% csrf_token %} + +
+{% endblock %}