diff --git a/rigForms/models.py b/rigForms/models.py
index fea53f3d..d0da2cbf 100644
--- a/rigForms/models.py
+++ b/rigForms/models.py
@@ -51,5 +51,6 @@ class Form(models.Model, RevisionMixin):
class Meta:
permissions = (
('create_form', 'Can complete a form'),
+ ('update_form', 'Can change a form'),
)
\ No newline at end of file
diff --git a/rigForms/templates/rigForms/form_form.html b/rigForms/templates/rigForms/form_form.html
index 6ab0eafd..916ae8f5 100644
--- a/rigForms/templates/rigForms/form_form.html
+++ b/rigForms/templates/rigForms/form_form.html
@@ -7,7 +7,9 @@
{% block content %}
-
+
{% endblock %}
@@ -44,9 +46,18 @@
$scope.$broadcast('schemaFormValidate');
// Then we check if the form is valid
- if (form.valid) {
- // ... do whatever you need to do with your data.
- console.log()
+ if (form.$valid) {
+
+ //Submit the data in JSON form
+ var form = $('');
+
+ $('input[name="data"]', form).val(JSON.stringify($scope.model));
+
+ $('body').append(form);
+
+ form.submit();
}
}
diff --git a/rigForms/urls.py b/rigForms/urls.py
index 101dc2dc..928af8fd 100644
--- a/rigForms/urls.py
+++ b/rigForms/urls.py
@@ -5,7 +5,9 @@ from PyRIGS.decorators import permission_required_with_403
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'^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()),
+ name='update_form'),
)
diff --git a/rigForms/views.py b/rigForms/views.py
index dd29b934..8f6702b6 100644
--- a/rigForms/views.py
+++ b/rigForms/views.py
@@ -3,22 +3,57 @@ from django.views import generic
from rigForms import models
from django.shortcuts import get_object_or_404
+from django.http.response import HttpResponseRedirect
+from django.core.urlresolvers import reverse_lazy, reverse, NoReverseMatch
+
+import RIGS
class FormCreate(generic.CreateView):
model = models.Form
fields = ['data']
"""
+ Whenever this view is loaded, get the schema from the url
Expects kwarg "type_pk" to contain PK of required type
"""
- def get_context_data(self, **kwargs):
- context = super(FormCreate, self).get_context_data()
- schemaType = get_object_or_404(models.Type, pk=self.kwargs['type_pk'])
+ def dispatch(self, *args, **kwargs):
+ schemaType = get_object_or_404(models.Type, pk=kwargs['type_pk'])
currentSchema = models.Schema.objects.current_schema(schemaType)
+ self.schema = currentSchema
+
+ self.event = get_object_or_404(RIGS.models.Event, pk=kwargs['event_pk'])
+
+ return super(FormCreate, self).dispatch(*args, **kwargs)
+
+ def get_context_data(self, **kwargs):
+ context = super(FormCreate, self).get_context_data()
+
context["object"] = {
- "schema": currentSchema,
+ "schema": self.schema,
+ "event": self.event,
"data": "{}"
}
return context
+
+ def form_valid(self, form):
+ self.object = form.save(commit=False)
+ self.object.event = self.event
+ self.object.schema = self.schema
+ self.object.save()
+ return HttpResponseRedirect(self.get_success_url())
+
+ def get_success_url(self):
+ return reverse_lazy('update_form', kwargs={
+ 'pk': self.object.pk,
+ })
+
+class FormUpdate(generic.UpdateView):
+ model = models.Form
+ fields = ['data']
+
+ def get_success_url(self):
+ return reverse_lazy('update_form', kwargs={
+ 'pk': self.object.pk,
+ })