Пример #1
0
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
    )
Пример #2
0
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)
Пример #3
0
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='系统设置'))