From c10aedd4dc432f6069fa668e108c352c10a96bd5 Mon Sep 17 00:00:00 2001 From: richard-dds Date: Wed, 13 Nov 2019 16:58:28 -0500 Subject: [PATCH] Override flask's url_for --- atst/app.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) 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