From c3a80e7e1087aa102a19fd2db49dbb0233d56fb4 Mon Sep 17 00:00:00 2001 From: hanpama Date: Sun, 19 Jul 2015 22:05:46 +0900 Subject: [PATCH] Implement deletion of form submission - Write a view function to delete submission(views.delete_submission) - Route the function to 'submissions///delete/' - Create a button for each row in submission list --- .../templates/wagtailforms/list_submissions.html | 10 ++++++++-- wagtail/wagtailforms/urls.py | 1 + wagtail/wagtailforms/views.py | 14 ++++++++++++-- 3 files changed, 21 insertions(+), 4 deletions(-) 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,