Provides simple but efficient admin UI.
Python CSS HTML Makefile
Latest commit 40e13e8 Apr 19, 2015 @jeanphix Merge pull request #4 from philipmat/patch-1
Making it work with Flask >= 0.10 (Issue #3)
Permalink
Failed to load latest commit information.
docs Removes docs Jun 26, 2012
examples Replaced odict by werkzeug.OrderedMultiDict Dec 2, 2011
flask_dashed Making it work with Flask >= 0.10 (Issue #3) Oct 3, 2013
tests Fixes a flask-testing import Sep 22, 2012
.gitignore Fixes .gitignore that now excludes .env Sep 22, 2012
.gitmodules Adds nib as a submodule Sep 22, 2012
.travis.yml Updates .travis.yml that now uses make to run test suite Sep 22, 2012
MANIFEST.in Fixes MANIFEST.in Sep 22, 2012
Makefile Adds a styles directive to Makefile Sep 22, 2012
README Added README Oct 21, 2011
README.rst Fixes travis build status Jun 26, 2012
setup.cfg added AdminTest Sep 14, 2011
setup.py

README.rst

Introduction

https://secure.travis-ci.org/jeanphix/Flask-Dashed.png

Flask-Dashed provides tools for build simple and extensible admin interfaces.

Online demonstration: http://flask-dashed.jeanphi.fr/ (Github account required).

List view:

https://github.com/jeanphix/Flask-Dashed/raw/dev/docs/_static/screen.png

Form view:

https://github.com/jeanphix/Flask-Dashed/raw/dev/docs/_static/screen-edit.png

Installation

pip install Flask-Dashed

Minimal usage

Code:

from flask import Flask
from flask_dashed.admin import Admin

app = Flask(__name__)
admin = Admin(app)

if __name__ == '__main__':
    app.run()

Sample application: http://github.com/jeanphix/flask-dashed-demo

Deal with security

Securing all module endpoints:

from flask import session

book_module = admin.register_module(BookModule, '/books', 'books',
    'book management')

@book_module.secure(http_code=401)
def login_required():
    return "user" in session

Securing specific module endpoint:

@book_module.secure_endpoint('edit', http_code=403)
def check_edit_credential(view):
    # I'm now signed in, may I modify the ressource?
    return session.user.can_edit_book(view.object)

Organize modules

As admin nodes are registered into a "tree" it's quite easy to organize them.:

library = admin.register_node('/library', 'library', my library)
book_module = admin.register_module(BookModule, '/books', 'books',
    'book management', parent=library)

Navigation and breadcrumbs are automatically builds to feet your needs. Child module security will be inherited from parent one.

SQLALchemy extension

Code:

from flask_dashed.ext.sqlalchemy import ModelAdminModule


class BookModule(ModelAdminModule):
    model = Book
    db_session = db.session

book_module = admin.register_module(BookModule, '/books', 'books',
    'book management')