Esempio n. 1
0
def run_admin(host, port, db, password, listen):
    conn = redis.Redis(host, int(port or 6379), int(db or 0), password)
    tiger = TaskTiger(setup_structlog=True, connection=conn)
    app = Flask(__name__)
    admin = Admin(app, url='/')
    admin.add_view(TaskTigerView(tiger, name='TaskTiger', endpoint='tasktiger'))
    app.run(debug=True, port=int(listen or 5000))
def test_admin(db, app):
    """Test flask-admin interace."""
    admin = Admin(app, name="AdminExt")

    # Register models in admin
    for adminview in (sip_adminview, sipfile_adminview, recordsip_adminview):
        assert 'model' in adminview
        assert 'modelview' in adminview
        admin_kwargs = dict(adminview)
        model = admin_kwargs.pop('model')
        modelview = admin_kwargs.pop('modelview')
        admin.add_view(modelview(model, db.session, **admin_kwargs))

    # Check if generated admin menu contains the correct items
    menu_items = {str(item.name): item for item in admin.menu()}

    # PIDStore should be a category
    assert 'Records' in menu_items
    assert menu_items['Records'].is_category()
    assert isinstance(menu_items['Records'], menu.MenuCategory)

    # Items in PIDStore menu should be the modelviews
    submenu_items = {str(item.name): item for item in
                     menu_items['Records'].get_children()}
    assert 'SIP' in submenu_items
    assert 'RecordSIP' in submenu_items
    assert 'SIPFile' in submenu_items
    assert isinstance(submenu_items['SIP'], menu.MenuView)
    assert isinstance(submenu_items['RecordSIP'], menu.MenuView)
    assert isinstance(submenu_items['SIPFile'], menu.MenuView)
Esempio n. 3
0
def test_admin(app):
    """Test flask-admin interace."""
    admin = Admin(app, name="Test")

    assert 'model' in record_adminview
    assert 'modelview' in record_adminview

    # Register both models in admin
    model = record_adminview.pop('model')
    view = record_adminview.pop('modelview')
    admin.add_view(view(model, db.session, **record_adminview))

    # Check if generated admin menu contains the correct items
    menu_items = {str(item.name): item for item in admin.menu()}
    assert 'Records' in menu_items
    assert menu_items['Records'].is_category()

    submenu_items = {
        str(item.name): item for item in menu_items['Records'].get_children()}
    assert 'Record Metadata' in submenu_items
    assert isinstance(submenu_items['Record Metadata'], menu.MenuView)

    # Create a test record.
    with app.app_context():
        rec_uuid = str(uuid.uuid4())
        Record.create({'title': 'test'}, id_=rec_uuid)
        db.session.commit()

    with app.test_request_context():
        index_view_url = url_for('recordmetadata.index_view')
        delete_view_url = url_for('recordmetadata.delete_view')
        detail_view_url = url_for(
            'recordmetadata.details_view', id=rec_uuid)

    with app.test_client() as client:
        # List index view and check record is there.
        res = client.get(index_view_url)
        assert res.status_code == 200

        # Fake a problem with SQLAlchemy.
        with patch('invenio_records.admin.Record') as db_mock:
            db_mock.side_effect = SQLAlchemyError()
            res = client.post(
                delete_view_url, data={'id': rec_uuid}, follow_redirects=True)
            assert res.status_code == 200

        # Delete it.
        res = client.post(
            delete_view_url, data={'id': rec_uuid}, follow_redirects=True)
        assert res.status_code == 200

        # View the delete record
        res = client.get(detail_view_url)
        assert res.status_code == 200
        assert '<pre>null</pre>' in res.get_data(as_text=True)

        # Delete it again
        res = client.post(
            delete_view_url, data={'id': rec_uuid}, follow_redirects=True)
        assert res.status_code == 200
Esempio n. 4
0
def create_app(settings_override=None):
    """Return the PyGotham admin application.

    :param settings_override: a ``dict`` of settings to override.

    """
    app = factory.create_app(__name__, __path__, settings_override)

    app.jinja_env.filters['rst'] = filters.rst_to_html

    # Because the admin is being wrapped inside an app, the url needs to
    # be overridden to use / instead of the default of /admin/. One of
    # the side effects of doing this is that the static assets won't
    # serve correctly without overriding static_url_path as well.
    admin = Admin(
        app, name='PyGotham',
        static_url_path='/admin',
        index_view=HomeView(endpoint='', url='/'),
    )

    # Iterate through all the modules of the current package. For each
    # module, check the public API for any instances of types that can
    # be added to the Flask-Admin menu and register them.
    for _, name, _ in pkgutil.iter_modules(__path__):
        module = importlib.import_module('{}.{}'.format(__name__, name))
        for attr in dir(module):
            view = getattr(module, attr)
            if isinstance(view, ModelView):
                admin.add_view(view)
            elif isinstance(view, MenuLink):
                admin.add_link(view)

    return app
Esempio n. 5
0
def create_admin(app):
    admin = Admin(app)

    admin.add_view(ModelView(Envelope, db.session))
    admin.add_view(ModelView(Budget, db.session))

    return admin
Esempio n. 6
0
def test_admin():
    """Test flask-admin interace."""
    app = Flask('testapp')
    FlaskCLI(app)
    InvenioDB(app)
    InvenioPIDStore(app)
    admin = Admin(app, name="AdminExt")

    pid_kwargs = dict(pid_adminview)

    assert 'model' in pid_adminview
    assert 'modelview' in pid_adminview

    # Register both models in admin
    pid_model = pid_kwargs.pop('model')
    pid_mv = pid_kwargs.pop('modelview')
    admin.add_view(pid_mv(pid_model, db.session, **pid_kwargs))

    # Check if generated admin menu contains the correct items
    menu_items = {str(item.name): item for item in admin.menu()}

    # PIDStore should be a category
    assert 'Records' in menu_items
    assert menu_items['Records'].is_category()
    assert isinstance(menu_items['Records'], menu.MenuCategory)

    # Items in PIDStore menu should be the modelviews
    submenu_items = {str(item.name): item for item in
                     menu_items['Records'].get_children()}
    assert 'Persistent Identifier' in submenu_items
    assert isinstance(submenu_items['Persistent Identifier'], menu.MenuView)
class AdminView(object):
    """Main Admin class View"""
    def __init__(self, app_name):
        self.admin = Admin(name=app_name, template_mode='bootstrap3', index_view=MyHomeView())

    def init(self, app):
        """Init flask admin"""
        self.admin.init_app(app)
        self._add_views()

    def _add_views(self):
        self._add_models_to_menu()

    def _add_models_to_menu(self):
        ev = EventView(Event, db.session)
        self.admin.add_view(ev)

    @staticmethod
    def init_login(app):
        """Init login"""
        login_manager = login.LoginManager()
        login_manager.init_app(app)

        # Create user loader function
        @login_manager.user_loader
        def load_user(user_id):
            return db.session.query(User).get(user_id)
Esempio n. 8
0
def create_admin(app=None):
    admin = Admin(app, name='CleanBlogAdmin',
                    index_view=MyIndexView(),
                  base_template='admin/my_master.html')
    #admin.add_view(MyView(name='Hello'))
    admin.add_view(UserView(User))
    admin.add_view(PostView(Post))
