From 8e600c87490af98f14f1ba4d206ab5544d277dc4 Mon Sep 17 00:00:00 2001 From: David Taylor Date: Mon, 10 Aug 2015 17:43:18 +0300 Subject: [PATCH] Added read-only view of form --- rigForms/templates/rigForms/form_form.html | 13 +++++++++- rigForms/templates/rigForms/form_list.html | 3 +++ rigForms/urls.py | 4 ++- rigForms/views.py | 29 +++++++++++++++++++++- 4 files changed, 46 insertions(+), 3 deletions(-) diff --git a/rigForms/templates/rigForms/form_form.html b/rigForms/templates/rigForms/form_form.html index 2053e7f8..1d1e9258 100644 --- a/rigForms/templates/rigForms/form_form.html +++ b/rigForms/templates/rigForms/form_form.html @@ -17,7 +17,18 @@ {% include 'form_errors.html' %}
-
+ + + +
+ + {% if edit %} + + {% endif %}
diff --git a/rigForms/templates/rigForms/form_list.html b/rigForms/templates/rigForms/form_list.html index 09297323..4638d5b1 100644 --- a/rigForms/templates/rigForms/form_list.html +++ b/rigForms/templates/rigForms/form_list.html @@ -39,6 +39,9 @@ {{ object.last_edited_by }} at {{ object.last_edited_at }}
+ + + diff --git a/rigForms/urls.py b/rigForms/urls.py index abec91a0..9aabb1a6 100644 --- a/rigForms/urls.py +++ b/rigForms/urls.py @@ -7,7 +7,9 @@ from rigForms import views urlpatterns = patterns('', url(r'^create/(?P\d+)/for-event/(?P\d+)/$', permission_required_with_403('rigForms.create_form')(views.FormCreate.as_view()), name='create_form'), - url(r'^(?P\d+)/$', permission_required_with_403('rigForms.update_form')(views.FormUpdate.as_view()), + url(r'^(?P\d+)/$', permission_required_with_403('rigForms.view_form')(views.FormDetail.as_view()), + name='form_detail'), + url(r'^(?P\d+)/edit/$', permission_required_with_403('rigForms.update_form')(views.FormUpdate.as_view()), name='update_form'), url(r'^for-event/(?P\d+)/$', permission_required_with_403('rigForms.view_form')(views.FormList.as_view()), name='form_list'), diff --git a/rigForms/views.py b/rigForms/views.py index e3b97e26..1889c08a 100644 --- a/rigForms/views.py +++ b/rigForms/views.py @@ -47,6 +47,7 @@ class FormCreate(generic.CreateView): "event": self.event, "data": "{}" } + context["edit"] = True return context @@ -62,6 +63,22 @@ class FormCreate(generic.CreateView): 'pk': self.object.pk, }) +class FormDetail(generic.DetailView): + model = models.Form + template_name = 'rigForms/form_form.html' + + def get_success_url(self): + return reverse_lazy('update_form', kwargs={ + 'pk': self.object.pk, + }) + + def get_context_data(self, **kwargs): + context = super(FormDetail, self).get_context_data() + + context["edit"] = False + + return context + class FormUpdate(generic.UpdateView): model = models.Form fields = ['data'] @@ -71,6 +88,13 @@ class FormUpdate(generic.UpdateView): 'pk': self.object.pk, }) + def get_context_data(self, **kwargs): + context = super(FormUpdate, self).get_context_data() + + context["edit"] = True + + return context + class FormList(generic.ListView): model = models.Form @@ -173,7 +197,10 @@ class FormPrint(generic.TemplateView): def _render_field(self, parentField, parentValue, current_indent): result = "" for (key,field) in parentField.items(): - value = parentValue.get(key,None) + try: + value = parentValue.get(key,None) + except AttributeError: # if parentValue is None + value = None result += self._render_field_item(field, value, current_indent) return result