diff --git a/atst/app.py b/atst/app.py index 0ba56929..3aed098f 100644 --- a/atst/app.py +++ b/atst/app.py @@ -2,11 +2,12 @@ import os import re from configparser import ConfigParser from datetime import datetime -from flask import Flask, request, g, session +from flask import Flask, request, g, session, url_for as flask_url_for from flask_session import Session import redis from unipath import Path from flask_wtf.csrf import CSRFProtect +from urllib.parse import urljoin from atst.database import db from atst.assets import environment as assets_environment @@ -63,6 +64,7 @@ def make_app(config): make_flask_callbacks(app) register_filters(app) + register_jinja_globals(app) make_csp_provider(app, config.get("CSP", "mock")) make_crl_validator(app) make_mailer(app) @@ -293,3 +295,16 @@ def apply_json_logger(): "root": {"level": "INFO", "handlers": ["wsgi"]}, } ) + +def register_jinja_globals(app): + static_url = app.config.get("STATIC_URL", "/static/") + + def _url_for(endpoint, **values): + if endpoint == "static": + filename = values["filename"] + return urljoin(static_url, filename) + else: + return flask_url_for(endpoint, **values) + + + app.jinja_env.globals["url_for"] = _url_for