def create_app(instance_path=None, testing_config=None): app = flask.Flask(__name__, instance_path=instance_path, instance_relative_config=True) app.config.update(default_config) if testing_config: app.config.update(testing_config) else: app.config.from_pyfile("settings.py", silent=True) # set up users sqlalchemy database if testing_config: users_uri = ''.join([app.config['DATABASE_URI'], app.config['DATABASE_URI_NAME']]) else: users_uri = ''.join([app.config['DATABASE_URI'], instance_path, app.config['DATABASE_URI_NAME']]) engine = create_engine(users_uri) session_factory.configure(autocommit=False, autoflush=False, bind=engine) Base.metadata.bind = engine # initialize blueprints goals.initialize_app(app) targets.initialize_app(app) indicators.initialize_app(app) objectives.initialize_app(app) actions.initialize_app(app) eu_strategy.initialize_app(app) auth.initialize_app(app) mongo.init_app(app) sentry.init_app(app) oid.init_app(app) babel.init_app(app) babel.locale_selector_func = sugar.get_session_language Markdown(app) @app.route('/ping') def ping(): return "nbsap is okay" @app.route('/crashme') def crashme(): raise ValueError("Crashing, as requested.") @app.before_request def before_request(): flask.g.user = None if 'openid' in flask.session: flask.g.user = User.query.filter_by(openid=flask.session ['openid']).first() @app.after_request def after_request(response): db_session.remove() return response return app
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
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