Skip to content

Commit

Permalink
Fix FormField json handling
Browse files Browse the repository at this point in the history
  • Loading branch information
noirbizarre committed Apr 7, 2015
1 parent 913a812 commit dedbe6e
Showing 1 changed file with 18 additions and 5 deletions.
23 changes: 18 additions & 5 deletions udata/forms/fields.py
Original file line number Diff line number Diff line change
Expand Up @@ -163,13 +163,26 @@ class TextAreaField(FieldHelper, EmptyNone, fields.TextAreaField):
pass


class FormWrapper(object):
'''
Wrap FormField nested form class to handle both
JSON provisionning from wtforms-json
and CSRF disabled from flask-wtf
'''
def __init__(self, cls):
self.cls = cls

def __call__(self, *args, **kwargs):
kwargs['csrf_enabled'] = False
return self.cls(*args, **kwargs)

def __getattr__(self, name):
return getattr(self.cls, name)


class FormField(FieldHelper, fields.FormField):
def __init__(self, form_class, *args, **kwargs):
def wrapper(*args, **kwargs):
kwargs['csrf_enabled'] = False
return form_class(*args, **kwargs)

super(FormField, self).__init__(wrapper, *args, **kwargs)
super(FormField, self).__init__(FormWrapper(form_class), *args, **kwargs)


def nullable_text(value):
Expand Down

0 comments on commit dedbe6e

Please sign in to comment.