mirror of
https://github.com/Hopiu/wagtail.git
synced 2026-05-15 02:33:13 +00:00
Implement deletion of form submission
- Write a view function to delete submission(views.delete_submission) - Route the function to 'submissions/<page_id>/<submission_id>/delete/' - Create a button for each row in submission list
This commit is contained in:
parent
0ea3a73ae5
commit
c3a80e7e10
3 changed files with 21 additions and 4 deletions
|
|
@ -10,18 +10,24 @@
|
|||
{% for heading in data_headings %}
|
||||
<th>{{ heading }}</th>
|
||||
{% endfor %}
|
||||
<th>{% trans "Delete Submission" %}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for row in data_rows %}
|
||||
<tr>
|
||||
{% for cell in row %}
|
||||
{% for cell in row.fields %}
|
||||
<td>
|
||||
{{ cell }}
|
||||
</td>
|
||||
{% endfor %}
|
||||
<td>
|
||||
<a class="button" href="
|
||||
{% url 'wagtailforms_delete_submission' form_page.id row.model_id %}">
|
||||
delete</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -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')
|
||||
]
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Reference in a new issue