def setup_app(app): """Register all administration views with the Flask application.""" app.config.setdefault("ADMIN_NAME", "Invenio") app.config.setdefault("ADMIN_UI_SKIN", "skin-blue") # Initialize app admin = Admin( name=app.config['ADMIN_NAME'], index_view=AdminIndexView( menu_icon_type='fa', menu_icon_value='fa-home'), base_template="admin_base.html", template_mode='bootstrap3' ) # TODO remove when 1.2.1 is released if not hasattr(admin, 'category_icon_classes'): admin.category_icon_classes = {} admin.init_app(app) # Create registry and run discovery app.extensions['registry']['admin'] = AdminDiscoveryRegistry( 'admin', app=app, with_setup=True, admin=admin )
def setup_app(app): """Register all administration views with the Flask application.""" app.config.setdefault("ADMIN_NAME", "Invenio") app.config.setdefault("ADMIN_UI_SKIN", "skin-blue") # Initialize app admin = Admin(name=app.config['ADMIN_NAME'], index_view=AdminIndexView(menu_icon_type='fa', menu_icon_value='fa-home'), base_template="admin_base.html", template_mode='bootstrap3') # TODO remove when 1.2.1 is released if not hasattr(admin, 'category_icon_classes'): admin.category_icon_classes = {} admin.init_app(app) # Create registry and run discovery app.extensions['registry']['admin'] = AdminDiscoveryRegistry( 'admin', app=app, with_setup=True, admin=admin)
def init(app): ''' 初始化 :param app:flask app :return: ''' global admin admin = Admin( app, name="云谷机器人控制台", index_view=CVAdminIndexView(name='仪表板', menu_icon_type='fa', menu_icon_value='dashboard'), # base_template = 'admin/layout.html', template_mode='bootstrap2') # Flask views @app.route('/') def index(): return render_template("admin/redirect.html") # bower_components @app.route('/bower_components/<path:path>') def send_bower(path): return send_from_directory( os.path.join(app.root_path, 'bower_components'), path) @app.route('/dist/<path:path>') def send_dist(path): return send_from_directory(os.path.join(app.root_path, 'dist'), path) @app.route('/js/<path:path>') def send_js(path): return send_from_directory(os.path.join(app.root_path, 'js'), path) @app.errorhandler(401) def unauthenticated(e): return render_template('401.html'), 401 @app.errorhandler(403) def forbidden(e): return render_template('403.html'), 403 @app.errorhandler(404) def page_not_found(e): return render_template('404.html'), 404 # category设置图标 admin.category_icon_classes = { '消息管理': 'fa fa-comments-o', '报点管理': 'fa fa-gift', '积分管理': 'fa fa-money', '统计分析': 'fa fa-bar-chart-o', '机器人设置': 'fa fa-reddit', '系统设置': 'fa fa-cogs' } from plugin import hub views = {} models = {} # 从插件中加载已注册的模型类和视图类 for (hub_k, hub_v) in hub.registry_map.items(): for (model_k, model_v) in hub_v.model_map.items(): models[model_k] = model_v for (view_k, view_v) in hub_v.view_map.items(): views[view_k] = view_v # 按注册的排序顺序创建数据模型视图 models_list = [models[k] for k in sorted(models.keys())] for model in models_list: model_class = model view_class = views[model.__name__ + 'View'] # 不对Fields missing问题提示警告 with warnings.catch_warnings(): warnings.filterwarnings('ignore', 'Fields missing from ruleset', UserWarning) admin.add_view(view_class(model_class, db_control.get_db().session)) # 创建文件视图 admin.add_view( CVAdminFileView(get_db_dir(), '', name='数据库文件', category='系统设置'))