Example #1
0
def create_app(config_name):
    # __name__ 决定应用根目录
    # app = Flask(__name__, static_url_path='', static_folder='')
    app = Flask(__name__)
    # 实例化flask_admin
    # 初始化app配置
    app.config.from_object(config[config_name])
    config[config_name].init_app(app)
    # 扩展应用初始化
    bootstrap.init_app(app)
    mail.init_app(app)
    moment.init_app(app)
    db.init_app(app)
    login_manager.init_app(app)
    configure_uploads(app, excels)
    flask_admin.init_app(app)
    flask_admin.add_view(MyBaseView(name='报表主页', endpoint='index'))
    flask_admin.add_view(MyUserView(User, db.session, name='用户管理'))
    flask_admin.add_view(MyBaobiaoView(BaobiaoToSet, db.session, name='报表名管理'))
    flask_admin.add_view(FileAdmin(staticfilepath, name='报表模板与生成文件管理'))

    # 注册蓝本
    from .main import _main as main_blueprint
    app.register_blueprint(main_blueprint, url_prefix='/main')
    from .auth import _auth as auth_blueprint
    app.register_blueprint(auth_blueprint, url_prefix='/auth')
    from .api import _api as api_blueprint
    app.register_blueprint(api_blueprint, url_prefix='/api')
    from .baobiao import _baobiao as baobiao_blueprint
    app.register_blueprint(baobiao_blueprint, url_prefix='/baobiao')
    from .analyzingreport import _analyzingreport as analyzingreport_blueprint
    app.register_blueprint(analyzingreport_blueprint,
                           url_prefix='/analyzingreport')

    return app
Example #2
0
 def action_delete(self, items):
     """Delete one or more Survey Files stored on server
     
     Called when the user selects the delete icon next to a file in the
     admin console or when the user selects multiple files and selects
     the ``delete`` option within the ``With selected`` menu.
     
     Args:
         items (str or list[str]): Contains either a filename, or a list of
             filenames, to be deleted.
     
     Returns:
         If no conflicts are found with SurveyCommander sessions and no
         missing files are detected among ``items``, then this function
         returns the result of 
         :func:`~flask.ext.admin.contrib.fileadmin.FileAdmin.action_delete`
         with ``items`` passed to said function.
     
         Otherwise this function returns nothing, **like your soul**.
     """
     try:
         self.delete_assoc_model(items)
     except:
         db.session.rollback()
         raise
     else:            
         return FileAdmin.action_delete(self, items)
Example #3
0
 def init_app(self, app):
     super(MyAdmin, self).init_app(app)
     models_dir = app.config.get('MODELS_DIR', 'models')
     admin.add_view(ModelView(OutcomeType, db.session))
     admin.add_view(ModelView(Sport, db.session))
     path = op.join(op.dirname(__file__), models_dir)
     admin.add_view(FileAdmin(path, '/models/', name='Models'))
Example #4
0
def CreateAdminView(admin):
    path = op.join(op.dirname(__file__), u'../static')
    admin.add_view(FileAdmin(path, u'/static', name='文件管理'))
    admin.add_view(BannerView(db.session, name=u'轮播图'))
    admin.add_view(MyView(db.session, name=u'用户管理'))
    admin.add_view(ProductView(db.session, name=u'商品管理'))
    admin.add_view(CategoryView(db.session, name=u'商品分类'))
    admin.add_view(UserAddressView(db.session, name=u'地址管理'))
Example #5
0
 def init_Admin():
     app = getAppMgr().get('flaskApp')
     db = getAppMgr().get('sqlAlchemyDB').getDB()
     admin = Admin(app, template_mode='bootstrap3')
     admin.add_view(MyView('my view'))
     admin.add_view(UserView(getAppMgr().get('User'), db.session))
     path = op.join(op.dirname(__file__), 'static')
     admin.add_view(FileAdmin(path, '/static/', name='Static Files'))
     getAppMgr().insert('admin', admin)
Example #6
0
def create_admin_views() -> None:
    """ Created all admin panel views """

    admin.add_view(AnalyticsView(name='Analytics', endpoint='analytics'))
    admin.add_view(AdminUserView(User, db.session, name='Users'))
    admin.add_view(AdminUserView(Book, db.session, name='Books'))
    admin.add_view(
        AdminUserView(BookInstance, db.session, name='BookInstances'))
    path = op.join(op.dirname(__file__), 'static')  # manage files
    admin.add_view(FileAdmin(path, '/static/', name='Files'))
Example #7
0
def init():
    models = sorted(MODELS.keys())
    for model_name in models:
        model = MODELS[model_name]
        logger.debug('add model %s view %s', model_name, model)
        admin.add_view(BaseModelView(model, database.SCOPED_SESSION()))
    admin.add_view(
        FileAdmin(base_model_type_builder.CONF.model_dir,
                  '/static/',
                  name='Model Files'))
 def add_admin_view(self):
     print(self.globalspath)
     self.admin.add_view(FileAdmin(self.globalspath, '', name='后台文件管理'))
     self.admin.add_view(MyView(name='返回主页', endpoint=''))
     self.admin.add_view(ModelView(User, self.db.session))
     self.admin.add_view(ModelView(Service, self.db.session))
     self.admin.add_view(ModelView(api_manager, self.db.session))
     self.admin.add_view(ModelView(test_case, self.db.session))
     self.admin.add_view(ModelView(test_report, self.db.session))
     self.admin.add_view(ModelView(task_schedul, self.db.session))
Example #9
0
    def get_base_path(self):
        path = FileAdmin.get_base_path(self)

        if not login.current_user.is_anonymous:
            path = os.path.join(path, login.current_user.login)
            try:
                os.mkdir(path)
            except OSError:
                pass
            return path
        else:
            return path
Example #10
0
def create_app(config_name):
    app = Flask(__name__)  #实例化主模块
    app.config.from_object(config[config_name])  #配置
    config[config_name].init_app(app)  #Config的初始化
    #Flask扩展自带的初始化
    bootstrap.init_app(app)
    mail.init_app(app)
    moment.init_app(app)
    db.init_app(app)
    login_manager.init_app(app)
    #login_manager_admin.init_app(app)
    admin.init_app(app)
    ckeditor.init_app(app)
    babel.init_app(app)
    # 上传的初始化
    configure_uploads(app, photos)
    ## 配置上传文件大小,默认64M,设置None则会采用config中MAX_CONTENT_LENGTH配置选项
    patch_request_class(app, size=None)

    #flask-admin本地化 中文
    @babel.localeselector
    def get_locale():
        override = 'zh_Hans_CN'
        if override:
            session['lang'] = override
        return session.get('lang', 'en')

    # 附加路由和自定义的错误页面
    from .main import main as main_blueprint  #.main---当前main文件夹   main---在__init__.py中的蓝本实例
    app.register_blueprint(main_blueprint)  #注册main蓝本

    from .auth import auth as auth_blueprint
    #url_prefix可选参数。注册后蓝本中定义的所有路由都会加上指定的前缀/auth
    #/login 路由会注册成 /auth/login,完整的URL---http://localhost:5000/auth/login
    app.register_blueprint(auth_blueprint, url_prefix='/auth')  #注册auth 蓝本

    from .AItencent import ai as ai_blueprint  # .main---当前main文件夹   main---在__init__.py中的蓝本实例
    app.register_blueprint(ai_blueprint, url_prefix='/ai')  # 注册main蓝本

    #增加导航栏栏目
    #admin.add_view(MyView(name= 'Hello 1'))
    from .models import User, Post, Follow
    admin.add_view(UserView(User, db.session, name='用户管理'))
    admin.add_view(PostView(Post, db.session, name='文章管理'))
    admin.add_view(FollowView(Follow, db.session, name='关注管理'))

    path = op.join(op.dirname(__file__), 'static')
    admin.add_view(FileAdmin(path, name='Static文件'))  #'/static/'是否包含  一样的效果
    #admin.add_view(FileAdmin(path, '/static/', name='Static Files'))

    return app
Example #11
0
def create_admin():
    app = current_app._get_current_object()
    admin = Admin(app, "AtomicPress", index_view=HomeView(name='Home'))

    admin.add_view(ModelView(models.Blog, db.session, category="Blog"))
    admin.add_view(ModelView(models.Author, db.session, category="Blog"))

    admin.add_view(PostView(models.Post, db.session, category="Post"))
    admin.add_view(ModelView(models.Tag, db.session, category="Post"))
    admin.add_view(ModelView(models.Category, db.session, category="Post"))

    admin.add_view(
        FileAdmin(app.config["UPLOADS_PATH"],
                  app.config["UPLOADS_URL"],
                  name='Upload files'))