Esempio n. 9
0
def create_app(config_name):

    app = Flask(__name__)
    app.config.from_object(config[config_name])
    config[config_name].init_app(app)

    bootstrap.init_app(app)
    login_manager.init_app(app)
    mongo.init_app(app)

    from adminpage.views import (MyAdminIndexView, HomeView,
                                            AdminResult1View)
    admin = Admin(name="My Admin",
            index_view=MyAdminIndexView(endpoint='admin'))

    admin.add_view(HomeView(name='App Home'))
    with app.app_context():
        admin.add_view(AdminResult1View(mongo.db.results,
                            name='Result1'))

    admin.init_app(app)

    # attach routes and custom error pages here
    from main import main as main_blueprint
    app.register_blueprint(main_blueprint)

    from customer import customer as customer_blueprint
    app.register_blueprint(customer_blueprint, url_prefix='/customer')

    from auth import auth as auth_blueprint
    app.register_blueprint(auth_blueprint, url_prefix='/auth')

    return app
Esempio n. 10
0
def test_admin(app):
    """Test flask-admin interace."""
    InvenioOAuthClient(app)

    assert isinstance(remote_account_adminview, dict)
    assert isinstance(remote_token_adminview, dict)

    assert 'model' in remote_account_adminview
    assert 'modelview' in remote_account_adminview
    assert 'model' in remote_token_adminview
    assert 'modelview' in remote_token_adminview

    admin = Admin(app, name='Test')

    user_model = remote_account_adminview.pop('model')
    user_view = remote_account_adminview.pop('modelview')
    admin.add_view(user_view(user_model, db.session,
                             **remote_account_adminview))

    with app.app_context():
        # create user and save url for testing
        request_url = url_for('remoteaccount.index_view')

    with app.app_context():
        with app.test_client() as client:
            res = client.get(
                request_url,
                follow_redirects=True
            )
            assert res.status_code == 200
            assert 'Extra Data' in str(res.get_data())
            assert 'Tokens' in str(res.get_data())
def test_admin(app, db):
    """Test admin interface."""
    assert isinstance(ca, dict)
    assert isinstance(ta, dict)

    assert 'model' in ca
    assert 'modelview' in ca
    assert 'model' in ta
    assert 'modelview' in ta

    # Create admin
    admin = Admin(app, name='Example: Sequence Generator')

    # Add views
    admin.add_view(ta['modelview'](ta['model'], db.session))
    admin.add_view(ca['modelview'](ca['model'], db.session))

    with app.app_context():
        # Create test data
        seq = Sequence(Template.create('ID', 'File {counter}'))
        assert seq.next() == 'File 0'
        assert seq.next() == 'File 1'
        assert seq.next() == 'File 2'
        db.session.commit()

        with app.test_request_context():
            request_url = url_for('counter.reset_view')
        with app.test_client() as client:
            # Reset counter
            client.post(request_url,
                        data={'start': 0, 'rowid': 'File {counter}'},
                        follow_redirects=False)

        # Assert that reset was successful
        assert seq.next() == 'File 0'
Esempio n. 12
0
    def register(app):
        """
        Register blueprints
        :param app: a flask app instance
        :return:
        """
        app.register_blueprint(home_routes)
        admin = Admin(app, name='Open Event API', template_mode='bootstrap3', index_view=MyAdminIndexView(),
                      base_template='admin_base.html')

        # Get all the models in the db, all models should have a explicit __tablename__
        classes, models, table_names = [], [], []
        # noinspection PyProtectedMember
        for class_ in list(db.Model._decl_class_registry.values()):
            try:
                table_names.append(class_.__tablename__)
                classes.append(class_)
            except:
                pass
        for table in list(db.metadata.tables.items()):
            if table[0] in table_names:
                models.append(classes[table_names.index(table[0])])

        for model in models:
            admin.add_view(AdminModelView(model, db.session))
Esempio n. 13
0
def init_admin():
    admin = Admin(app)
    admin.add_view(UserModelView(User, db.session, category='Auth'))
    admin.add_view(AdminModelView(Role, db.session, category='Auth'))
    admin.add_view(AdminModelView(SomeStuff, db.session))
    admin.add_view(LogoutView(name='Logout', endpoint='logout'))
    admin.add_view(LoginView(name='Login', endpoint='login'))
Esempio n. 14
0
def create_app(app=None, config_file=None):

    if not app:
        app = Flask(__name__, template_folder="views")

    # Config files
    app.config.from_pyfile("config/base.py")
    if config_file:
    	app.config.from_pyfile("config/{}.py".format(config_file))

    # Extensions
    Foundation(app)
    admin = Admin(app, name='Bolsa de Trabajo', template_mode='bootstrap3')

    """
    CONTROLADORES 
    """
    # Blueprints
    app.register_blueprint(frontend)    

    # Admin Views
    admin.add_view(AdminSkillView(Skill, db.session))
    admin.add_view(AdminStudentView(Student, db.session))
    admin.add_view(AdminCompanyView(Company, db.session))

    return app
Esempio n. 15
0
def create_app(script_info=None):
    """Create app."""
    app = Flask(__name__)
    # logging
    if not os.path.exists(user_data_dir):
        os.makedirs(user_data_dir)
    log_dir = os.path.join(user_data_dir, 'log')
    if not os.path.exists(log_dir):
        os.makedirs(log_dir)
    peewee_logger = logging.getLogger('peewee')
    peewee_logger.setLevel(logging.INFO)
    chardet_logger = logging.getLogger('chardet')
    chardet_logger.setLevel(logging.INFO)
    default_log_file = os.path.join(log_dir, 'iqdb_tagger_server.log')
    file_handler = TimedRotatingFileHandler(default_log_file, 'midnight')
    file_handler.setLevel(logging.WARNING)
    file_handler.setFormatter(logging.Formatter('<%(asctime)s> <%(levelname)s> %(message)s'))
    app.logger.addHandler(file_handler)
    app.logger.addHandler(peewee_logger)
    app.logger.addHandler(chardet_logger)
    # reloader
    reloader = app.config['TEMPLATES_AUTO_RELOAD'] = \
        bool(os.getenv('IQDB_TAGGER_RELOADER')) or app.config['TEMPLATES_AUTO_RELOAD']  # NOQA
    if reloader:
        app.jinja_env.auto_reload = True
    app.config['SECRET_KEY'] = os.getenv('IQDB_TAGGER_SECRET_KEY') or os.urandom(24)
    app.config['WTF_CSRF_ENABLED'] = False
    # debug
    debug = app.config['DEBUG'] = bool(os.getenv('IQDB_TAGGER_DEBUG')) or app.config['DEBUG']
    if debug:
        app.config['DEBUG'] = True
        app.config['LOGGER_HANDLER_POLICY'] = 'debug'
        logging.basicConfig(level=logging.DEBUG)
        pprint.pprint(app.config)
        print('Log file: {}'.format(default_log_file))
        print('script info:{}'.format(script_info))
    db_path = os.getenv('IQDB_TAGGER_DB_PATH') or default_db_path
    init_program()
    init_db(db_path)
    # app and db
    app.app_context().push()

    @app.shell_context_processor
    def shell_context():  # pylint: disable=unused-variable
        return {'app': app}

    # flask-admin
    app_admin = Admin(
        app, name='IQDB Tagger', template_mode='bootstrap3',
        index_view=views.HomeView(name='Home', template='iqdb_tagger/index.html', url='/'))

    app_admin.add_view(views.MatchView())
    # app_admin.add_view(ModelView(ImageMatch, category='DB'))
    # app_admin.add_view(ModelView(ImageMatchRelationship, category='DB'))
    # app_admin.add_view(ModelView(ImageModel, category='DB'))
    # app_admin.add_view(ModelView(MatchTagRelationship, category='DB'))
    # routing
    app.add_url_rule('/thumb/<path:basename>', view_func=thumb)
    return app
