diff --git a/wagtail/wagtailforms/templates/wagtailforms/form_index.html b/wagtail/wagtailforms/templates/wagtailforms/form_index.html
new file mode 100644
index 000000000..143542367
--- /dev/null
+++ b/wagtail/wagtailforms/templates/wagtailforms/form_index.html
@@ -0,0 +1,25 @@
+{% extends "wagtailadmin/base.html" %}
+{% load i18n %}
+{% block titletag %}{% blocktrans with form_title=form_page.title|capfirst %}Submissions of {{ form_title }}{% endblocktrans %}{% endblock %}
+{% block bodyclass %}menu-snippets{% endblock %}
+{% block content %}
+
+
+
+ {% if submissions %}
+ {% include "wagtailforms/list.html" %}
+ {% else %}
+
{% blocktrans with title=form_page.title %}No submissions of the '{{ title }}' form.{% endblocktrans %}
+ {% endif %}
+
+{% endblock %}
diff --git a/wagtail/wagtailforms/templates/wagtailforms/index.html b/wagtail/wagtailforms/templates/wagtailforms/index.html
index b4928e8e3..d99fc8d98 100644
--- a/wagtail/wagtailforms/templates/wagtailforms/index.html
+++ b/wagtail/wagtailforms/templates/wagtailforms/index.html
@@ -3,18 +3,20 @@
{% block titletag %}{% trans "Forms" %}{% endblock %}
{% block bodyclass %}menu-forms{% endblock %}
{% block content %}
-
- {% include "wagtailadmin/shared/header.html" with title="Forms" %}
+ {% trans "Forms" as forms_str %}
+ {% trans "Please select a form to view its submissions" as select_form_str %}
+ {% include "wagtailadmin/shared/header.html" with title=forms_str subtitle=select_form_str %}
- {% for name, description, content_type in form_types %}
+ {% for fp in form_pages %}
-
{% endfor %}
diff --git a/wagtail/wagtailforms/templates/wagtailforms/list.html b/wagtail/wagtailforms/templates/wagtailforms/list.html
new file mode 100644
index 000000000..243846615
--- /dev/null
+++ b/wagtail/wagtailforms/templates/wagtailforms/list.html
@@ -0,0 +1,28 @@
+{% load i18n %}
+
+
+
+
+
+
+
+
+ {% for submission in submissions %}
+
+ |
+ {{ submission.submit_time }}
+ |
+
+ {{ submission.user }}
+ |
+
+ {{ submission.form_data }}
+ |
+
+ {% endfor %}
+
+
\ No newline at end of file
diff --git a/wagtail/wagtailforms/urls.py b/wagtail/wagtailforms/urls.py
index 7de8b003b..afcaaa5a6 100644
--- a/wagtail/wagtailforms/urls.py
+++ b/wagtail/wagtailforms/urls.py
@@ -4,11 +4,6 @@ from django.conf.urls import patterns, url
urlpatterns = patterns(
'wagtail.wagtailforms.views',
url(r'^$', 'index', name='wagtailforms_index'),
+ url(r'^submissions/(\w+)/(\w+)/(\d+)/$', 'list_submissions', name='wagtailforms_list_submissions'),
- #url(r'^choose/$', 'chooser.choose', name='wagtailsnippets_choose_generic'),
- #url(r'^choose/(\w+)/(\w+)/$', 'chooser.choose', name='wagtailsnippets_choose'),
-
- #url(r'^(\w+)/(\w+)/$', 'snippets.list', name='wagtailsnippets_list'),
- #url(r'^(\w+)/(\w+)/new/$', 'snippets.create', name='wagtailsnippets_create'),
- #url(r'^(\w+)/(\w+)/(\d+)/$', 'snippets.edit', name='wagtailsnippets_edit'),
)
diff --git a/wagtail/wagtailforms/views.py b/wagtail/wagtailforms/views.py
index 1814cd814..a263acaf0 100644
--- a/wagtail/wagtailforms/views.py
+++ b/wagtail/wagtailforms/views.py
@@ -9,35 +9,48 @@ from django.core.exceptions import PermissionDenied
from django.utils.translation import ugettext as _
from wagtail.wagtailadmin.edit_handlers import ObjectList, extract_panel_definitions_from_model_class
+from wagtail.wagtailcore.models import Page
+from wagtail.wagtailforms.models import FormSubmission, get_form_types
+
+
+def get_form_type_from_url_params(app_name, model_name):
+ """
+ Retrieve a form type from an app_name / model_name combo.
+ Throw Http404 if not a valid form type
+ """
+ try:
+ content_type = ContentType.objects.get_by_natural_key(app_name, model_name)
+ except ContentType.DoesNotExist:
+ raise Http404
+ if content_type not in get_form_types():
+ raise Http404
+
+ return content_type
@permission_required('wagtailadmin.access_admin')
def index(request):
-
+ form_types = get_form_types()
+ form_pages = Page.objects.filter(content_type__in=form_types)
return render(request, 'wagtailforms/index.html', {
- #'snippet_types': snippet_types,
+ 'form_pages': form_pages,
+ })
+
+@permission_required('wagtailadmin.access_admin')
+def list_submissions(request, app_label, model, id):
+
+ model = get_form_type_from_url_params(app_label, model).model_class()
+ form_page = get_object_or_404(model, id=id)
+
+ submissions = FormSubmission.objects.filter(form_page=form_page)
+
+ return render(request, 'wagtailforms/form_index.html', {
+ 'form_page': form_page,
+ 'submissions': submissions,
})
"""
-@permission_required('wagtailadmin.access_admin') # further permissions are enforced within the view
-def list(request, content_type_app_name, content_type_model_name):
- content_type = get_content_type_from_url_params(content_type_app_name, content_type_model_name)
- if not user_can_edit_snippet_type(request.user, content_type):
- raise PermissionDenied
-
- model = content_type.model_class()
- snippet_type_name, snippet_type_name_plural = get_snippet_type_name(content_type)
-
- items = model.objects.all()
-
- return render(request, 'wagtailsnippets/snippets/type_index.html', {
- 'content_type': content_type,
- 'snippet_type_name': snippet_type_name,
- 'snippet_type_name_plural': snippet_type_name_plural,
- 'items': items,
- })
-
@permission_required('wagtailadmin.access_admin') # further permissions are enforced within the view
def create(request, content_type_app_name, content_type_model_name):