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']) api = RestAPI(app, default_auth=user_auth)
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)