Esempio n. 16
0
    def register(self,app, options, first_registration=False):
        print app
        admin = Admin(app, name='blog')

        for v in self.views:
            admin.add_view(v)

        return super(AdminBlueprint, self).register(app, options, first_registration)
Esempio n. 17
0
class InvenioAdmin(object):
    """Invenio-Admin extension.

    :param app: Flask application.
    :param entry_point_group: Name of entry point group to load views/models
        from.
    """

    def __init__(self, app=None, anonymous=False, **kwargs):
        """InvenioAdmin extension initialization.

        If `anonymous` is True, the admin views are accessible to anonymous
        users and all security checks are bypassed (use for testing only).
        """
        self.anonymous = anonymous
        if app:
            self.init_app(app, **kwargs)

    def init_app(self, app, entry_point_group='invenio_admin.views',
                 **kwargs):
        """Flask application initialization."""
        self.init_config(app)

        # Create admin instance.
        index_view = AdminIndexView if self.anonymous \
            else ProtectedAdminIndexView
        self.admin = Admin(
            app,
            name=app.config['ADMIN_APPNAME'],
            template_mode=kwargs.get('template_mode', 'bootstrap3'),
            index_view=index_view())

        # Load administration interfaces defined by entry points.
        if entry_point_group:
            for ep in pkg_resources.iter_entry_points(group=entry_point_group):
                adminview_dict = dict(ep.load())
                assert 'model' in adminview_dict, \
                    "Admin's entrypoint dictionary must define the 'model'"
                assert 'modelview' in adminview_dict, \
                    "Admin's entrypoint dictionary must define the 'modelview'"
                model = adminview_dict.pop('model')
                modelview = adminview_dict.pop('modelview')

                # If not in anonymous access mode add model-based security
                if not self.anonymous:
                    modelview = protected_adminview_factory(modelview)
                self.admin.add_view(
                    modelview(model, db.session, **adminview_dict))
        app.extensions['invenio-admin'] = self

    def init_config(self, app):
        """Initialize configuration."""
        # Set default configuration
        for k in dir(config):
            if k.startswith("ADMIN_"):
                app.config.setdefault(k, getattr(config, k))
Esempio n. 18
0
def test_admin(app):
    """Test flask-admin interace."""
    InvenioAccounts(app)

    assert isinstance(role_adminview, dict)
    assert isinstance(user_adminview, dict)

    assert 'model' in role_adminview
    assert 'modelview' in role_adminview
    assert 'model' in user_adminview
    assert 'modelview' in user_adminview

    admin = Admin(app, name="Test")

    user_model = user_adminview.pop('model')
    user_view = user_adminview.pop('modelview')
    admin.add_view(user_view(user_model, db.session, **user_adminview))

    # Test activation and deactivation

    with app.app_context():
        # create user and save url for testing
        request_url = url_for("user.action_view")
        kwargs = dict(email="*****@*****.**", active=False,
                      password=encrypt_password('aafaf4as5fa'))
        _datastore.create_user(**kwargs)
        _datastore.commit()

    with app.app_context():
        with app.test_client() as client:
            inserted_id = _datastore.get_user('*****@*****.**').id

            res = client.post(
                request_url,
                data={'rowid': inserted_id, 'action': 'activate'},
                follow_redirects=True
            )
            assert res.status_code == 200

            res = client.post(
                request_url,
                data={'rowid': inserted_id, 'action': 'inactivate'},
                follow_redirects=True
            )
            assert res.status_code == 200

            pytest.raises(ValueError, client.post, request_url,
                          data={'rowid': -42, 'action': 'inactivate'},
                          follow_redirects=True
                          )
            pytest.raises(ValueError, client.post, request_url,
                          data={'rowid': -42, 'action': 'activate'},
                          follow_redirects=True
                          )
Esempio n. 19
0
def init_admin():
    # Initialize flask-security
    user_datastore = SQLAlchemyUserDatastore(db, models.User, models.Role)
    security = Security(app, user_datastore)

    # Initialize custom admin views
    admin = Admin(app, name='trevorroman.com', template_mode='bootstrap3')
    admin.add_view(PostView(models.Post, db.session))
    admin.add_view(UserView(models.User, db.session))
    admin.add_view(TagView(models.Tag, db.session))

    return admin, user_datastore
Esempio n. 20
0
def test_admin(app):
    """Test Flask-Admin interace."""
    admin = Admin(app, name='Test')

    assert 'model' in set_adminview
    assert 'modelview' in set_adminview

    # Register both models in admin
    model = set_adminview.pop('model')
    view = set_adminview.pop('modelview')
    admin.add_view(view(model, db.session, **set_adminview))

    # Check if generated admin menu contains the correct items
    menu_items = {str(item.name): item for item in admin.menu()}
    assert 'OAI-PMH' in menu_items
    assert menu_items['OAI-PMH'].is_category()

    submenu_items = {
        str(item.name): item for item in menu_items['OAI-PMH'].get_children()
    }
    assert 'Sets' in submenu_items
    assert isinstance(submenu_items['Sets'], menu.MenuView)

    # Create a test set.
    with app.app_context():
        test_set = OAISet(id=1,
                          spec='test',
                          name='test_name',
                          description='some test description',
                          search_pattern='test search')
        db.session.add(test_set)
        db.session.commit()

    with app.test_request_context():
        index_view_url = url_for('oaiset.index_view')
        delete_view_url = url_for('oaiset.delete_view')
        detail_view_url = url_for('oaiset.details_view', id=1)

    with app.test_client() as client:
        # List index view and check record is there.
        res = client.get(index_view_url)
        assert res.status_code == 200

        # Deletion is forbiden.
        res = client.post(
            delete_view_url, data={'id': 1}, follow_redirects=True)
        assert res.status_code == 200

        # View the deleted record.
        res = client.get(detail_view_url)
        assert res.status_code == 200
        assert 1 == OAISet.query.count()
Esempio n. 21
0
def create_app(config_name):
    '''Flask application factory function'''
    app = Flask(__name__)
    app.config.from_object(config[config_name])
    config[config_name].init_app(app)

    app.jinja_env.line_statement_prefix = '%'
    bootstrap.init_app(app)

    db.init_app(app)
    app.user_datastore = PeeweeUserDatastore(db, User, Role, UserRoles)
    security = Security(app, app.user_datastore)

    #     Setup blueprints

    from .public import public as public_blueprint
    app.register_blueprint(public_blueprint)

    from .member import member as member_blueprint
    app.register_blueprint(member_blueprint)

    from .board import board as board_blueprint
    app.register_blueprint(board_blueprint)

    from .invoice import invoice as invoice_blueprint
    app.register_blueprint(invoice_blueprint)

    #     Setup flask-admin

    from .admin.controller import MyModelView, MyAdminView
    admin = Admin(app, 'Admin Panel',
                  template_mode='bootstrap3',
                  index_view=MyAdminView(
                      name='Admin Index',
                      template='admin/index.html',
                      url='/admin'))

    admin.add_view(MyModelView(User))
    admin.add_view(MyModelView(Role))
    admin.add_view(MyModelView(UserRoles))

    # define a context processor for merging flask-admin's template context
    # into the flask-security views.
    @security.context_processor
    def security_context_processor():
        return dict(
            admin_base_template=admin.base_template,
            admin_view=admin.index_view,
            h=admin_helpers
        )

    return app
Esempio n. 22
0
def init_app(app):
    app.register_blueprint(bp)
    app.json_encoder = h.JSONEncoder

    processor_admin = Admin(app,
                            url='/processor_admin',
                            endpoint='/processor_admin',
                            name='Processor Portal',
                            base_template='processor/admin/base.html',
                            template_mode='bootstrap3')
    processor_admin.add_view(ChargeView(
        Charge, db.session, endpoint='charges'))
    return app
Esempio n. 23
0
def init_app(app):
    admin = Admin(
        app, name='Dashboard',
        template_mode='bootstrap3',
        endpoint='admin',
        index_view=IndexView(),
    )
    admin.add_view(UserModelView(User, db.session))
    admin.add_view(CafeModelView(Cafe, db.session))
    admin.add_view(TopicModelView(Topic, db.session))

    if app.config.get('ADMIN_STATIC_URL'):
        app.jinja_env.globals['url_for'] = url_for
Esempio n. 24
0
def initialize(flask_app, flask_db):
    """
    Define the admin views
    """
    admin = Admin(flask_app, name="pwts", template_mode="bootstrap3")
    
    admin.add_view(ModelView(Area, flask_db.session))
    admin.add_view(ModelView(Category, flask_db.session))
    admin.add_view(ModelView(Priority, flask_db.session))
    admin.add_view(ModelView(Size, flask_db.session))
    admin.add_view(ModelView(Status, flask_db.session))
    admin.add_view(ModelView(Type, flask_db.session))
    admin.add_view(ModelView(User, flask_db.session))
    
Esempio n. 25
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'))
Esempio n. 26
0
def create_app():
    app = Flask(__name__)
    app.config.from_object(Config)
    db.init_app(app)
    security = Security(app, user_datastore)

    admin = Admin(app)
    admin.add_view(ActivityAdmin(Activity, db.session))
    admin.add_view(UserAdmin(User, db.session))
    admin.add_view(PageAdmin(Page, db.session))
    # import ipdb; ipdb.set_trace()
    app.register_blueprint(content_bp)
    app.register_blueprint(user_bp)
    app.add_url_rule('/', 'index', index)
    return app
Esempio n. 27
0
def create_app(db):
    app = Flask(__name__)
    app.register_blueprint(index_blueprint, url_prefix='/')
    app.register_blueprint(member_blueprint, url_prefix='/member/')
    app.config['SECRET_KEY'] = '\xca\x0c\x86\x04\x98@\x02b\x1b7\x8c\x88]\x1b\xd7"+\xe6px@\xc3#\\'
    app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://*****:*****@localhost/myweb'
    login = LoginManager()
    bootstrap = Bootstrap()
    admin = Admin(name="APP admin", template_mode='bootstrap3')
    admin.add_view(myview.MyView(name='Hello'))
    admin.init_app(app)
    bootstrap.init_app(app)
    login.init_app(app)
    db.init_app(app)
    return app
Esempio n. 28
0
def create_app(settings_override=None):
    """Returns an Admin application instance."""

    # Create and extend a minimal application
    app = framework.create_app(__name__, __path__, settings_override, security_register_blueprint=False)

    from .invite_view import InviteView
    from .user_view import UserView

    #Init the flask-admin
    admin = Admin(app, name='FogMine Admin', url='/', index_view=MyAdminIndexView(url='/'), template_mode='bootstrap3', base_template='admin/my_master.html')
    admin.add_view(UserView(db.session))
    admin.add_view(InviteView(db.session))

    return app
Esempio n. 29
0
def create_app():
    app = Flask(__name__)
    app.config.from_object('config')

    db.init_app(app)
    Migrate(app, db)

    # Register the blueprint applications
    from .v1 import api as api_blueprint
    app.register_blueprint(api_blueprint, url_prefix='/v1')

    # Flask-Admin
    admin = Admin(app, name='研究時間記録', template_mode='bootstrap3')
    admin.add_view(UserAdmin(User, db.session, name='ユーザ'))
    admin.add_view(RecordAdmin(Record, db.session, name='研究記録'))

    # Define special routes
    @app.after_request
    def after_request(response):
        for query in get_debug_queries():
            if query.duration >= app.config['SLOW_DB_QUERY_TIME']:
                app.logger.warning(
                    'Slow query: %s\nParameters: %s\n'
                    'Duration: %fs\nContext: %s\n'
                    % (query.statement, query.parameters,
                       query.duration, query.context)
                )
        return response

    @app.errorhandler(404)
    def page_not_found(e):
        """Return a custom 404 error."""
        return jsonify(
            error='Not found',
            message='Sorry, Nothing at this api.',
            status=404
        )

    @app.errorhandler(500)
    def page_not_found(e):
        """Return a custom 500 error."""
        return jsonify(
            error='Internal server error',
            message='Sorry, unexpected error: {}'.format(e),
            status=500
        )

    return app
Esempio n. 30
0
def admin_view(app):
    """Admin view fixture."""
    assert isinstance(role_adminview, dict)
    assert isinstance(user_adminview, dict)

    assert 'model' in role_adminview
    assert 'modelview' in role_adminview
    assert 'model' in user_adminview
    assert 'modelview' in user_adminview

    admin = Admin(app, name="Test")

    user_adminview_copy = dict(user_adminview)
    user_model = user_adminview_copy.pop('model')
    user_view = user_adminview_copy.pop('modelview')
    admin.add_view(user_view(user_model, db.session, **user_adminview_copy))
Esempio n. 31
0

# ---------------------------------------------------------------------------------
#   Classes Databases
# -------------------------------------------------------------------------------*/
class User(UserMixin, db.Model):
    __tablename__ = 'User'
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(15), unique=True)
    email = db.Column(db.String(50), unique=True)
    password = db.Column(db.String(80))
    setup = db.Column(db.Boolean())
    activated = db.Column(db.Boolean())


admin.add_view(ModelView(User,
                         db.session))  # create User view for current session


@login_manager.user_loader
def load_user(user_id):
    return User.query.get(int(user_id))


class Match(db.Model):
    __tablename__ = 'Match'
    username = db.Column(db.String(15), primary_key=True, unique=True)
    view_count = db.Column(db.Integer())
    image = db.Column(db.String(120))
    name = db.Column(db.String(20))
    gender = db.Column(db.String(20))
    pref_gender = db.Column(db.String(20))
Esempio n. 32
0
File: server.py Progetto: ricocf/app
def init_admin(app):
    admin = Admin(name="SimpleLogin", template_mode="bootstrap4")

    admin.init_app(app, index_view=SLAdminIndexView())
    admin.add_view(UserAdmin(User, db.session))
    admin.add_view(AliasAdmin(Alias, db.session))
    admin.add_view(MailboxAdmin(Mailbox, db.session))
    admin.add_view(EmailLogAdmin(EmailLog, db.session))
    admin.add_view(LifetimeCouponAdmin(LifetimeCoupon, db.session))
    admin.add_view(CouponAdmin(Coupon, db.session))
    admin.add_view(ManualSubscriptionAdmin(ManualSubscription, db.session))
    admin.add_view(ClientAdmin(Client, db.session))
    admin.add_view(ReferralAdmin(Referral, db.session))
    admin.add_view(PayoutAdmin(Payout, db.session))
