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

Peewee fixes

parent f4ae25c7
......@@ -3,11 +3,6 @@ from wtforms.fields import FormField
class ModelFormField(FormField):
def __init__(self, model, *args, **kwargs):
# Small hack to get rid of separator if name is empty
name = kwargs.get('name')
if not name:
kwargs['separator'] = ''
super(ModelFormField, self).__init__(*args, **kwargs)
self.model = model
......
......@@ -7,15 +7,12 @@ from wtfpeewee.orm import ModelConverter, model_form
from flask.ext.admin import form
from flask.ext.admin.model.form import InlineFormAdmin, InlineModelConverterBase
from flask.ext.admin.model.fields import InlineModelFormField
from flask.ext.admin.model.widgets import InlineFormListWidget
from flask.ext.admin.model.fields import InlineModelFormField, InlineFieldList
from .tools import get_primary_key
class InlineModelFormList(fields.FieldList):
widget = InlineFormListWidget()
class InlineModelFormList(InlineFieldList):
def __init__(self, form, model, prop, **kwargs):
self.form = form
self.model = model
......@@ -25,8 +22,8 @@ class InlineModelFormList(fields.FieldList):
super(InlineModelFormList, self).__init__(InlineModelFormField(form, self._pk), **kwargs)
def __call__(self, **kwargs):
return self.widget(self, template=self.form(), **kwargs)
def display_row_controls(self, field):
return field.get_pk() is not None
def process(self, formdata, data=None):
if not formdata:
......@@ -55,7 +52,7 @@ class InlineModelFormList(fields.FieldList):
if field_id in pk_map:
model = pk_map[field_id]
if field.should_delete():
if self.should_delete(field):
model.delete_instance(recursive=True)
continue
else:
......
......@@ -13,6 +13,11 @@ class InlineFieldList(FieldList):
# Create template
self.template = self.unbound_field.bind(form=None, name='')
# Small hack to remove separator from FormField
if isinstance(self.template, FormField):
self.template.separator = ''
self.template.process(None)
def __call__(self, **kwargs):
......
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