Added read-only view of form

This commit is contained in:
David Taylor
2015-08-10 17:43:18 +03:00
committed by Tom Price
parent 58e06c1b3e
commit 8e600c8749
4 changed files with 46 additions and 3 deletions

View File

@@ -17,7 +17,18 @@
{% include 'form_errors.html' %}
<div ng-controller="FormController" class="col-sm-12">
<form name="theForm" sf-schema="schema" sf-form="form" sf-model="model" ng-submit="onSubmit(theForm)">
<form name="theForm" ng-submit="onSubmit(theForm)">
<div sf-schema="schema" sf-form="form" sf-model="model"
{% if not edit %}
sf-options="{ formDefaults: { readonly: true } }"
{% endif %}
></div>
{% if edit %}
<input class="btn btn-primary" type="submit" value="Save">
{% endif %}
</form>
</div>

View File

@@ -39,6 +39,9 @@
<td>{{ object.last_edited_by }} at {{ object.last_edited_at }}</td>
<td class="text-right">
<div class="btn-group">
<a href="{% url 'form_detail' object.pk %}" class="btn btn-default">
<span class="glyphicon glyphicon-eye-open"></span>
</a>
<a href="{% url 'update_form' object.pk %}" class="btn btn-default">
<span class="glyphicon glyphicon-pencil"></span>
</a>

View File

@@ -7,7 +7,9 @@ from rigForms import views
urlpatterns = patterns('',
url(r'^create/(?P<type_pk>\d+)/for-event/(?P<event_pk>\d+)/$', permission_required_with_403('rigForms.create_form')(views.FormCreate.as_view()),
name='create_form'),
url(r'^(?P<pk>\d+)/$', permission_required_with_403('rigForms.update_form')(views.FormUpdate.as_view()),
url(r'^(?P<pk>\d+)/$', permission_required_with_403('rigForms.view_form')(views.FormDetail.as_view()),
name='form_detail'),
url(r'^(?P<pk>\d+)/edit/$', permission_required_with_403('rigForms.update_form')(views.FormUpdate.as_view()),
name='update_form'),
url(r'^for-event/(?P<event_pk>\d+)/$', permission_required_with_403('rigForms.view_form')(views.FormList.as_view()),
name='form_list'),

View File

@@ -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