From 733da76cabf13a8788231a43b72cf1b735ca4d76 Mon Sep 17 00:00:00 2001 From: Nic Pottier Date: Thu, 17 Feb 2011 16:35:21 +0200 Subject: [PATCH] fix validation for custom fields, more csrf exceptions --- rapidsms_xforms/models.py | 1 + rapidsms_xforms/views.py | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/rapidsms_xforms/models.py b/rapidsms_xforms/models.py index 29449729..b78adffc 100644 --- a/rapidsms_xforms/models.py +++ b/rapidsms_xforms/models.py @@ -175,6 +175,7 @@ def update_submission_from_dict(self, submission, values): # no new value, we need to remove this one else: value.delete() + # now add any remaining values in our dict for key, value in values.items(): # look up the field by key diff --git a/rapidsms_xforms/views.py b/rapidsms_xforms/views.py index f5dea667..6dd3e688 100644 --- a/rapidsms_xforms/views.py +++ b/rapidsms_xforms/views.py @@ -298,12 +298,12 @@ def clean(self): field_val = str(cleaned_data.get(command)) try: - print "XFormField %s cleaning %s" % (field, field_val) cleaned_val = field.clean_submission(field_val) + cleaned_data[command] = cleaned_val except ValidationError as err: # if there is an error, remove it from our cleaned data and # add the error to our list of errors for this form - self._errors[field.command] = (self.error_class(err)) + self._errors[field.command] = self.error_class(err.messages) del cleaned_data[field.command] return cleaned_data @@ -399,6 +399,7 @@ def delete_field (req, form_id, field_id): return redirect("/xforms/%d/edit/" % xform.pk) +@csrf_exempt def add_constraint(req, form_id, field_id): xform = XForm.on_site.get(pk=form_id) field = XFormField.objects.get(pk=field_id) @@ -422,6 +423,7 @@ def add_constraint(req, form_id, field_id): { 'buttons' : add_button, 'form' : form, 'xform' : xform, 'field' : field }, context_instance=RequestContext(req)) +@csrf_exempt def edit_constraint(req, form_id, field_id, constraint_id) : xform = XForm.on_site.get(pk=form_id)