diff --git a/wagtail/wagtailforms/templates/wagtailforms/list_submissions.html b/wagtail/wagtailforms/templates/wagtailforms/list_submissions.html
index 38b4185c7..2dcdb9bfd 100644
--- a/wagtail/wagtailforms/templates/wagtailforms/list_submissions.html
+++ b/wagtail/wagtailforms/templates/wagtailforms/list_submissions.html
@@ -10,18 +10,24 @@
{% for heading in data_headings %}
{{ heading }} |
{% endfor %}
+ {% trans "Delete Submission" %} |
{% for row in data_rows %}
- {% for cell in row %}
+ {% for cell in row.fields %}
|
{{ cell }}
|
{% endfor %}
+
+
+ delete
+ |
{% endfor %}
-
+
\ No newline at end of file
diff --git a/wagtail/wagtailforms/urls.py b/wagtail/wagtailforms/urls.py
index 4cf64ccbe..3d80886bd 100644
--- a/wagtail/wagtailforms/urls.py
+++ b/wagtail/wagtailforms/urls.py
@@ -6,4 +6,5 @@ from wagtail.wagtailforms import views
urlpatterns = [
url(r'^$', views.index, name='wagtailforms_index'),
url(r'^submissions/(\d+)/$', views.list_submissions, name='wagtailforms_list_submissions'),
+ url(r'^submissions/(\d+)/(\d+)/delete/$', views.delete_submission, name='wagtailforms_delete_submission')
]
diff --git a/wagtail/wagtailforms/views.py b/wagtail/wagtailforms/views.py
index 48f1f68ed..d9f6d7db7 100644
--- a/wagtail/wagtailforms/views.py
+++ b/wagtail/wagtailforms/views.py
@@ -5,7 +5,7 @@ import csv
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from django.core.exceptions import PermissionDenied
from django.http import HttpResponse
-from django.shortcuts import get_object_or_404, render
+from django.shortcuts import get_object_or_404, render, redirect
from django.utils.encoding import smart_str
from wagtail.wagtailcore.models import Page
@@ -31,6 +31,12 @@ def index(request):
'form_pages': form_pages,
})
+def delete_submission(request, page_id, submission_id):
+ if not get_forms_for_user(request.user).filter(id=page_id).exists():
+ raise PermissionDenied
+ FormSubmission.objects.get(id=submission_id).delete()
+
+ return redirect('wagtailforms_list_submissions', page_id)
def list_submissions(request, page_id):
form_page = get_object_or_404(Page, id=page_id).specific
@@ -93,7 +99,11 @@ def list_submissions(request, page_id):
for s in submissions:
form_data = s.get_data()
data_row = [s.submit_time] + [form_data.get(name) for name, label in data_fields]
- data_rows.append(data_row)
+ data_rows.append(
+ {
+ "model_id": s.id,
+ "fields": data_row
+ })
return render(request, 'wagtailforms/index_submissions.html', {
'form_page': form_page,