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