diff --git a/atst/app.py b/atst/app.py index 5128117f..f4cfe183 100644 --- a/atst/app.py +++ b/atst/app.py @@ -1,7 +1,8 @@ import os +import re from configparser import ConfigParser from redis import StrictRedis -from flask import Flask +from flask import Flask, request, g from unipath import Path from atst.api_client import ApiClient @@ -24,6 +25,8 @@ def make_app(config): ) app.config.update(config) + make_flask_callbacks(app) + db.init_app(app) assets.init_app(app) @@ -32,6 +35,21 @@ def make_app(config): return app +def make_flask_callbacks(app): + @app.before_request + def set_globals(): + g.navigationContext = 'workspace' if re.match('\/workspaces\/[A-Za-z0-9]*', request.url) else 'global' + g.dev = os.getenv("TORNADO_ENV", "dev") == "dev" + g.matchesPath = lambda href: re.match('^'+href, request.url) + g.modalOpen = request.args.get("modal", False) + + # TODO: Make me a macro + def modal(self, body): + return self.render_string( + "components/modal.html.to", + body=body) + + # def make_app(config, deps, **kwargs): # routes = [ # url(r"/", Root, {"page": "root"}, name="root"), @@ -180,6 +198,15 @@ def make_deps(config): ), } +def map_config(config): + return { + "ENV": config["default"]["ENVIRONMENT"], + "DEBUG": config["default"]["DEBUG"], + "PORT": int(config["default"]["PORT"]), + "SQLALCHEMY_DATABASE_URI": config["default"]["DATABASE_URI"], + "SQLALCHEMY_TRACK_MODIFICATIONS": False, + **config["default"] + } def make_config(): BASE_CONFIG_FILENAME = os.path.join(os.path.dirname(__file__), "../config/base.ini") @@ -212,4 +239,4 @@ def make_config(): ) config.set("default", "DATABASE_URI", database_uri) - return config["default"] + return map_config(config) diff --git a/atst/routes/__init__.py b/atst/routes/__init__.py index c6b03baf..93fde8e2 100644 --- a/atst/routes/__init__.py +++ b/atst/routes/__init__.py @@ -1,4 +1,4 @@ -from flask import Blueprint, render_template +from flask import Blueprint, render_template, g bp = Blueprint("atst", __name__) diff --git a/templates/base.html.to b/templates/base.html similarity index 60% rename from templates/base.html.to rename to templates/base.html index 3f0d5995..58c804cb 100644 --- a/templates/base.html.to +++ b/templates/base.html @@ -1,21 +1,21 @@ {# TODO: set this context elsewhere #} {# set context='workspace' #} -{% set context=navigationContext() %} +{% set context=g.navigationContext %}
-