diff options
Diffstat (limited to 'lib/server/flask/_app.py')
-rw-r--r-- | lib/server/flask/_app.py | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/lib/server/flask/_app.py b/lib/server/flask/_app.py new file mode 100644 index 0000000..cb2d4c3 --- /dev/null +++ b/lib/server/flask/_app.py @@ -0,0 +1,57 @@ +# python import +import os, logging + +# common gettext import +from gettext import gettext + +# server import +from server import config + +# get APP_NAME or default name +APP_NAME = config.Config().get('activity>name') +APP_NAME = 'my_activity' if APP_NAME is None else APP_NAME + +# get app config values +_debug = config.Config().get('server>debug') +_key = config.Config().get('server>secret_key') + +# our activity root directory relative to the current one +PROJET_ROOT = os.path.join(os.path.dirname(__file__), '..', '..', '..') + +# flask import +import flask + +# init app +app = flask.Flask(__name__) +app.debug = True if _debug is None else _debug +app.secret_key = 'NO_KEY_OOPS' if _key is None else _key +# override jinja template path +app.jinja_loader.searchpath = [os.path.join(PROJET_ROOT, 'templates')] + +# init static folder path +from werkzeug import SharedDataMiddleware +app.wsgi_app = SharedDataMiddleware(app.wsgi_app, + {'/static': os.path.join(PROJET_ROOT, 'static')}) + +# set basic logging out of sugar +try: + import sugar + # get sugar logger + logger = logging.getLogger(APP_NAME) + logger.setLevel(logging.DEBUG) +except Exception: + # .. or flask logger + logger = app.logger + + +def run_app(): + """run method to trigger at from python class. + """ + app.run() + + +def render(template, **context): + """Crappy hack for gettext issue in templates! + """ + context['_'] = gettext + return flask.render_template(template, **context) |