diff --git a/README.rst b/README.rst index bb0304c94..b3194b7a4 100644 --- a/README.rst +++ b/README.rst @@ -2,7 +2,7 @@ Flask-Admin =========== .. image:: https://travis-ci.org/mrjoes/flask-admin.png?branch=master - :target: https://secure.travis-ci.org/mrjoes/flask-admin + :target: https://travis-ci.org/mrjoes/flask-admin Introduction @@ -35,4 +35,4 @@ Some ideas were taken from the `Flask-Admin ` \ No newline at end of file diff --git a/examples/file/README.rst b/examples/file/README.rst new file mode 100644 index 000000000..b98192e34 --- /dev/null +++ b/examples/file/README.rst @@ -0,0 +1 @@ +Simple file management interface example. \ No newline at end of file diff --git a/examples/menu-external-links/README.rst b/examples/menu-external-links/README.rst new file mode 100644 index 000000000..c72812c04 --- /dev/null +++ b/examples/menu-external-links/README.rst @@ -0,0 +1 @@ +External menu links example. \ No newline at end of file diff --git a/examples/methodview/README.rst b/examples/methodview/README.rst new file mode 100644 index 000000000..6c6fdee0f --- /dev/null +++ b/examples/methodview/README.rst @@ -0,0 +1 @@ +Example which shows how to integrate Flask `MethodView` with Flask-Admin. \ No newline at end of file diff --git a/examples/methodview/methodview.py b/examples/methodview/methodview.py index 848777333..68625e665 100644 --- a/examples/methodview/methodview.py +++ b/examples/methodview/methodview.py @@ -1,4 +1,4 @@ -from flask import Flask, redirect, render_template, request +from flask import Flask, redirect, request from flask.ext import admin from flask.views import MethodView @@ -13,6 +13,7 @@ def index(self): class API_v1(MethodView): def get(self, cls): return cls.render('test.html', request=request, name="API_v1") + def post(self, cls): return cls.render('test.html', request=request, name="API_v1") @@ -20,9 +21,11 @@ def post(self, cls): class API_v2(MethodView): def get(self, cls): return cls.render('test.html', request=request, name="API_v2") + def post(self, cls): return cls.render('test.html', request=request, name="API_v2") + # Create flask app app = Flask(__name__, template_folder='templates') diff --git a/examples/mongoengine/README.rst b/examples/mongoengine/README.rst new file mode 100644 index 000000000..285bd74e6 --- /dev/null +++ b/examples/mongoengine/README.rst @@ -0,0 +1 @@ +MongoEngine model backend integration. \ No newline at end of file diff --git a/examples/mongoengine/simple.py b/examples/mongoengine/simple.py index e548ee5da..e6a06875b 100644 --- a/examples/mongoengine/simple.py +++ b/examples/mongoengine/simple.py @@ -18,6 +18,7 @@ db.init_app(app) +# Define mongoengine documents class User(db.Document): name = db.StringField(max_length=40) tags = db.ListField(db.ReferenceField('Tag')) diff --git a/examples/multi/README.rst b/examples/multi/README.rst new file mode 100644 index 000000000..554d8b85c --- /dev/null +++ b/examples/multi/README.rst @@ -0,0 +1 @@ +This example shows how to create two separate instances of Flask-Admin for one Flask application. \ No newline at end of file diff --git a/examples/peewee/README.rst b/examples/peewee/README.rst new file mode 100644 index 000000000..04c525711 --- /dev/null +++ b/examples/peewee/README.rst @@ -0,0 +1 @@ +Peewee model backend integration example. \ No newline at end of file diff --git a/examples/pymongo/README.rst b/examples/pymongo/README.rst new file mode 100644 index 000000000..ac212a8af --- /dev/null +++ b/examples/pymongo/README.rst @@ -0,0 +1 @@ +PyMongo model backend integration example. \ No newline at end of file diff --git a/examples/quickstart/README.rst b/examples/quickstart/README.rst new file mode 100644 index 000000000..88a56ec89 --- /dev/null +++ b/examples/quickstart/README.rst @@ -0,0 +1 @@ +Simple Flask-Admin examples used by the quickstart tutorial. \ No newline at end of file diff --git a/examples/sqla/README.rst b/examples/sqla/README.rst new file mode 100644 index 000000000..176bb3c2d --- /dev/null +++ b/examples/sqla/README.rst @@ -0,0 +1 @@ +SQLAlchemy model backend integration example. \ No newline at end of file diff --git a/examples/wysiwyg/README.rst b/examples/wysiwyg/README.rst new file mode 100644 index 000000000..c78a5bd59 --- /dev/null +++ b/examples/wysiwyg/README.rst @@ -0,0 +1 @@ +Simple CKEditor integration example. \ No newline at end of file diff --git a/examples/wysiwyg/simple.py b/examples/wysiwyg/simple.py new file mode 100644 index 000000000..366a14c42 --- /dev/null +++ b/examples/wysiwyg/simple.py @@ -0,0 +1,71 @@ +import datetime + +from sqlalchemy.ext.hybrid import hybrid_property + +from flask import Flask +from flask.ext.sqlalchemy import SQLAlchemy + +from flask.ext import admin, wtf +from flask.ext.admin.contrib import sqlamodel +from flask.ext.admin.contrib.sqlamodel import filters + +# Create application +app = Flask(__name__) + +# Create dummy secrey key so we can use sessions +app.config['SECRET_KEY'] = '123456790' + +# Create in-memory database +app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///dummy.sqlite' +app.config['SQLALCHEMY_ECHO'] = True +db = SQLAlchemy(app) + + +# Define wtforms widget and field +class CKTextAreaWidget(wtf.TextArea): + def __call__(self, field, **kwargs): + kwargs.setdefault('class_', 'ckeditor') + return super(CKTextAreaWidget, self).__call__(field, **kwargs) + + +class CKTextAreaField(wtf.TextAreaField): + widget = CKTextAreaWidget() + + +# Model +class Page(db.Model): + id = db.Column(db.Integer, primary_key=True) + name = db.Column(db.Unicode(64)) + text = db.Column(db.UnicodeText) + + def __unicode__(self): + return self.name + + +# Customized admin interface +class PageAdmin(sqlamodel.ModelView): + form_overrides = dict(text=CKTextAreaField) + + create_template = 'create.html' + edit_template = 'edit.html' + + +# Flask views +@app.route('/') +def index(): + return 'Click me to get to Admin!' + + +if __name__ == '__main__': + # Create admin + admin = admin.Admin(app) + + # Add views + admin.add_view(PageAdmin(Page, db.session)) + + # Create DB + db.create_all() + + # Start app + app.debug = True + app.run('0.0.0.0', 8000) diff --git a/examples/wysiwyg/templates/create.html b/examples/wysiwyg/templates/create.html new file mode 100644 index 000000000..3e46ec36f --- /dev/null +++ b/examples/wysiwyg/templates/create.html @@ -0,0 +1,6 @@ +{% extends 'admin/model/create.html' %} + +{% block tail %} + {{ super() }} + +{% endblock %} diff --git a/examples/wysiwyg/templates/edit.html b/examples/wysiwyg/templates/edit.html new file mode 100644 index 000000000..3e46ec36f --- /dev/null +++ b/examples/wysiwyg/templates/edit.html @@ -0,0 +1,6 @@ +{% extends 'admin/model/create.html' %} + +{% block tail %} + {{ super() }} + +{% endblock %}