Example #12
0
def create_admin(app=None):
    admin = Admin(app,
                  name="LRENZ",
                  index_view=MyIndexView(),
                  base_template='admin/my_master.html',
                  template_mode='bootstrap3')
    admin.add_view(UserView(User))
    admin.add_view(PostView(Post))
    admin.add_view(TodoView(Todo))
    admin.add_view(ModelView(Tag))
    admin.add_view(ModelView(Code))
    admin.add_view(FileView(File, category='File'))
    admin.add_view(ImageView(Image, category='File'))
    admin.add_view(ReviewsView(Review))
    admin.add_view(
        FileAdmin(path, '/files/', name='Static Files', category='File'))
Example #13
0
def create_app():
    admin = Admin(app, name='MyAdmin', index_view=AdminIndexView(template='home.html'), template_mode='bootstrap3')

    app.config['SECRET_KEY'] = '123456'
    app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://*****:*****@mysql:3306/myblog?charset=utf8mb4'

    admin.add_view(MyblogModel(Myblog_list, db.session))
    admin.add_view(ArticleCategoryModel(Article_class, db.session))
    admin.add_view(TopArticleModel(Top_list, db.session))
    admin.add_view(UsPramaModel(Us_prama, db.session))
    admin.add_view(MyblogReadModel(Myblog_read, db.session))
    admin.add_view(Login(name='test', endpoint='index'))

    path = op.join(op.dirname(__file__), 'static')
    path = "/static/"
    admin.add_view(FileAdmin(path, '/img', name='Static Files'))

    return app
Example #14
0
def create_app():
    #APP init
    app = Flask(__name__)
    app.config.from_object('config.DevelopmentConfig')
    #THEMES init
    Themes(app, app_identifier='app')
    #MAIL init
    from flask_mail import Mail
    mail = Mail(app)
    #DATABASE init
    from models import db
    db.init_app(app)
    #MIGRATIONS init
    migrate = Migrate(app, db)
    with app.app_context():
        #User init
        from flask_user import SQLAlchemyAdapter, UserManager
        from users import User
        db_adapter = SQLAlchemyAdapter(db, User)
        user_manager = UserManager(db_adapter, app)
        #db finalization
        db.create_all()
    #API - is for IOT, or mobile
    from models import DummyObject, DummyFile
    manager = flask_restless.APIManager(app, flask_sqlalchemy_db=db)
    manager.create_api(DummyObject)
    manager.create_api(DummyFile)
    #ADMIN - is for basic crud for trained users
    from admin import admin
    admin.init_app(app)
    #MEMBER VIEWS
    from member import MemberView
    MemberView.register(app)
    #upload example
    from flask_admin.contrib.fileadmin import FileAdmin
    path = os.path.join(os.path.dirname(__file__), app.config['UPLOAD_FOLDER'])
    admin.add_view(FileAdmin(path, '/uploads/', name='Uploads'))
    #sqlmodel example
    from flask_admin.contrib.sqla import ModelView
    admin.add_view(ModelView(DummyObject, db.session))
    #DASHBOARD - is for customer login pages
    #I'll have to make that custom
    return app, migrate
Example #15
0
def create_app():
    # create and configure the app
    app = Flask(__name__, instance_relative_config=True)
    app.config.from_object(config[os.getenv('FLASK_CONFIG')])
    config[os.getenv('FLASK_CONFIG')].init_app(app)
    # Role.insert_roles()

    app.permanent_session_lifetime = datetime.timedelta(seconds=60 * 30)
    from flaskprj.models import db
    db.init_app(app)

    babel.init_app(app)
    app.config['BABEL_DEFAULT_LOCALE'] = 'zh_CN'
    bootstrap.init_app(app)
    login_manager.init_app(app)

    try:
        if not app.instance_path:
            os.makedirs(app.instance_path)
    except OSError:
        pass

    from .main import main as main_blueprint
    app.register_blueprint(main_blueprint)

    from .auth import auth as auth_blueprint
    app.register_blueprint(auth_blueprint)
    app.add_url_rule('/', endpoint='index')

    # admin.init_app(app, index_view=BlogAdminIndexView())
    admin = Admin(app=app, name='Admin', index_view=BlogAdminIndexView())
    admin.add_view(
        BlogModelView(model=User, session=db.session, endpoint='Users'))
    admin.add_view(
        BlogModelView(model=Post, session=db.session, endpoint='Posts'))
    admin.add_view(
        BlogModelView(model=Tag, session=db.session, endpoint='Tags'))
    file_path = os.path.join(os.path.dirname(__file__), 'static/img')
    admin.add_view(FileAdmin(file_path, '/static/img/', name='图片文件'))

    return app
