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