mirror of
https://github.com/nottinghamtec/PyRIGS.git
synced 2026-03-03 10:38:23 +00:00
Added update view & saving logic
This commit is contained in:
@@ -51,5 +51,6 @@ class Form(models.Model, RevisionMixin):
|
|||||||
class Meta:
|
class Meta:
|
||||||
permissions = (
|
permissions = (
|
||||||
('create_form', 'Can complete a form'),
|
('create_form', 'Can complete a form'),
|
||||||
|
('update_form', 'Can change a form'),
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -7,7 +7,9 @@
|
|||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div ng-controller="FormController">
|
<div ng-controller="FormController">
|
||||||
<form sf-schema="schema" sf-form="form" sf-model="model" ng-submit="onSubmit(myForm)"></form>
|
<form name="theForm" sf-schema="schema" sf-form="form" sf-model="model" ng-submit="onSubmit(theForm)">
|
||||||
|
|
||||||
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
@@ -44,9 +46,18 @@
|
|||||||
$scope.$broadcast('schemaFormValidate');
|
$scope.$broadcast('schemaFormValidate');
|
||||||
|
|
||||||
// Then we check if the form is valid
|
// Then we check if the form is valid
|
||||||
if (form.valid) {
|
if (form.$valid) {
|
||||||
// ... do whatever you need to do with your data.
|
|
||||||
console.log()
|
//Submit the data in JSON form
|
||||||
|
var form = $('<form action="" method="post">' + "{% csrf_token %}" +
|
||||||
|
'<input style="display:none" type="text" name="data" value="" />' +
|
||||||
|
'</form>');
|
||||||
|
|
||||||
|
$('input[name="data"]', form).val(JSON.stringify($scope.model));
|
||||||
|
|
||||||
|
$('body').append(form);
|
||||||
|
|
||||||
|
form.submit();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,5 +7,7 @@ from rigForms import views
|
|||||||
urlpatterns = patterns('',
|
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()),
|
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'),
|
name='create_form'),
|
||||||
|
url(r'^(?P<pk>\d+)/$', permission_required_with_403('rigForms.update_form')(views.FormUpdate.as_view()),
|
||||||
|
name='update_form'),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -3,22 +3,57 @@ from django.views import generic
|
|||||||
from rigForms import models
|
from rigForms import models
|
||||||
|
|
||||||
from django.shortcuts import get_object_or_404
|
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):
|
class FormCreate(generic.CreateView):
|
||||||
model = models.Form
|
model = models.Form
|
||||||
fields = ['data']
|
fields = ['data']
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
Whenever this view is loaded, get the schema from the url
|
||||||
Expects kwarg "type_pk" to contain PK of required type
|
Expects kwarg "type_pk" to contain PK of required type
|
||||||
"""
|
"""
|
||||||
def get_context_data(self, **kwargs):
|
def dispatch(self, *args, **kwargs):
|
||||||
context = super(FormCreate, self).get_context_data()
|
schemaType = get_object_or_404(models.Type, pk=kwargs['type_pk'])
|
||||||
schemaType = get_object_or_404(models.Type, pk=self.kwargs['type_pk'])
|
|
||||||
currentSchema = models.Schema.objects.current_schema(schemaType)
|
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"] = {
|
context["object"] = {
|
||||||
"schema": currentSchema,
|
"schema": self.schema,
|
||||||
|
"event": self.event,
|
||||||
"data": "{}"
|
"data": "{}"
|
||||||
}
|
}
|
||||||
|
|
||||||
return context
|
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,
|
||||||
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user