columns = ('message', 'created',) class Person(db.Model): name = CharField(max_length=50) surname = CharField(max_length=50) created = DateTimeField(default=datetime.datetime.now) class PersonAdmin(ModelAdmin): columns = ('name','surname','created',) auth = Auth(app, db) admin = Admin(app, auth) admin.register(Note, NoteAdmin) admin.register(Person, PersonAdmin) admin.setup() api = RestAPI(app) api.register(Note) api.setup() if __name__ == '__main__': auth.User.create_table(fail_silently=True) Note.create_table(fail_silently=True) Person.create_table(fail_silently=True) app.run()
} auth = Auth(app, db, user_model=User) admin = Admin(app, auth) class MessageAdmin(ModelAdmin): columns = ('user', 'content', 'pub_date',) class NoteAdmin(ModelAdmin): columns = ('user', 'message', 'created_date',) auth.register_admin(admin) admin.register(Message, MessageAdmin) admin.register(Note, NoteAdmin) admin.register_panel('Notes', NotePanel) class UserResource(RestResource): exclude = ('password', 'email',) def get_query(self): return User.filter(active=True) # rest api stuff user_auth = UserAuthentication(auth) admin_auth = AdminAuthentication(auth) api_key_auth = APIKeyAuthentication(APIKey, ['GET', 'POST', 'PUT', 'DELETE'])
class UserStatsPanel(AdminPanel): template_name = 'admin/user_stats.html' def get_context(self): last_week = datetime.datetime.now() - datetime.timedelta(days=7) signups_this_week = User.filter(join_date__gt=last_week).count() messages_this_week = Message.filter(pub_date__gt=last_week).count() return { 'signups': signups_this_week, 'messages': messages_this_week, } admin = Admin(app, auth) class MessageAdmin(ModelAdmin): columns = ('user', 'content', 'pub_date',) class NoteAdmin(ModelAdmin): columns = ('user', 'message', 'created_date',) auth.register_admin(admin) admin.register(Relationship) admin.register(Message, MessageAdmin) admin.register(Note, NoteAdmin) admin.register_panel('Notes', NotePanel) admin.register_panel('User stats', UserStatsPanel)