diff --git a/app/templates/dashboard.html b/app/templates/dashboard.html index 95ec1ee58a534f65270862f791cd32f71eaecce2..8ead412485d4c20696fcc2dffde7caea0460c11b 100644 --- a/app/templates/dashboard.html +++ b/app/templates/dashboard.html @@ -3,7 +3,7 @@ {% block title %} <title>Riwayat Unggah | Digipus</title> -{% endblock %} +{% endblock %} {% block content %} <!-- Page Heading --> @@ -43,10 +43,12 @@ <td class="verif-buttons"> <span> <a href="/materi/{{materi.id}}/" class="accept-button button-decoration" - style="background-color:#4e73df">Detail</a> + style="background-color:#4e73df">Detail</a> {% if materi.get_status_display == "Ditolak" or materi.get_status_display == "Perbaikan" %} <a href="/revisi/materi/{{materi.id}}/" class="reject-button button-decoration">Revisi</a> {% endif %} + <a type="button" href="/materi/{{materi.id}}/delete" class="reject-button button-decoration" + style="background-color:red">Hapus</a> </span> </td> </tr> diff --git a/app/tests.py b/app/tests.py index abbc2e4171efae4217485787ec0304c9b2d5689e..cd744649543950569e2d52bd34f189fd461291c5 100644 --- a/app/tests.py +++ b/app/tests.py @@ -917,6 +917,25 @@ class DashboardKontributorViewTest(TestCase): self.assertIn(ERROR_403_MESSAGE, html) +class DeleteMateriTest(TestCase): + def setUp(self): + self.client = Client() + self.content = SimpleUploadedFile( + "content.txt", b"Test") + self.cover = SimpleUploadedFile( + "flower.jpg", b"Test file") + self.contributor = User.objects.create_contributor(email="kontributor@gov.id", + password="kontributor") + Materi(title="Materi 1", author="Agas", uploader=self.contributor, + publisher="Kelas SC", descriptions="Deskripsi Materi 1", + status="APPROVE", cover=self.cover, content=self.content).save() + self.materi1 = Materi.objects.first() + self.url = "/materi/" + str(self.materi1.id) + "/delete" + + def test_url_delete_materi_is_success(self): + response = self.client.get(self.url) + self.assertEqual(response.status_code, 302) + class ProfilAdminTest(TestCase): def setUp(self): self.client = Client() diff --git a/app/urls.py b/app/urls.py index 7ccc70c3a5dc1c82dbcb59772f950b9a04e9c2da..8cc94d38e80b5fc56f3b5a2d2dab1318408af9bc 100644 --- a/app/urls.py +++ b/app/urls.py @@ -13,6 +13,7 @@ urlpatterns = [ path("materi/like/", views.toggle_like, name="PostLikeToggle"), path("delete/<int:pk_materi>/<int:pk_comment>", views.delete_comment, name="delete-comment"), + path("materi/<int:pk>/delete", views.delete_materi, name="detele-materi"), path("materi/<int:pk>/unduh", views.download_materi, name="download-materi"), path("materi/<int:pk>/view", views.view_materi, name="view-materi"), path("dashboard/", DashboardKontributorView.as_view(), name="dashboard"), diff --git a/app/views.py b/app/views.py index bc0b9f0f74d23bdfb3e4cfd994a52138a020bac5..7de048df03cc147d221b5dd8b9d736283a549651 100644 --- a/app/views.py +++ b/app/views.py @@ -348,6 +348,11 @@ def view_materi(request, pk): raise Http404("File tidak dapat ditemukan.") +def delete_materi(request, pk): + materi = get_object_or_404(Materi, pk=pk) + materi.delete() + return HttpResponseRedirect("/dashboard/") + class UploadMateriView(TemplateView): template_name = "unggah.html" context = {}