Skip to content

Instantly share code, notes, and snippets.

@pawl
Created November 30, 2014 06:02
Show Gist options
  • Save pawl/dfbc5f3e5e9e093974d3 to your computer and use it in GitHub Desktop.
Save pawl/dfbc5f3e5e9e093974d3 to your computer and use it in GitHub Desktop.
Testing new flask-admin filters for mongoengine
from datetime import date, datetime, time
from flask import Flask, request
from flask.ext.mongoengine import MongoEngine
from flask.ext.admin.contrib.mongoengine import ModelView
from flask.ext.admin import expose, Admin
app = Flask(__name__)
app.config['DATABASE_FILE'] = 'sample_db.sqlite'
app.config['SECRET_KEY'] = 'secret'
app.config['MONGODB_SETTINGS'] = {'DB': 'testing'}
# Create models
db = MongoEngine()
db.init_app(app)
class Model1(db.Document):
test1 = db.StringField(max_length=20)
test2 = db.StringField(max_length=20)
test3 = db.StringField()
test4 = db.StringField()
datetime_field = db.DateTimeField()
int_field = db.IntField()
bool_field = db.BooleanField()
def __str__(self):
return self.test1
class ModelAdmin(ModelView):
can_edit = False
can_delete = False
can_create = False
column_filters = ['datetime_field', 'test1', 'test2', 'test3', 'test4', 'bool_field', 'int_field']
admin = Admin(app, template_mode="bootstrap3")
admin.add_view(ModelAdmin(Model1))
def build_sample_db():
Model1('model_bool', bool_field=True).save()
Model1('model1_obj2',).save()
Model1('model1_obj3', test2=u"blah").save()
Model1('model1_obj4', test3="blah").save()
Model1('model1_obj5', test4=u"blah").save()
Model1('datetime_obj1', datetime_field=datetime(2014,4,3,1,9,0)).save()
Model1('int_obj1', int_field=5000).save()
Model1('int_obj2', int_field=9000).save()
if __name__ == '__main__':
build_sample_db()
app.run(host="0.0.0.0", port=5001)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment