Commit f068f31e authored by Serge S. Koval's avatar Serge S. Koval

Cleaned up code a bit

parent 9cec4976
...@@ -218,13 +218,10 @@ class AdminModelConverter(ModelConverterBase): ...@@ -218,13 +218,10 @@ class AdminModelConverter(ModelConverterBase):
field_args['validators'].append(validators.UUID()) field_args['validators'].append(validators.UUID())
return fields.TextField(**field_args) return fields.TextField(**field_args)
# Get list of fields and generate form
def model_fields(model, converter, only=None, exclude=None, field_args=None): def get_form(self, model, base_class=form.BaseForm,
""" only=None, exclude=None,
Generate a dictionary of fields for a given SQLAlchemy model. field_args=None):
See `model_form` docstring for description of parameters.
"""
# TODO: Support new 0.8 API # TODO: Support new 0.8 API
if not hasattr(model, '_sa_class_manager'): if not hasattr(model, '_sa_class_manager'):
raise TypeError('model must be a sqlalchemy mapped model') raise TypeError('model must be a sqlalchemy mapped model')
...@@ -240,8 +237,8 @@ def model_fields(model, converter, only=None, exclude=None, field_args=None): ...@@ -240,8 +237,8 @@ def model_fields(model, converter, only=None, exclude=None, field_args=None):
field_dict = {} field_dict = {}
for name, prop in properties: for name, prop in properties:
field = converter.convert(model, mapper, prop, field_args.get(name)) field = self.convert(model, mapper, prop, field_args.get(name))
if field is not None: if field is not None:
field_dict[name] = field field_dict[name] = field
return field_dict return type(model.__name__ + 'Form', (base_class, ), field_dict)
...@@ -7,7 +7,6 @@ from flask import flash ...@@ -7,7 +7,6 @@ from flask import flash
from flask.ext.admin.babel import gettext, ngettext, lazy_gettext from flask.ext.admin.babel import gettext, ngettext, lazy_gettext
from flask.ext.admin.model import BaseModelView from flask.ext.admin.model import BaseModelView
from flask.ext.admin.model.form import model_form
from flask.ext.admin.actions import action from flask.ext.admin.actions import action
from flask.ext.admin.contrib.sqlamodel import form, filters, tools from flask.ext.admin.contrib.sqlamodel import form, filters, tools
...@@ -371,13 +370,11 @@ class ModelView(BaseModelView): ...@@ -371,13 +370,11 @@ class ModelView(BaseModelView):
""" """
Create form from the model. Create form from the model.
""" """
form_fields = form.model_fields( converter = form.AdminModelConverter(self)
self.model, return converter.get_form(self.model,
form.AdminModelConverter(self),
only=self.form_columns, only=self.form_columns,
exclude=self.excluded_form_columns, exclude=self.excluded_form_columns,
field_args=self.form_args) field_args=self.form_args)
return model_form(self.model, form_fields)
def scaffold_auto_joins(self): def scaffold_auto_joins(self):
""" """
......
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