diff --git a/.gitignore b/.gitignore index 1ee03766..b48aa763 100644 --- a/.gitignore +++ b/.gitignore @@ -119,6 +119,7 @@ fabric.properties # Virtual env .venv* +venv package-lock.json *.db diff --git a/project/tests/test_delete_request.py b/project/tests/test_delete_request.py new file mode 100644 index 00000000..1ce28dd3 --- /dev/null +++ b/project/tests/test_delete_request.py @@ -0,0 +1,20 @@ +from http import HTTPStatus + +from django.test import Client, TestCase +from django.urls import reverse + +from silk.models import Request + + +class TestDeleteRequest(TestCase): + def setUp(self): + self.client = Client() + self.request = Request() + self.request.path = reverse('silk:requests') + self.request.method = 'get' + self.request.body = b'a' * 1000 + self.request.save() + + def test_delete(self): + response = self.client.post(reverse('silk:request_detail', kwargs={'request_id': str(self.request.id)})) + self.assertEqual(response.status_code, HTTPStatus.FOUND) diff --git a/silk/static/silk/css/components/button.css b/silk/static/silk/css/components/button.css new file mode 100644 index 00000000..490c231e --- /dev/null +++ b/silk/static/silk/css/components/button.css @@ -0,0 +1,13 @@ +.silk-button{ + border: 1px solid transparent; + border-radius: 0.25rem; + padding: 6px 10px; + background: rgb(51, 51, 68); + color: whitesmoke; + margin-top: 5%; +} + +.cell:hover .silk-button{ + background-color: #e2e6ea; + color: #000; +} diff --git a/silk/templates/silk/base/root_base.html b/silk/templates/silk/base/root_base.html index 5154e818..6051212a 100644 --- a/silk/templates/silk/base/root_base.html +++ b/silk/templates/silk/base/root_base.html @@ -11,6 +11,7 @@ + diff --git a/silk/templates/silk/inclusion/request_summary.html b/silk/templates/silk/inclusion/request_summary.html index 18caa4bb..8cc82401 100644 --- a/silk/templates/silk/inclusion/request_summary.html +++ b/silk/templates/silk/inclusion/request_summary.html @@ -14,4 +14,10 @@ {{ silk_request.num_sql_queries }} queries{% if silk_request.meta_num_queries %} +{{ silk_request.meta_num_queries }}{% endif %} +
+
+ {% csrf_token %} + +
+
diff --git a/silk/templates/silk/request.html b/silk/templates/silk/request.html index ca545874..f2caf880 100644 --- a/silk/templates/silk/request.html +++ b/silk/templates/silk/request.html @@ -5,6 +5,7 @@ {% block style %} + diff --git a/silk/views/request_detail.py b/silk/views/request_detail.py index 6baa3adb..3f43aacc 100644 --- a/silk/views/request_detail.py +++ b/silk/views/request_detail.py @@ -1,6 +1,7 @@ import json -from django.shortcuts import render +from django.shortcuts import HttpResponseRedirect, redirect, render +from django.urls import reverse from django.utils.decorators import method_decorator from django.views.generic import View @@ -40,3 +41,13 @@ def get(self, request, request_id): 'request': request } return render(request, 'silk/request.html', context) + + @method_decorator(login_possibly_required) + @method_decorator(permissions_possibly_required) + def post(self, request, request_id): + silk_request = Request.objects.get(pk=request_id) + try: + silk_request.delete() + except Request.DoesNotExist: + return HttpResponseRedirect(request.headers.get('Referer', reverse("silk:summary"))) + return redirect(reverse("silk:summary"))