Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
flask-admin
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Python-Dev
flask-admin
Commits
0f9f4b86
Commit
0f9f4b86
authored
Jan 18, 2016
by
Paul Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1177 from fantix/master
Fix so that auto-created inline model form has the right base class
parents
7482423b
888e5247
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
58 additions
and
0 deletions
+58
-0
form.py
flask_admin/contrib/sqla/form.py
+1
-0
test_inlineform.py
flask_admin/tests/sqla/test_inlineform.py
+57
-0
No files found.
flask_admin/contrib/sqla/form.py
View file @
0f9f4b86
...
@@ -601,6 +601,7 @@ class InlineModelConverter(InlineModelConverterBase):
...
@@ -601,6 +601,7 @@ class InlineModelConverter(InlineModelConverterBase):
if
child_form
is
None
:
if
child_form
is
None
:
child_form
=
get_form
(
info
.
model
,
child_form
=
get_form
(
info
.
model
,
converter
,
converter
,
base_class
=
info
.
form_base_class
or
form
.
BaseForm
,
only
=
info
.
form_columns
,
only
=
info
.
form_columns
,
exclude
=
exclude
,
exclude
=
exclude
,
field_args
=
info
.
form_args
,
field_args
=
info
.
form_args
,
...
...
flask_admin/tests/sqla/test_inlineform.py
View file @
0f9f4b86
...
@@ -3,6 +3,7 @@ from nose.tools import eq_, ok_, raises
...
@@ -3,6 +3,7 @@ from nose.tools import eq_, ok_, raises
from
wtforms
import
fields
from
wtforms
import
fields
from
flask_admin
import
form
from
flask_admin.contrib.sqla
import
ModelView
from
flask_admin.contrib.sqla
import
ModelView
from
flask_admin.contrib.sqla.fields
import
InlineModelFormList
from
flask_admin.contrib.sqla.fields
import
InlineModelFormList
from
flask_admin.contrib.sqla.validators
import
ItemsRequired
from
flask_admin.contrib.sqla.validators
import
ItemsRequired
...
@@ -219,3 +220,59 @@ def test_inline_form_self():
...
@@ -219,3 +220,59 @@ def test_inline_form_self():
child
=
Tree
(
parent
=
parent
)
child
=
Tree
(
parent
=
parent
)
form
=
view
.
edit_form
(
child
)
form
=
view
.
edit_form
(
child
)
eq_
(
form
.
parent
.
data
,
parent
)
eq_
(
form
.
parent
.
data
,
parent
)
def
test_inline_form_base_class
():
app
,
db
,
admin
=
setup
()
client
=
app
.
test_client
()
# Set up models and database
class
User
(
db
.
Model
):
__tablename__
=
'users'
id
=
db
.
Column
(
db
.
Integer
,
primary_key
=
True
)
name
=
db
.
Column
(
db
.
String
,
unique
=
True
)
def
__init__
(
self
,
name
=
None
):
self
.
name
=
name
class
UserEmail
(
db
.
Model
):
__tablename__
=
'user_info'
id
=
db
.
Column
(
db
.
Integer
,
primary_key
=
True
)
email
=
db
.
Column
(
db
.
String
,
nullable
=
False
,
unique
=
True
)
verified_at
=
db
.
Column
(
db
.
DateTime
)
user_id
=
db
.
Column
(
db
.
Integer
,
db
.
ForeignKey
(
User
.
id
))
user
=
db
.
relationship
(
User
,
backref
=
db
.
backref
(
'emails'
,
cascade
=
"all, delete-orphan"
,
single_parent
=
True
))
db
.
create_all
()
# Customize error message
class
StubTranslation
(
object
):
def
gettext
(
self
,
*
args
):
return
'success!'
def
ngettext
(
self
,
*
args
):
return
'success!'
class
StubBaseForm
(
form
.
BaseForm
):
def
_get_translations
(
self
):
return
StubTranslation
()
# Set up Admin
class
UserModelView
(
ModelView
):
inline_models
=
((
UserEmail
,{
"form_base_class"
:
StubBaseForm
}),)
form_args
=
{
"emails"
:
{
"validators"
:
[
ItemsRequired
()]}
}
view
=
UserModelView
(
User
,
db
.
session
)
admin
.
add_view
(
view
)
# Create
data
=
{
'name'
:
'emptyEmail'
,
'emails-0-email'
:
''
,
}
rv
=
client
.
post
(
'/admin/user/new/'
,
data
=
data
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
User
.
query
.
count
(),
0
)
ok_
(
b
'success!'
in
rv
.
data
,
rv
.
data
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment