Beispiel #1
0
def create_app():
    instance_path = path(__file__).abspath().parent / 'instance'
    app = flask.Flask(__name__,
                      instance_path=instance_path,
                      instance_relative_config=True)
    app.config.update(default_config)
    app.config.from_pyfile("settings.py", silent=True)

    sentry.init_app(app)

    app.register_blueprint(views.lists)
    app.register_blueprint(views.flis)
    _my_extensions = app.jinja_options["extensions"] + ["jinja2.ext.do"]
    template_loader = jinja2.ChoiceLoader([
        frame.FrameTemplateLoader(),
        app.create_global_jinja_loader(),
    ])
    app.jinja_options = dict(app.jinja_options,
                             extensions=_my_extensions,
                             loader=template_loader)
    database.initialize_app(app)
    if app.config['DEBUG']:
        files_path = path(app.root_path)
        files_path = flask.safe_join(files_path, "instance/files")
        app.wsgi_app = SharedDataMiddleware(app.wsgi_app, {
            "/static/files": files_path,
        })
    if app.config["HTTP_PROXIED"]:
        from revproxy import ReverseProxied
        app.wsgi_app = ReverseProxied(app.wsgi_app)
    return app
Beispiel #2
0
def create_app(instance_path=None):
    app = flask.Flask(__name__,
                      instance_path=instance_path,
                      instance_relative_config=True)
    app.config.update(default_config)
    app.config.from_pyfile("settings.py", silent=True)
    database.initialize_app(app)
    auth.initialize_app(app)
    participant.initialize_app(app)
    meeting.initialize_app(app)
    printouts.initialize_app(app)
    charts.initialize_app(app)
    return app
Beispiel #3
0
def create_mock_app():
    from manage import create_app
    import database
    app = create_app()
    app.config["TESTING"] = True
    app.config["DATABASE_URI"] = get_testing_db_uri()
    app.config["FRAME_URL"] = None
    database.initialize_app(app)

    with app.test_request_context():
        database.get_session().create_all()

    def app_teardown():
        with app.test_request_context():
            database.get_session().drop_all()

    return app, app_teardown
Beispiel #4
0
def create_mock_app():
    from manage import create_app
    import database
    app = create_app()
    app.config["TESTING"] = True
    app.config["DATABASE_URI"] = get_testing_db_uri()
    app.config["FRAME_URL"] = None
    database.initialize_app(app)

    with app.test_request_context():
        database.get_session().create_all()

    def app_teardown():
        with app.test_request_context():
            database.get_session().drop_all()

    return app, app_teardown
Beispiel #5
0
def create_app():
    import views

    app = flask.Flask(__name__, instance_relative_config=True)
    app.config.update(default_config)
    app.config.from_pyfile('settings.py', silent=True)

    _my_extensions = app.jinja_options["extensions"] + ["jinja2.ext.do"]
    app.jinja_options = dict(app.jinja_options, extensions=_my_extensions)

    database.initialize_app(app)
    views.register_on(app)

    if app.config["HTTP_PROXIED"]:
        from revproxy import ReverseProxied
        app.wsgi_app = ReverseProxied(app.wsgi_app)

    return app
Beispiel #6
0
def create_app():
    import views
    import database

    app = flask.Flask(__name__, instance_relative_config=True)
    app.config.update(default_config)
    app.config.from_pyfile('settings.py', silent=True)

    _my_extensions = app.jinja_options["extensions"] + ["jinja2.ext.do"]
    app.jinja_options = dict(app.jinja_options, extensions=_my_extensions)

    database.initialize_app(app)
    views.register_on(app)

    if app.config["HTTP_PROXIED"]:
        from revproxy import ReverseProxied
        app.wsgi_app = ReverseProxied(app.wsgi_app)

    return app
Beispiel #7
0
def create_app(instance_path=None, config={}):
    app = flask.Flask(__name__,
                      instance_path=instance_path,
                      instance_relative_config=True)
    app.config.update(default_config)
    app.config.from_pyfile("settings.py", silent=True)
    app.config.update(config)

    sentry.init_app(app)
    import logging
    from raven.conf import setup_logging
    from raven.handlers.logging import SentryHandler
    sentry_handler = SentryHandler(sentry.client)
    sentry_handler.setLevel(logging.WARN)
    setup_logging(sentry_handler)

    if app.config['DEBUG']:
        app.wsgi_app = SharedDataMiddleware(app.wsgi_app, {
            "/static/photos": app.config['UPLOADED_PHOTOS_DEST'],
            "/static/files": app.config['UPLOADED_FILES_DEST'],
            "/static/badges": app.config['BADGES_PATH'],
            "/static/printouts": app.config['PRINTOUTS_PATH'],
            "/static/backgrounds": app.config['UPLOADED_BACKGROUNDS_DEST'],
        })

    assets = Environment(app)
    js = Bundle(*BUNDLE_JS, filters='jsmin', output='output/packed.js')
    css = Bundle(*BUNDLE_CSS, filters='cssmin', output='output/packed.css')
    assets.register('packed_js', js)
    assets.register('packed_css', css)

    database.initialize_app(app)
    auth.initialize_app(app)
    participant.initialize_app(app)
    meeting.initialize_app(app)
    printouts.initialize_app(app)
    country.initialize_app(app)
    resolution.initialize_app(app)
    staff.initialize_app(app)
    categories.initialize_app(app)
    update_local_database.initialize_app(app)
    media_participant.initialize_app(app)
    settings.initialize_app(app)

    app.jinja_env.add_extension('jinja2.ext.do')
    app.jinja_env.filters['sag'] = sort_and_group
    app.jinja_env.filters['group_categories_under_parent'] = group_categories_under_parent
    app.jinja_env.filters['count'] = count
    app.jinja_env.filters['sort_by_criteria'] = sort_by_criteria
    app.jinja_env.filters['normalize'] = normalize
    app.jinja_env.filters['registered_date'] = registered_date
    app.jinja_env.filters['dtformat'] = dtformat
    app.jinja_env.filters['string_to_date'] = string_to_date
    app.jinja_env.filters['with_credentials'] = with_credentials
    app.jinja_env.filters['representing'] = representing
    app.jinja_env.filters['decode'] = decode
    app.jinja_env.filters['full_date'] = full_date
    app.jinja_env.filters['groupbyparty'] = groupbyparty
    app.jinja_env.filters['sortvisitorlast'] = sortvisitorlast

    app.context_processor(inject_static_path)
    app.context_processor(css_injector)
    app.context_processor(inject_user)
    app.context_processor(inject_config)

    babel = Babel(app)

    @app.before_request
    def load_user():
        email = flask.session.get('logged_in_email')
        try:
            user = Staff.select().where(data__contains={'email': email}).get()
        except Staff.DoesNotExist:
            user = None
        flask.g.user = user

    @babel.localeselector
    def get_locale():
        return getattr(flask.g, 'locale', 'en')

    @app.route('/ping')
    def ping():
        list(database.find('meeting'))
        return "cites is ok"

    @app.route('/crashme')
    def crashme():
        raise ValueError("Crashing, as requested.")

    return app