Esempio n. 33
0
app.config['MAIL_SERVER'] = 'smtp.gmail.com'
app.config['MAIL_PORT'] = 465
app.config['MAIL_USE_SSL'] = True
app.config['MAIL_USERNAME'] = '******'
app.config['MAIL_PASSWORD'] = '******'
flask_mail = Mail(app)

# set up flask-Admin
flask_admin = Admin(app, name='jdiandian', template_mode='bootstrap3')
class CheckModelView(ModelView):
    def is_accessible(self):
            if session.get('admin_in',False):
                return True
            else:
                return False
flask_admin.add_view(CheckModelView(User, db_session))
flask_admin.add_view(CheckModelView(Tracking, db_session))
flask_admin.add_view(CheckModelView(Subscribe, db_session))
flask_admin.add_view(CheckModelView(Article, db_session))
flask_admin.add_view(CheckModelView(ArticleBody, db_session))


# set up flask-uploads
app.config['UPLOADED_AVATARS_DEST'] = '/var/www/FlaskApp/jdd/static/uploads/avatars/'
app.config['UPLOADED_DONATES_DEST'] = '/var/www/FlaskApp/jdd/static/uploads/donates/'
app.config['UPLOADS_DEFAULT_DEST'] = '/var/www/FlaskApp/jdd/static/uploads/'
# there are DEFAUTL(text.doc.data,images), ALL, TEXT, IMAGES, AUDIO, DOCUMENTS, DATA, 
# SCRIPTS, ARCHIVES, EXECUTABLES for choice
avatars = UploadSet('avatars', IMAGES)
donates = UploadSet('donates',IMAGES)
configure_uploads(app, avatars)
Esempio n. 34
0
def register_admin(app):
    admin = Admin(app, name='admin', template_mode='bootstrap3')
    admin.add_view(ModelView(User, db.session))
Esempio n. 35
0
from auction import Auction, db
from flask import redirect, render_template, url_for
from flask_admin import Admin
from flask_admin.contrib.sqla import ModelView
from flask_bootstrap import Bootstrap
from flask_user import UserManager, login_required
from model import User

Bootstrap(Auction)
admin = Admin(Auction, template_mode='bootstrap3')
user_manager = UserManager(Auction, db, User)
admin.add_view(ModelView(User, db.session))


@Auction.route('/')
def plain():
    return "Hello World"


@Auction.route('/dashboard')
@login_required
def dashboard():
    """
    Entry point to the application
    """
    return render_template('dashboard.html')
Esempio n. 36
0

# Add custom filter and standard FilterEqual to ModelView
class UserAdmin(sqla.ModelView):
    # each filter in the list is a filter operation (equals, not equals, etc)
    # filters with the same name will appear as operations under the same filter
    column_filters = [
        FilterEqual(column=User.last_name, name="Last Name"),
        FilterLastNameBrown(column=User.last_name,
                            name="Last Name",
                            options=(("1", "Yes"), ("0", "No"))),
    ]


admin = Admin(app, template_mode="bootstrap3")
admin.add_view(UserAdmin(User, db.session))


def build_sample_db():
    db.drop_all()
    db.create_all()
    user_obj1 = User("Paul", "Brown", "pbrown", "*****@*****.**")
    user_obj2 = User("Luke", "Brown", "lbrown", "*****@*****.**")
    user_obj3 = User("Serge", "Koval", "skoval", "*****@*****.**")

    db.session.add_all([user_obj1, user_obj2, user_obj3])
    db.session.commit()


if __name__ == "__main__":
    build_sample_db()
Esempio n. 37
0
class OrdersModelView(ModelView):
    column_list = [
        'ship_name', 'order_date', 'ship_address', 'notes',
        'employees.first_name'
    ]
    can_view_details = True


class ProductsModelView(ModelView):
    column_list = [
        'product_code', 'product_name', 'quantity_per_unit', 'standard_cost'
    ]
    can_view_details = True


class PurchaseOrdersModelView(ModelView):
    column_list = ['id', 'submitted_date', 'status_id', 'notes', 'approved_by']
    can_view_details = True


# Administration Site
admin = Admin(app, name='Web Office', template_mode='bootstrap3')
admin.add_view(CustomersModelView(Customers, session, 'Clientes'))
admin.add_view(EmployeesModelView(Employees, session, 'Empleados'))
admin.add_view(OrdersModelView(Orders, session, 'Ordenes'))
admin.add_view(ProductsModelView(Products, session, 'Productos'))
admin.add_view(ModelView(Privileges, session, 'Provilegios'))
admin.add_view(
    PurchaseOrdersModelView(PurchaseOrders, session, 'Ordenes Realizadas'))
Esempio n. 38
0
def init_admin(app):
    db.init_app(app)
    admin = Admin(app, name='flaskr-revisited', template_mode='bootstrap3')
    admin.add_view(ModelView(User, db.session))
    admin.add_view(ModelView(Post, db.session))
    app.cli.add_command(init_db_command)
Esempio n. 39
0
@app.route('/',methods=['GET','POST'])

def process():
	if request.method=='POST':
		conn=sqlite3.connect('new_database.db')
		c=conn.cursor()
		userDetails=request.form
		main=userDetails['processname']
		#num=userDetails['totalpro']
		mainp=Process(process_name=main)
		db.session.add(mainp)
		db.session.commit()
		conn.commit()
		c.close()
		return 'success'
	return render_template('process.html')
def subprocess():
	if request.method=='POST':
		conn=sqlite3.connect('abb.db')
		c=conn.cursor()
		userDetails=request.form

'''
admin.add_view(Processview(Process, db.session))
admin.add_view(Subprocessview(Subprocess, db.session))
admin.add_view(Employeeview(Employee, db.session))
admin.add_view(ModelView(Attribute, db.session))

if __name__ == '__main__':
    app.run(debug=True)
Esempio n. 40
0
                    'is_custom', 'type')
    #inline_models=(Category.id)
    form_excluded_columns = [
        'children',
    ]


admin = Admin(app,
              name=app.config['SITE_NAME'] + u'管理后台',
              template_mode='bootstrap3')

# Setup Flask-Security
user_datastore = SQLAlchemyUserDatastore(db, User, Role)
security = Security(app, user_datastore)


# define a context processor for merging flask-admin's template context into the
# flask-security views.
@security.context_processor
def security_context_processor():
    return dict(admin_base_template=admin.base_template,
                admin_view=admin.index_view,
                h=admin_helpers,
                get_url=url_for)


admin.add_view(UserModelView(User, db.session, u'用户管理'))
admin.add_view(DatasetModelView(Dataset, db.session, u'数据集管理'))
admin.add_view(RoleModelView(Role, db.session, u'权限管理'))
admin.add_view(CategoryView(Category, db.session, u'分类管理'))
Esempio n. 41
0
    def on_model_change(self, form, model, is_created):
        model.generate_slug()
        return super(BaseModelView,
                     self).on_model_change(form, model, is_created)


class AdminView(AdminMixin, ModelView):
    pass


class HomeAdminView(AdminMixin, AdminIndexView):
    pass


class PostAdminView(AdminMixin, BaseModelView):
    form_columns = ['title', 'body', 'tags']


class TagAdminView(AdminMixin, BaseModelView):
    form_columns = ['name', 'posts']


admin = Admin(app, 'FlaskApp', url='/', index_view=HomeAdminView(name='Home'))
admin.add_view(PostAdminView(Post, db.session))
admin.add_view(TagAdminView(Tag, db.session))

### Flask security ###

user_datastore = SQLAlchemyUserDatastore(db, User, Role)
security = Security(app, user_datastore)
Esempio n. 42
0
        if not model.photopath:
            return ''

        return Markup('<img src="%s">' % url_for('static',
                                                 filename=form.thumbgen_filename(model.photopath)))

    column_formatters = {
        'photopath': _list_thumbnail
    }

    # Alternative way to contribute field is to override it completely.
    # In this case, Flask-Admin won't attempt to merge various parameters for the field.
    form_extra_fields = {
        'photopath': form.ImageUploadField('Image',
                                      base_path=file_path,
                                      thumbnail_size=(100, 100, True))
    }


admin = Admin(app, name='学生管理系统', template_mode='bootstrap3')
# Add administrative views here
admin.add_view(ImageView(Student, db.session,name=u'学生管理'))


if __name__ == '__main__':
    app_dir = op.realpath(os.path.dirname(__file__))
    database_path = op.join(app_dir, app.config['DATABASE_FILE'])
    if not os.path.exists(database_path):
        build_sample_db()
    app.run(host='0.0.0.0', port=5010, debug=True)
Esempio n. 43
0
from flask_admin import Admin
from flask_admin.contrib.sqla import ModelView
from app.models import Employee, Post, db

admin = Admin()
admin.add_view(ModelView(Post, db.session))
admin.add_view(ModelView(Employee, db.session))
Esempio n. 44
0
        def test_modal_edit(self):
            # bootstrap 2 - test edit_modal
            app_bs2 = Flask(__name__)
            admin_bs2 = Admin(app_bs2, template_mode="bootstrap2")

            fileadmin_class = self.fileadmin_class()
            fileadmin_args, fileadmin_kwargs = self.fileadmin_args()

            class EditModalOn(fileadmin_class):
                edit_modal = True
                editable_extensions = ('txt', )

            class EditModalOff(fileadmin_class):
                edit_modal = False
                editable_extensions = ('txt', )

            on_view_kwargs = dict(fileadmin_kwargs)
            on_view_kwargs.setdefault('endpoint', 'edit_modal_on')
            edit_modal_on = EditModalOn(*fileadmin_args, **on_view_kwargs)

            off_view_kwargs = dict(fileadmin_kwargs)
            off_view_kwargs.setdefault('endpoint', 'edit_modal_off')
            edit_modal_off = EditModalOff(*fileadmin_args, **off_view_kwargs)

            admin_bs2.add_view(edit_modal_on)
            admin_bs2.add_view(edit_modal_off)

            client_bs2 = app_bs2.test_client()

            # bootstrap 2 - ensure modal window is added when edit_modal is
            # enabled
            rv = client_bs2.get('/admin/edit_modal_on/')
            eq_(rv.status_code, 200)
            data = rv.data.decode('utf-8')
            ok_('fa_modal_window' in data)

            # bootstrap 2 - test edit modal disabled
            rv = client_bs2.get('/admin/edit_modal_off/')
            eq_(rv.status_code, 200)
            data = rv.data.decode('utf-8')
            ok_('fa_modal_window' not in data)

            # bootstrap 3
            app_bs3 = Flask(__name__)
            admin_bs3 = Admin(app_bs3, template_mode="bootstrap3")

            admin_bs3.add_view(edit_modal_on)
            admin_bs3.add_view(edit_modal_off)

            client_bs3 = app_bs3.test_client()

            # bootstrap 3 - ensure modal window is added when edit_modal is
            # enabled
            rv = client_bs3.get('/admin/edit_modal_on/')
            eq_(rv.status_code, 200)
            data = rv.data.decode('utf-8')
            ok_('fa_modal_window' in data)

            # bootstrap 3 - test modal disabled
            rv = client_bs3.get('/admin/edit_modal_off/')
            eq_(rv.status_code, 200)
            data = rv.data.decode('utf-8')
            ok_('fa_modal_window' not in data)
Esempio n. 45
0
flask_app.config['DEBUG'] = True

#swagger config
flask_app.config['SWAGGER_UI_DOC_EXPANSION'] = 'list'
flask_app.config['RESTPLUS_VALIDATE'] = True
flask_app.config['RESTPLUS_MASK_SWAGGER'] = False

blueprint = Blueprint('api', __name__, url_prefix='/api')
api.init_app(blueprint)
#api.add_namespace(blog_posts_namespace)
flask_app.register_blueprint(blueprint)
#---add blueprint ---> bashe khob hala :)

import time

time.sleep(5)

db.app = flask_app
db.init_app(flask_app)
db.create_all()

init_hero()

admin = Admin(flask_app)
admin.add_view(ModelView(User, db.session))
admin.add_view(ModelView(Player_Hero, db.session))
admin.add_view(ModelView(Hero, db.session))

if __name__ == '__main__':
    flask_app.run(host='0.0.0.0', port=5008)
Esempio n. 46
0
    created_at = db.Column(db.Date, default=dt.datetime.utcnow)

    @property
    def serialize(self):
        return {
            'id': self.id,
            'settle_date': str(self.settle_date),
            'currency': self.currency,
            'symbol': self.symbol,
            'type': self.type,
            'price': str(self.price),
            'quantity': str(self.quantity)
        }


admin.add_view(ModelView(Activity, db.session))


def allowed_file(filename):
    return '.' in filename and filename.rsplit(
        '.', 1)[1].lower() in ALLOWED_EXTENSIONS


@app.route('/', methods=['POST'])
def upload_file():
    if request.method == 'POST':
        statement = AccountStatement()
        app.logger.error(request.files)
        files = request.files.getlist("files[]")
        app.logger.error(f"count={len(files)}")
        if len(files) < 1:
Esempio n. 47
0
#coding=utf-8
import os
from flask_script import Manager
from app import create_app
from flask_admin import Admin
from app.admin.views import Setting
from flask_babelex import Babel
from app.models import User,Interviewer,Record


app = create_app(os.getenv('FLASK_CONFIG') or 'default')
manager = Manager(app)
admin = Admin(app,name='后台管理',template_mode='bootstrap3')
babel = Babel(app)



def create_all_tables():
    models = [User,Interviewer,Record]
    for model in models:
        model.create_table(fail_silently=True)
from app.admin.modelviews import UserAdmin,InterAdmin,RecordAdmin

if __name__=='__main__':
    create_all_tables()
    admin.add_view(Setting(name='设置', url='/admin/settings'))
    admin.add_view(UserAdmin(User,name='成员管理'))
    admin.add_view(InterAdmin(Interviewer,name='面试者管理'))
    admin.add_view(RecordAdmin(Record,name='面试记录管理'))
    manager.run()
Esempio n. 48
0
def test_modal_edit():
    # bootstrap 2 - test edit_modal
    app_bs2 = Flask(__name__)
    admin_bs2 = Admin(app_bs2, template_mode="bootstrap2")

    edit_modal_on = MockModelView(Model,
                                  edit_modal=True,
                                  endpoint="edit_modal_on")
    edit_modal_off = MockModelView(Model,
                                   edit_modal=False,
                                   endpoint="edit_modal_off")
    create_modal_on = MockModelView(Model,
                                    create_modal=True,
                                    endpoint="create_modal_on")
    create_modal_off = MockModelView(Model,
                                     create_modal=False,
                                     endpoint="create_modal_off")
    admin_bs2.add_view(edit_modal_on)
    admin_bs2.add_view(edit_modal_off)
    admin_bs2.add_view(create_modal_on)
    admin_bs2.add_view(create_modal_off)

    client_bs2 = app_bs2.test_client()

    # bootstrap 2 - ensure modal window is added when edit_modal is enabled
    rv = client_bs2.get('/admin/edit_modal_on/')
    eq_(rv.status_code, 200)
    data = rv.data.decode('utf-8')
    ok_('fa_modal_window' in data)

    # bootstrap 2 - test edit modal disabled
    rv = client_bs2.get('/admin/edit_modal_off/')
    eq_(rv.status_code, 200)
    data = rv.data.decode('utf-8')
    ok_('fa_modal_window' not in data)

    # bootstrap 2 - ensure modal window is added when create_modal is enabled
    rv = client_bs2.get('/admin/create_modal_on/')
    eq_(rv.status_code, 200)
    data = rv.data.decode('utf-8')
    ok_('fa_modal_window' in data)

    # bootstrap 2 - test create modal disabled
    rv = client_bs2.get('/admin/create_modal_off/')
    eq_(rv.status_code, 200)
    data = rv.data.decode('utf-8')
    ok_('fa_modal_window' not in data)

    # bootstrap 3
    app_bs3 = Flask(__name__)
    admin_bs3 = Admin(app_bs3, template_mode="bootstrap3")

    admin_bs3.add_view(edit_modal_on)
    admin_bs3.add_view(edit_modal_off)
    admin_bs3.add_view(create_modal_on)
    admin_bs3.add_view(create_modal_off)

    client_bs3 = app_bs3.test_client()

    # bootstrap 3 - ensure modal window is added when edit_modal is enabled
    rv = client_bs3.get('/admin/edit_modal_on/')
    eq_(rv.status_code, 200)
    data = rv.data.decode('utf-8')
    ok_('fa_modal_window' in data)

    # bootstrap 3 - test modal disabled
    rv = client_bs3.get('/admin/edit_modal_off/')
    eq_(rv.status_code, 200)
    data = rv.data.decode('utf-8')
    ok_('fa_modal_window' not in data)

    # bootstrap 3 - ensure modal window is added when edit_modal is enabled
    rv = client_bs3.get('/admin/create_modal_on/')
    eq_(rv.status_code, 200)
    data = rv.data.decode('utf-8')
    ok_('fa_modal_window' in data)

    # bootstrap 3 - test modal disabled
    rv = client_bs3.get('/admin/create_modal_off/')
    eq_(rv.status_code, 200)
    data = rv.data.decode('utf-8')
    ok_('fa_modal_window' not in data)
Esempio n. 49
0
    form_edit_rules = ['user_id', 'username', 'user_type']
    form_excluded_columns = ['user_type']

    def create_model(self, form):
        form.password.data = bc.generate_password_hash(form.password.data)
        super().create_model(form)


class VetView(UserView):
    column_exclude_list = UserView.column_exclude_list[:].append('user_type')
    column_list = ['user_id', 'username', 'supervisee', 'field']


class AssistantView(UserView):
    column_exclude_list = UserView.column_exclude_list[:].append('user_type')


class SecretaryView(UserView):
    column_exclude_list = UserView.column_exclude_list[:].append('user_type')


admin = Administrator(app, index_view=AdminView())
admin.add_view(UserView(User, db.session))
admin.add_view(VetView(Vet, db.session))
admin.add_view(AssistantView(Assistant, db.session))
admin.add_view(SecretaryView(Secretary, db.session))

for name, obj in inspect.getmembers(dmodels, inspect.isclass):
    if name != 'datetime':
        admin.add_view(ModelView(obj, db.session))
Esempio n. 50
0
def create_app(conf_name):
    app = Flask(__name__, instance_relative_config=True)
    app.config.from_object(app_config[conf_name])
    app.config.from_pyfile('config.py')

    @app.errorhandler(404)
    def page_not_found(e):
        return render_template('404.html'), 404

    db.init_app(app)


    # @app.route('/')
    # def hello_world():
    #     conf_var = app.config
    #     return render_template('index.html',conf=conf_var)

    migrate = Migrate(app, db)
    from app import models

    #### Admin
    class AdminMixin:
        def is_accessible(self):
            # return current_user.has_role('admin')
            return True

        def inaccessible_callback(self, name, **kwargs):
            return redirect(url_for('security.login', next=request.url))

    class BaseModelView(ModelView):
        def on_model_change(self, form, model, is_created):
            model.generate_slug()
            return super(BaseModelView, self).on_model_change(form, model, is_created)

    class PostAdminView(AdminMixin,BaseModelView):
        # ограничение количества отображаемых аттрибутов
        form_columns = ['title', 'body', 'tags']

    class TagAdminView(AdminMixin,BaseModelView):
        form_columns = ['name']


    class HomeAdminView(AdminMixin, AdminIndexView):
        pass


    admin = Admin(app, 'FlaskApp', url='/',index_view=HomeAdminView(name='Home'))
    admin.add_view(PostAdminView(models.Post,db.session))
    admin.add_view(TagAdminView(models.Tag,db.session))

    ### Flask Security
    user_datastore = SQLAlchemyUserDatastore(db, models.User, models.Role)
    security = Security(app, user_datastore)

    from .home import home as home_blueprint
    app.register_blueprint(home_blueprint)

    from .posts import posts as posts_blueprint
    app.register_blueprint(posts_blueprint, url_prefix='/blog')

    return app
Esempio n. 51
0
    def symptoms(self):
        mysymptoms = list(self.disease_symptoms.split(','))
        #print mysymptoms
        return mysymptoms

    def cure(self):
        mycure = list(self.disease_cure.split(','))
        return mycure

    #def __init__(self, disease_name, cure, *symptoms):
    #	self.disease_name = disease_name
    #	self.disease_symptoms = str(symptoms)
    #	self.disease_cure = cure


admin.add_view(ModelView(User, db.session))
admin.add_view(ModelView(Query, db.session))
admin.add_view(ModelView(Diseases, db.session))
admin.add_view(ModelView(Issue, db.session))
admin.add_view(ModelView(Message, db.session))


@app.errorhandler(404)
def page_not_found(e):
    return render_template('404.html'), 404


@app.errorhandler(500)
def internal_server_error(e):
    return render_template('500.html'), 500
Esempio n. 52
0
from flask import Flask

from flask_migrate import Migrate

from restoran.config import Config
from restoran.models import db

from flask_admin import Admin
from flask_admin.contrib.sqla import ModelView

app = Flask(__name__)
app.config.from_object(Config)

db.init_app(app)
migrate = Migrate(app, db)

from restoran.views import *

admin = Admin(app)

admin.add_view(MyUserView(User, db.session))
admin.add_view(MyUserView(Meal, db.session))
admin.add_view(MyUserView(Category, db.session))
admin.add_view(MyUserView(Order, db.session))
Esempio n. 53
0
    subtitle = db.Column(db.String(50))
    author = db.Column(db.String(20))
    date_posted = db.Column(db.DateTime)
    content = db.Column(db.Text)

    def __unicode_(self):
        return self.name


class MyAdminIndexView(AdminIndexView):
    def is_accessible(self):
        return current_user.is_authenticated


admin = Admin(app, index_view=MyAdminIndexView())
admin.add_view(ModelView(Blogpost, db.session))


@app.route('/')
def index():
    posts = Blogpost.query.order_by(Blogpost.date_posted.desc()).limit(3).all()

    return render_template('index.html', posts=posts)


@app.route('/olderposts')
def olderposts():
    posts = Blogpost.query.order_by(Blogpost.date_posted.desc()).all()

    return render_template('olderposts.html', posts=posts)
Esempio n. 54
0
def create_app(config_class=Config):
    app = Flask(__name__)
    app.config.from_object(config_class)

    db.init_app(app)
    migrate.init_app(app, db, render_as_batch=True)
    login.init_app(app)
    mail.init_app(app)
    bootstrap.init_app(app)
    moment.init_app(app)
    babel.init_app(app)
    csrf.init_app(app)
    admin = Admin()
    admin.init_app(app)
    socketio.init_app(app, cors_allowed_origins='*')
    admin.add_view(AdminView(models.User, db.session))
    admin.add_view(AdminView(models.Post, db.session))
    admin.add_view(AdminView(models.Test, db.session))

    from app.errors import bp as errors_bp
    app.register_blueprint(errors_bp)

    from app.auth import bp as auth_bp
    app.register_blueprint(auth_bp, url_prefix='/auth')

    from app.main import bp as main_bp
    app.register_blueprint(main_bp)

    from app.mice import bp as mice_bp
    app.register_blueprint(mice_bp, url_prefix='/mice')

    from app.data import bp as data_bp
    app.register_blueprint(data_bp, url_prefix='/data')

    if not app.debug and not app.testing:
        if app.config['MAIL_SERVER']:
            auth = None
            if app.config['MAIL_USERNAME'] or app.config['MAIL_PASSWORD']:
                auth = (app.config['MAIL_USERNAME'],
                        app.config['MAIL_PASSWORD'])
            secure = None
            if app.config['MAIL_USE_TLS']:
                secure = ()
            mail_handler = SMTPHandler(
                mailhost=(app.config['MAIL_SERVER'], app.config['MAIL_PORT']),
                fromaddr='no-reply@' + app.config['MAIL_SERVER'],
                toaddrs=app.config['ADMINS'],
                subject='Match Failure',
                credentials=auth,
                secure=secure)
            mail_handler.setLevel(logging.ERROR)
            app.logger.addHandler(mail_handler)

        if app.config['LOG_TO_STDOUT']:
            stream_handler = logging.StreamHandler()
            stream_handler.setLevel(logging.INFO)
            app.logger.addHandler(stream_handler)
        else:
            if not os.path.exists('logs'):
                os.mkdir('logs')
            file_handler = RotatingFileHandler('logs/match.log',
                                               maxBytes=10240,
                                               backupCount=10)
            file_handler.setFormatter(
                logging.Formatter('%(asctime)s %(levelname)s: %(message)s '
                                  '[in %(pathname)s:%(lineno)d]'))
            file_handler.setLevel(logging.INFO)
            app.logger.addHandler(file_handler)

        app.logger.setLevel(logging.INFO)
        app.logger.info('Match startup')

        with app.app_context():
            if db.engine.url.drivername == 'sqlite':
                migrate.init_app(app, db, render_as_batch=True)
            else:
                migrate.init_app(app, db)

    return app
Esempio n. 55
0
    form_columns = ['cid', 'name', 'students', 'professor']


class ProfessorAmin(sqla.ModelView):
    column_display_pk = True
    form_columns = ['pid', 'name', 'email', 'username', 'password']


class StudentAdmin(sqla.ModelView):
    #to display primary key 3shan hwa fl framework de msh bydisplay el pk
    column_display_pk = True
    form_columns = ['sid', 'name']


#init el view
admin.add_view(CourseAdmin(Course, db.session))
admin.add_view(ProfessorAmin(Professor, db.session))
admin.add_view(StudentAdmin(Student, db.session))
admin.add_view(ReportAdmin(Report, db.session))


def professor_json(professor):
    courses = Course.query.filter_by(professor=professor)
    course_array = []
    for course in courses:
        course_array.append({"cid": course.cid, "name": course.name})
    return jsonify({
        'name': professor.name,
        'pid': professor.pid,
        'courses': course_array
    })
Esempio n. 56
0
from .model_view import WebSiteModelView, SiteTypeModelView, ArticleModelView, ArticleTagModelView


class AdminView(AdminIndexView):
    def is_accessible(self):
        return current_user and current_user.is_authenticated and current_user.is_admin

    def inaccessible_callback(self, name, **kwargs):
        print 111
        abort(404)


admin = Admin(name='InfoSub Admin',
              template_mode='bootstrap3',
              index_view=AdminView())
admin.add_view(
    UserModelView(User, db.session, name="User", endpoint="user_admin"))
admin.add_view(
    PlanModelView(UserPlan, db.session, name="Plan", endpoint="plan_admin"))

admin.add_view(
    WebSiteModelView(WebSite,
                     db.session,
                     name="Site",
                     endpoint="site_admin",
                     category="Site"))
admin.add_view(
    SiteTypeModelView(SiteType,
                      db.session,
                      name="Type",
                      endpoint="site_type_admin",
                      category="Site"))
Esempio n. 57
0
from app import app, db
from models import *
from flask_admin import Admin
from flask_admin.contrib.sqla import ModelView

admin = Admin(app)

admin.add_view(ModelView(Member, db.session))
admin.add_view(ModelView(Tech, db.session))
admin.add_view(ModelView(Project, db.session))
admin.add_view(ModelView(Section, db.session))
admin.add_view(ModelView(SocialMediaLink, db.session))
Esempio n. 58
0
from flask import Flask
from config import Configuration
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate, MigrateCommand
from flask_script import Manager

from flask_admin import Admin
from flask_admin.contrib.sqla import ModelView

app = Flask(__name__)
app.config.from_object(Configuration)

db = SQLAlchemy(app)

migrate = Migrate(app, db)
manager = Manager(app)
manager.add_command('db', MigrateCommand)

from models import Article, Tag, Category

admin = Admin(app)
admin.add_view(ModelView(Article, db.session))
admin.add_view(ModelView(Tag, db.session))
admin.add_view(ModelView(Category, db.session))
Esempio n. 59
0
                                 url_relative_path="upload/images/",
                                 thumbnail_size=(100, 100, True))
    }


# Flask views
@app.route('/')
def index():

    return "<a href='/admin/'>Click me to get to Admin!</a>"


@app.before_first_request
def build_sample_db():

    db.drop_all()
    db.create_all()


# Create admin
admin = Admin(app, "Example: Multiple Upload", template_mode="bootstrap3")

# Add views
admin.add_view(
    ModelViewHasMultipleFileAndImage(ModelHasMultipleFileAndImage, db.session))

if __name__ == "__main__":

    # Start app
    app.run(debug=True)
Esempio n. 60
0
from flask_admin import Admin

from admin import InvoiceAdmin, StaticFileAdmin, ModelView, CommonAdmin
from app import app, db
from models import Invoice, User, Entity

app.config['FLASK_ADMIN_SWATCH'] = 'slate'
admin = Admin(
    app, name='InvoiceManager', template_mode='bootstrap3',
)
admin.add_view(InvoiceAdmin(Invoice, db.session))
admin.add_view(ModelView(User, db.session))
admin.add_view(CommonAdmin(Entity, db.session))
admin.add_view(StaticFileAdmin(app.config['STATIC_DIR'], '/static/', name='Static Files'))

if __name__ == '__main__':
    app.run(debug=True)