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
83f66df4
Commit
83f66df4
authored
Mar 26, 2012
by
Serge S. Koval
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
'Add another' button added.
parent
cadf5bc9
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
43 additions
and
13 deletions
+43
-13
TODO.txt
TODO.txt
+0
-2
model.py
flask_adminex/model.py
+16
-7
lib.html
flask_adminex/templates/admin/lib.html
+4
-1
create.html
flask_adminex/templates/admin/model/create.html
+20
-0
list.html
flask_adminex/templates/admin/model/list.html
+3
-3
No files found.
TODO.txt
View file @
83f66df4
...
@@ -15,8 +15,6 @@
...
@@ -15,8 +15,6 @@
- Custom CSS/JS in admin interface
- Custom CSS/JS in admin interface
- SQLA Model Admin
- SQLA Model Admin
- Built-in filtering support
- Built-in filtering support
- Built-in search support
- Support for related models
- Many2Many support
- Many2Many support
- Verify if it is working properly
- Verify if it is working properly
- WYSIWYG editor support?
- WYSIWYG editor support?
...
...
flask_adminex/model.py
View file @
83f66df4
from
flask
import
request
,
url_for
,
redirect
from
flask
import
request
,
url_for
,
redirect
,
flash
from
.base
import
BaseView
,
expose
from
.base
import
BaseView
,
expose
...
@@ -37,7 +37,7 @@ class BaseModelView(BaseView):
...
@@ -37,7 +37,7 @@ class BaseModelView(BaseView):
edit_template
=
'admin/model/edit.html'
edit_template
=
'admin/model/edit.html'
"""Default edit template"""
"""Default edit template"""
create_template
=
'admin/model/
edit
.html'
create_template
=
'admin/model/
create
.html'
"""Default create template"""
"""Default create template"""
# Customizations
# Customizations
...
@@ -419,6 +419,9 @@ class BaseModelView(BaseView):
...
@@ -419,6 +419,9 @@ class BaseModelView(BaseView):
if
not
search
:
if
not
search
:
search
=
None
search
=
None
if
not
page
:
page
=
None
return
url_for
(
view
,
return
url_for
(
view
,
page
=
page
,
page
=
page
,
sort
=
sort
,
sort
=
sort
,
...
@@ -501,7 +504,7 @@ class BaseModelView(BaseView):
...
@@ -501,7 +504,7 @@ class BaseModelView(BaseView):
"""
"""
Create model view
Create model view
"""
"""
return_url
=
request
.
args
.
get
(
'
return
'
)
return_url
=
request
.
args
.
get
(
'
url
'
)
if
not
self
.
can_create
:
if
not
self
.
can_create
:
return
redirect
(
return_url
or
url_for
(
'.index_view'
))
return
redirect
(
return_url
or
url_for
(
'.index_view'
))
...
@@ -510,16 +513,22 @@ class BaseModelView(BaseView):
...
@@ -510,16 +513,22 @@ class BaseModelView(BaseView):
if
form
.
validate_on_submit
():
if
form
.
validate_on_submit
():
if
self
.
create_model
(
form
):
if
self
.
create_model
(
form
):
return
redirect
(
return_url
or
url_for
(
'.index_view'
))
if
'_add_another'
in
request
.
form
:
flash
(
'Model was successfully created.'
)
return
redirect
(
url_for
(
'.create_view'
,
url
=
return_url
))
else
:
return
redirect
(
return_url
or
url_for
(
'.index_view'
))
return
self
.
render
(
self
.
create_template
,
form
=
form
)
return
self
.
render
(
self
.
create_template
,
form
=
form
,
return_url
=
return_url
)
@
expose
(
'/edit/<int:id>/'
,
methods
=
(
'GET'
,
'POST'
))
@
expose
(
'/edit/<int:id>/'
,
methods
=
(
'GET'
,
'POST'
))
def
edit_view
(
self
,
id
):
def
edit_view
(
self
,
id
):
"""
"""
Edit model view
Edit model view
"""
"""
return_url
=
request
.
args
.
get
(
'
return
'
)
return_url
=
request
.
args
.
get
(
'
url
'
)
if
not
self
.
can_edit
:
if
not
self
.
can_edit
:
return
redirect
(
return_url
or
url_for
(
'.index_view'
))
return
redirect
(
return_url
or
url_for
(
'.index_view'
))
...
@@ -544,7 +553,7 @@ class BaseModelView(BaseView):
...
@@ -544,7 +553,7 @@ class BaseModelView(BaseView):
"""
"""
Delete model view. Only POST method is allowed.
Delete model view. Only POST method is allowed.
"""
"""
return_url
=
request
.
args
.
get
(
'
return
'
)
return_url
=
request
.
args
.
get
(
'
url
'
)
# TODO: Use post
# TODO: Use post
if
not
self
.
can_delete
:
if
not
self
.
can_delete
:
...
...
flask_adminex/templates/admin/lib.html
View file @
83f66df4
...
@@ -73,7 +73,7 @@
...
@@ -73,7 +73,7 @@
{% endif %}
{% endif %}
{%- endmacro %}
{%- endmacro %}
{% macro render_form(form, cancel_url) -%}
{% macro render_form(form, cancel_url
, extra=None
) -%}
<form
action=
""
method=
"POST"
class=
"form-horizontal"
{%
if
form
.
has_file_field
%}
enctype=
"multipart/form-data"
{%
endif
%}
>
<form
action=
""
method=
"POST"
class=
"form-horizontal"
{%
if
form
.
has_file_field
%}
enctype=
"multipart/form-data"
{%
endif
%}
>
<fieldset>
<fieldset>
{{ form.hidden_tag() }}
{{ form.hidden_tag() }}
...
@@ -103,6 +103,9 @@
...
@@ -103,6 +103,9 @@
<div
class=
"control-group"
>
<div
class=
"control-group"
>
<div
class=
"controls"
>
<div
class=
"controls"
>
<input
type=
"submit"
class=
"btn btn-primary btn-large"
/>
<input
type=
"submit"
class=
"btn btn-primary btn-large"
/>
{% if extra %}
{{ extra }}
{% endif %}
{% if cancel_url %}
{% if cancel_url %}
<a
href=
"{{ cancel_url }}"
class=
"btn btn-large"
>
Cancel
</a>
<a
href=
"{{ cancel_url }}"
class=
"btn btn-large"
>
Cancel
</a>
{% endif %}
{% endif %}
...
...
flask_adminex/templates/admin/model/create.html
0 → 100644
View file @
83f66df4
{% extends 'admin/master.html' %}
{% import 'admin/lib.html' as lib %}
{% block head %}
<link
href=
"{{ url_for('admin.static', filename='chosen/chosen.css') }}"
rel=
"stylesheet"
>
<link
href=
"{{ url_for('admin.static', filename='css/datepicker.css') }}"
rel=
"stylesheet"
>
{% endblock %}
{% block body %}
{% macro extra() %}
<input
name=
"_add_another"
type=
"submit"
class=
"btn btn-primary btn-large"
value=
"Save and Add"
/>
{% endmacro %}
{{ lib.render_form(form, return_url, extra()) }}
{% endblock %}
{% block tail %}
<script
src=
"{{ url_for('admin.static', filename='js/bootstrap-datepicker.js') }}"
></script>
<script
src=
"{{ url_for('admin.static', filename='js/form.js') }}"
></script>
{% endblock %}
flask_adminex/templates/admin/model/list.html
View file @
83f66df4
...
@@ -52,12 +52,12 @@
...
@@ -52,12 +52,12 @@
<tr>
<tr>
<td>
<td>
{%- if admin_view.can_edit -%}
{%- if admin_view.can_edit -%}
<a
class=
"icon"
href=
"{{ url_for('.edit_view', id=row.id,
return
=return_url) }}"
>
<a
class=
"icon"
href=
"{{ url_for('.edit_view', id=row.id,
url
=return_url) }}"
>
<i
class=
"icon-pencil"
></i>
<i
class=
"icon-pencil"
></i>
</a>
</a>
{%- endif -%}
{%- endif -%}
{%- if admin_view.can_delete -%}
{%- if admin_view.can_delete -%}
<form
class=
"icon"
method=
"POST"
action=
"{{ url_for('.delete_view', id=row.id,
return
=return_url) }}"
>
<form
class=
"icon"
method=
"POST"
action=
"{{ url_for('.delete_view', id=row.id,
url
=return_url) }}"
>
<button
onclick=
"return confirm('You sure you want to delete this item?')"
>
<button
onclick=
"return confirm('You sure you want to delete this item?')"
>
<i
class=
"icon-remove"
></i>
<i
class=
"icon-remove"
></i>
</button>
</button>
...
@@ -72,6 +72,6 @@
...
@@ -72,6 +72,6 @@
</table>
</table>
{{ lib.pager(page, num_pages, pager_url) }}
{{ lib.pager(page, num_pages, pager_url) }}
{% if admin_view.can_create %}
{% if admin_view.can_create %}
<a
class=
"btn btn-primary btn-large"
href=
"{{ url_for('.create_view',
return
=return_url) }}"
>
Create New
</a>
<a
class=
"btn btn-primary btn-large"
href=
"{{ url_for('.create_view',
url
=return_url) }}"
>
Create New
</a>
{% endif %}
{% endif %}
{% endblock %}
{% endblock %}
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