Example #16
0
def create_app():
    app = Flask(__name__)
    app.config.from_object('config.DevelopmentConfig')

    login_manager.init_app(app)

    from .admin import admin
    admin.add_view(FileAdmin(app.config['AUTOMATON_FILES_DIR'], name='Release xml files'))
    admin.init_app(app)

    db.init_app(app)
    with app.test_request_context():
        from app.auth.models import Users, Roles, Groups
        from app.releases.models import Release
        from app.testplans.models import TestPlan
        from app.testcases.models import TestCase
        db.create_all()
        Roles.default_roles(app, db)
        Groups.default_groups(app, db)
        Users.default_admin_user(app, db)

    import app.auth.controllers as auth
    import app.dashboard.controllers as dashboard
    import app.api.controllers as api
    import app.releases.controllers as releases
    import app.testplans.controllers as testplans
    import app.testcases.controllers as testcases
    import app.documentation.controllers as docs

    app.register_blueprint(auth.module)
    app.register_blueprint(dashboard.module)
    app.register_blueprint(api.module)
    app.register_blueprint(releases.module)
    app.register_blueprint(testcases.module)
    app.register_blueprint(testplans.module)
    app.register_blueprint(docs.module)

    return app
Example #17
0
def create_app(config_app=Config):
    app = Flask(__name__)
    app.config.from_object(config_app)

    db.init_app(app)
    migrate.init_app(app, db)
    bcrypt.init_app(app)
    login.init_app(app)
    login.login_view = 'user_bp.login'
    login.login_message_category = 'info'
    login.session_protection = "strong"

    from .models import User, Post, Post_API
    from app.forms import PostModelView, MyIndexView, UserAdminView, ModelView

    admin.init_app(app, index_view=MyIndexView())
    admin.add_view(UserAdminView(User, db.session))
    admin.add_view(PostModelView(Post, db.session))
    admin.add_view(ModelView(Post_API, db.session))
    admin.add_view(FileAdmin(app.config['STATIC_DIR'], '/static/', name='Static Files'))

    create_blueprints(app)

    return app
Example #18
0
    def inaccessible_callback(self, name, **kwargs):
        return redirect(url_for('admin.login_view'))


admin = Admin(app,
              name='管理中心',
              base_template='admin/my_master.html',
              index_view=MyAdminIndexView(name='首页',
                                          template='admin/index.html',
                                          url='/admin'))
admin.add_view(HashView(Search_Hash, db.session, name='磁力Hash'))
admin.add_view(KeywordsView(Search_Keywords, db.session, name='首页推荐'))
admin.add_view(TagsView(Search_Tags, db.session, name='搜索记录'))
admin.add_view(UserView(Search_Statusreport, db.session, name='爬取统计'))
admin.add_view(FileAdmin(file_path, '/uploads/', name='文件管理'))
admin.add_view(UserView(User, db.session, name='用户管理'))


@manager.command
def init_db():
    db.create_all()
    db.session.commit()


@manager.option('-u', '--name', dest='name')
@manager.option('-e', '--email', dest='email')
@manager.option('-p', '--password', dest='password')
def create_user(name, password, email):
    if name is None:
        name = raw_input('输入用户名(默认admin):') or 'admin'
Example #19
0
def create_app(extra_config_settings={}):
    # Create a Flask applicaction.

    # Instantiate Flask
    app = Flask(__name__)

    # Load App Config settings
    # Load common settings from 'app/settings.py' file
    app.config.from_object('app.settings')
    # Load local settings from 'app/local_settings.py'
    app.config.from_object('app.local_settings')
    # Load extra config settings from 'extra_config_settings' param
    app.config.update(extra_config_settings)

    # Setup db Mongo
    db.init_app(app)

    # Setup Flask-Mail
    mail.init_app(app)

    # Setup WTForms CSRFProtect
    csrf_protect.init_app(app)

    # Register blueprints
    from app.views.public_views import public_blueprint
    app.register_blueprint(public_blueprint)
    from app.views.members_views import members_blueprint
    app.register_blueprint(members_blueprint)

    # Setup an error-logger to send emails to app.config.ADMINS
    init_email_error_handler(app)

    # Setup Flask-secure
    from .models.user_models import User, Role
    app.user_datastore = MongoEngineUserDatastore(db, User, Role)
    security.init_app(app, app.user_datastore)
    # datastore.create_user(email='*****@*****.**', password='******')

    Bootstrap(app)  # Initialize flask_bootstrap

    babel.init_app(app)  # Initialize flask_babelex

    # Define bootstrap_is_hidden_field for flask-bootstrap's bootstrap_wtf.html
    from wtforms.fields import HiddenField

    def is_hidden_field_filter(field):
        return isinstance(field, HiddenField)

    app.jinja_env.globals['bootstrap_is_hidden_field'] = is_hidden_field_filter

    # Setup Flask-admin
    class AdminUserView(ModelView):
        can_create = False
        column_exclude_list = ('password')
        form_overrides = dict(password=HiddenField)

    admin = Admin(app, template_mode='bootstrap3')
    admin.add_view(AdminUserView(User))
    admin.add_view(ModelView(Role))
    path = op.join(op.dirname(__file__), 'static')
    admin.add_view(FileAdmin(path, '/static/', name='Files'))
    admin.add_link(MenuLink(name='Profile', endpoint='members.member_page'))
    admin.add_link(MenuLink(name='Logout', endpoint='security.logout'))

    return app
Example #20
0
def create_app(config_name):
    app = Flask(__name__, instance_relative_config=True)
    app.config.from_object(app_config[config_name])
    app.config.from_pyfile('config.py')
    db.init_app(app)

    migrate = Migrate(app, db)
    CORS(app)

    adm = admin.Admin(app, url="/miagi")
    # adm = admin.Admin(app)

    from app.models import roles
    from app.models import users
    from app.models import courses
    from app.models import approval_requests
    from app.models import participants
    from app.models import boards
    from app.models import tasks
    from app.models import student_answers
    from app.models import groups
    from app.models import keys
    from app.models import results
    from app.models import payments
    from app.models import events

    from .services.auth import auth as auth_blueprint
    app.register_blueprint(auth_blueprint)

    from .services.courses import courses as courses_blueprint
    app.register_blueprint(courses_blueprint)

    from .services.approval_requests import approvalRequest as approvalRequest_blueprint
    app.register_blueprint(approvalRequest_blueprint)

    from .services.user import users as users_blueprint
    app.register_blueprint(users_blueprint)

    from .services.tasks import tasks as tasks_blueprint
    app.register_blueprint(tasks_blueprint)

    from .services.groups import groups as groups_blueprint
    app.register_blueprint(groups_blueprint)

    from .services.events import events as events_blueprint
    app.register_blueprint(events_blueprint)

    from .services.participants import participants as participants_blueprint
    app.register_blueprint(participants_blueprint)

    from .socket_events import chatEvents as chatEvents_blueprint
    app.register_blueprint(chatEvents_blueprint)

    from .services.student_answers import studentAsnswers as studentAsnswers_blueprint
    app.register_blueprint(studentAsnswers_blueprint)

    from .services.results import results as results_blueprint
    app.register_blueprint(results_blueprint)

    from .services.keys import keys as keys_blueprint
    app.register_blueprint(keys_blueprint)

    from .services.payments import payments as payments_blueprint
    app.register_blueprint(payments_blueprint)

    from .services.admin import adm as admin_blueprint
    app.register_blueprint(admin_blueprint)

    # from .services.admin_test import adam as adam_blueprint
    # app.register_blueprint(adam_blueprint)

    # Declare socket
    socketio.init_app(app)

    from .models.roles import Role

    # Declare default objects in db
    @app.before_first_request
    def init_roles():
        if Role.query.count() == 0:
            db.session.add(Role(id=1, name='admin'))
            db.session.add(Role(id=2, name='moderator'))
            db.session.add(Role(id=3, name='teacher'))
            db.session.add(Role(id=4, name='student'))
            db.session.commit()

    # ADD Admin UI
    from .services.admin.views import RoleAdmin, UserAdmin, CourseAdmin, \
        TaskAdmin, GroupsAdmin, BoardAdmin, ParticipantAdmin, \
        StudentAnswerAdmin, ResultAdmin, KeysAdmin, PaymentsAdmin, EventsAdmin, \
        CourseApprovalRequestsAdmin

    adm.add_view(RoleAdmin(roles.Role, db.session))
    adm.add_view(UserAdmin(users.User, db.session))
    adm.add_view(CourseAdmin(courses.Course, db.session))
    adm.add_view(TaskAdmin(tasks.Task, db.session))
    adm.add_view(GroupsAdmin(groups.Group, db.session))
    adm.add_view(EventsAdmin(events.Event, db.session))
    adm.add_view(BoardAdmin(boards.Board, db.session))
    adm.add_view(ParticipantAdmin(participants.Participant, db.session))
    adm.add_view(StudentAnswerAdmin(student_answers.StudentAnswer, db.session))
    adm.add_view(ResultAdmin(results.Result, db.session))
    adm.add_view(KeysAdmin(keys.Key, db.session))
    adm.add_view(PaymentsAdmin(payments.Payment, db.session))
    adm.add_view(
        CourseApprovalRequestsAdmin(approval_requests.CourseApprovalRequest,
                                    db.session))

    path = app.config["B_DATA_FILES_DIR"]
    adm.add_view(FileAdmin(path, name='Static Files'))

    # from .services.admin_test import RoleAdmin, UserAdmin, CourseAdmin, TaskAdmin
    #
    # adm.add_view(RoleAdmin(roles.Role, db.session))
    # adm.add_view(UserAdmin(users.User, db.session))
    # adm.add_view(CourseAdmin(courses.Course, db.session))
    # adm.add_view(TaskAdmin(tasks.Task, db.session))
    #
    # adm.add_link(MenuLink(name='Logout', endpoint='adam.logout'))
    return app
Example #21
0
class CommentView(ModelView):
    create_modal = True


class NotificationsView(BaseView):
    @expose('/')
    def index(self):
        return self.render('admin/notification.html')


admin.add_view(UserView(User, db.session))
admin.add_view(CommentView(Comment, db.session))

path = join(dirname(__file__), 'uploads')
admin.add_view(FileAdmin(path, '/uploads/', name='UploadHere'))
admin.add_view(NotificationsView(name='Notifications', endpoint='notify'))


@app.route('/login')
def login():
    user = User.query.filter_by(id=1).first()
    login_user(user)
    return redirect(url_for('admin.index'))


@app.route('/logout')
def logout():
    logout_user()
    return redirect(url_for('admin.index'))
Example #22
0
    can_export = True
    column_list = ('id', 'date_modified',
                   'user_id', 'assignment_id', 'course_id',
                   'code', 'correct', 'score',
                   "submission_status", "grading_status",
                   'version', 'url'
                   )
    column_filters = ('user_id', 'assignment_id', 'course_id',
                      'date_modified', 'correct', 'submission_status', 'grading_status')
    column_formatters = {'code': _render_code, 'endpoint': _smaller,
                         'version': _render_version}
    column_formatters_export = None
    column_export_list = None


admin.add_view(UserView(User, db.session, category='Tables'))
admin.add_view(CourseView(Course, db.session, category='Tables'))
admin.add_view(SubmissionView(Submission, db.session, category='Tables'))
admin.add_view(SampleSubmissionView(SampleSubmission, db.session, category='Tables'))
admin.add_view(AssignmentView(Assignment, db.session, category='Tables'))
admin.add_view(AssignmentGroupView(AssignmentGroup, db.session, category='Tables'))
admin.add_view(AssignmentGroupMembershipView(AssignmentGroupMembership, db.session, category='Tables'))
admin.add_view(AssignmentTagView(AssignmentTag, db.session, category='Tables'))
admin.add_view(ModelIdView(Authentication, db.session, category='Tables'))
admin.add_view(RoleView(Role, db.session, category='Tables'))
admin.add_view(LogView(Log, db.session, category='Tables'))
admin.add_view(ReviewView(Review, db.session, category='Tables'))

# admin.add_view(FileAdmin(app.config['BLOCKPY_LOG_DIR'], base_url='/admin/code_logs/', name='Disk Logs'))
admin.add_view(FileAdmin(app.config['UPLOADS_DIR'], '', name='File Uploads'))
Example #23
0
        'template': {
            'style': 'width:320px;'
        },
    }


admin = Admin(index_view=CodingpyAdmin(name='首页'),
              name='编程派',
              template_mode='bootstrap3')

admin.add_view(ArticleAdmin(Article, db.session, name='文章'))
admin.add_view(CategoryAdmin(Category, db.session, name='分类'))
admin.add_view(UserAdmin(User, db.session, name='用户'))
admin.add_view(TagAdmin(Tag, db.session, name='标签'))
admin.add_view(TopicAdmin(Topic, db.session, name='专题'))
admin.add_view(FileAdmin(file_path, '/static/', name='文件'))


class WechatTextMessageAdmin(ModelView):
    create_template = "admin/a_create.html"
    edit_template = "admin/a_edit.html"

    column_list = ('request', 'response', 'scene')

    form_excluded_columns = ('created_at', )

    column_searchable_list = ('request', 'response', 'scene')

    column_labels = dict(
        request=('请求'),
        response=('响应'),
Example #24
0
            ('Secondary Education(Grade 9-12)','Secondary Education(Grade 9-12)'),
            ('Bachelor Level','Bachelor Level'),
            ('Master Level','Master Level')
        ]
    }
    form_create_rules = ('course_title', 'course_level', 'course_description')
    form_edit_rules = ('course_title', 'course_level', 'course_description')


class LogoutMenuLink(MenuLink):
    def is_accessible(self):
        return current_user.is_authenticated    


# For general models, admin.add_view(ModelView(User, db.session)) 
admin.add_view(UserView(User, db.session))
admin.add_view(StudentView(Student, db.session))
admin.add_view(TutorView(Tutor, db.session))

admin.add_view(CannotDeleteView(Location, db.session)) 
admin.add_view(CourseView(Course, db.session))
admin.add_view(CustomView(Mycourse, db.session))

admin.add_view(ShowLinkView(Experience, db.session))
admin.add_view(ShowLinkView(Achievement, db.session))
admin.add_view(ShowLinkView(Qualification, db.session))

path = op.join(op.dirname(__file__), 'static/docs/')
admin.add_view(FileAdmin(path, '/static/docs/', name='Documents'))

admin.add_link(LogoutMenuLink(name='Logout', category='', url="/logout"))
Example #25
0
def create_app(extra_config_settings={}):
    # Create a Flask applicaction.

    # Instantiate Flask
    app = Flask(__name__)

    # Load App Config settings
    # Load common settings from 'app/settings.py' file
    app.config.from_object('app.settings')
    # Load local settings from 'app/local_settings.py'
    app.config.from_object('app.local_settings')
    # Load extra config settings from 'extra_config_settings' param
    app.config.update(extra_config_settings)

    # Setup db Mongo
    db.init_app(app)

    # Setup Flask-Mail
    #mail.init_app(app)

    # Setup WTForms CSRFProtect
    csrf_protect.init_app(app)

    # Register blueprints
    from app.views.public_views import public_blueprint
    app.register_blueprint(public_blueprint)
    from app.views.success import members_blueprint
    app.register_blueprint(members_blueprint)
    from app.views.admin_views import admin_blueprint
    app.register_blueprint(admin_blueprint, url_prefix='/admin')
    from app.views.mod_views import mod_blueprint
    app.register_blueprint(mod_blueprint, url_prefix='/mod')
    from app.views.biz_views import biz_blueprint
    app.register_blueprint(biz_blueprint, url_prefix='/biz')
    # Setup an error-logger to send emails to app.config.ADMINS
    #init_email_error_handler(app)

    # Setup Flask-secure
    from .models.user_models import Role, User
    app.user_datastore = MongoEngineUserDatastore(db, User, Role)
    security.init_app(app, app.user_datastore, register_form=registerForm)
    # datastore.create_user(email='*****@*****.**', password='******')

    babel.init_app(app)  # Initialize flask_babelex

    # Setup Flask-admin
    class AdminUserView(ModelView):
        can_create = False
        column_exclude_list = ('password')
        column_editable_list = ['active']

        def is_accessible(self):
            return current_user.has_role('admin')

    adminDash = Admin(
        app,
        name='admin',
        template_mode='bootstrap4',
        url="/admin",
        endpoint='admin'
    )  #, index_view=adminView(url='/admin', endpoint='admin'))
    adminDash.add_view(AdminUserView(User))
    adminDash.add_view(ModelView(Role))
    path = op.join(op.dirname(__file__), './')
    adminDash.add_view(FileAdmin(path, '/', name='Files'))
    adminDash.add_link(MenuLink(name='Profile',
                                endpoint='members.member_page'))
    adminDash.add_link(MenuLink(name='Logout', endpoint='security.logout'))
    return app
Example #26
0
# pip install transformers==4.0.1
# pip install word2number

basedir = os.path.abspath(os.path.dirname(__file__))
upload_dir = os.path.join(basedir, 'static/uploads')
output_dir = os.path.join(basedir, 'output')
sys.path.append(os.path.join(os.path.dirname(basedir), 'Python_Modules'))
from _transcriber import TRANSCRIBER

app = Flask(__name__)
app.debug = True

admin = Admin(name='Uploaded Files')
admin.init_app(app)
dropzone = Dropzone(app)
admin.add_view(FileAdmin(upload_dir, name='FILES'))
app.config.from_pyfile('config.py')
app.config['DROPZONE_ALLOWED_FILE_CUSTOM'] = True
app.config['DROPZONE_ALLOWED_FILE_TYPE'] = 'audio/*, .mp3, .wav, .m4a'

transcriber = TRANSCRIBER()
# 이부분은 자유롭게 바꾸셔도 됩니다 Python Modules 폴더 내 make_tables.py만 불러오면 돼요
os.chdir(os.path.join(basedir, '../Python_Modules'))
import make_tables

with open(os.path.join(upload_dir, 'faq_query.json')) as f:
    query_faq = json.load(f)


@app.route("/", methods=['GET', 'POST'])
def upload():
Example #27
0
admin.add_view(
    ProjectView(Project, db.session, name="Projects (Data Packages)"))


class RenderingView(ModelView):
    column_list = ('title', 'path')
    can_export = True


admin.add_view(RenderingView(Rendering, db.session, name="Renderings (Views)"))

admin.add_view(ModelView(Source, db.session, name="Data sources"))

admin.add_view(ModelView(License, db.session, name="Licenses"))

admin.add_view(FileAdmin(upload_path, '/uploads/', name="Uploads"))


# API views
@app.route("/api/projects", methods=['GET'])
def projects_list():
    return [
        p.dict() for p in Project.query.filter_by(
            is_hidden=False, is_featured=False).limit(24).all()
    ]


@app.route("/api/projects/featured", methods=['GET'])
def projects_list_featured():
    return [
        p.dict() for p in Project.query.filter_by(
Example #28
0
 def apply_file_admin(self, app):
     # Admin添加文件管理系统
     path = 'app' + app.static_url_path
     self.admin.add_view(FileAdmin(path, '/static/', name='静态资源'))
Example #29
0
        if not auth or (auth.username,
                        auth.password) != app.config['ADMIN_CREDENTIALS']:
            raise HTTPException(
                '',
                Response('You have to an administrator.', 401,
                         {'WWW-Authenticate': 'Basic realm="Login Required"'}))
        return True


class UserModelView(ModelView):
    column_display_pk = True
    form_columns = ['first_name', 'last_name', 'key', 'confirmation']
    column_searchable_list = ('first_name', 'last_name', 'email')
    column_filters = ('first_name', 'last_name', 'email')


class TranslationModelView(ModelView):
    column_display_pk = True
    form_columns = [
        'id', 'user', 'timestamp', 'input', 'output', 'elapsed_time'
    ]


# Users
admin.add_view(UserModelView(User, db.session))
admin.add_view(TranslationModelView(Translation, db.session))

# Static files
path = op.join(op.dirname(__file__), 'static')
admin.add_view(FileAdmin(path, '/static/', name='Static'))
Example #30
0

class PkView(ModelView):
    column_display_pk = True


admin.add_view(UserView(User, db.session))
admin.add_view(PkView(Role, db.session))
# admin.add_view(PkView(roles_users, db.session))
admin.add_view(PkView(Farm, db.session))
admin.add_view(PkView(Field, db.session))
# admin.add_view(PkView(crops_field, db.session))
admin.add_view(PkView(Crop, db.session))
admin.add_view(PkView(DailyFieldInput, db.session))
admin.add_view(PkView(Agrimodule, db.session))
admin.add_view(PkView(Agripump, db.session))
admin.add_view(PkView(Agrisensor, db.session))
admin.add_view(PkView(Pump, db.session))
admin.add_view(PkView(Measurement, db.session))
admin.add_view(PkView(AgrimoduleList, db.session))
admin.add_view(PkView(AgrisensorList, db.session))
admin.add_view(PkView(AgripumpList, db.session))
admin.add_view(PkView(WelcomeLog, db.session))


def get_path():
    return join(dirname(__file__)[:-5], 'static/images/crops')


admin.add_view(FileAdmin(get_path(), '/crops/', name='CropImage'))
Example #31
0

# 重写admin登录
class MyAdminIndexView(AdminIndexView):
    @expose('/')
    @login_required
    def index(self):
        return super(MyAdminIndexView, self).index()


# admin columns
admin = Admin(app,
              name='File Research',
              index_view=MyAdminIndexView(),
              template_mode='bootstrap3')
admin.add_view(FileAdmin(path, '/static/files/', name='Media Files'))


# The Home page is accessible to anyone
@app.route('/')
def home_page():
    # String-based templates
    return render_template('index.html')


# The Members page is only accessible to authenticated users via the @login_required decorator
@app.route('/members')
@login_required  # User must be authenticated
def member_page():
    # String-based templates
    return render_template_string("""