Commit 97ec7f7c authored by Serge S. Koval's avatar Serge S. Koval

Fixed #161. Support flat choices with MongoEngine backend

parent 9c503bc0
......@@ -44,6 +44,13 @@ class CustomModelConverter(orm.ModelConverter):
return p
def _convert_choices(self, choices):
for c in choices:
if isinstance(c, tuple):
yield c
else:
yield (c, c)
def clone_converter(self, view):
return self.__class__(view)
......@@ -71,7 +78,7 @@ class CustomModelConverter(orm.ModelConverter):
ftype = type(field).__name__
if field.choices:
kwargs['choices'] = field.choices
kwargs['choices'] = list(self._convert_choices(field.choices))
if ftype in self.converters:
kwargs["coerce"] = self.coerce(ftype)
......
......@@ -461,3 +461,16 @@ def test_nested_ajax_refs():
form = view1.create_form()
eq_(type(form.nested.form.comment).__name__, 'AjaxSelectField')
ok_('nested-comment' in view1._form_ajax_refs)
def test_form_flat_choices():
app, db, admin = setup()
class Model(db.Document):
name = db.StringField(max_length=20, choices=('a', 'b', 'c'))
view = CustomModelView(Model)
admin.add_view(view)
form = view.create_form()
eq_(form.name.choices, [('a', 'a'), ('b', 'b'), ('c', 'c')])
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment