diff options
| author | Frederick Muriuki Muriithi | 2026-01-07 14:59:26 -0600 |
|---|---|---|
| committer | Frederick Muriuki Muriithi | 2026-01-07 14:59:26 -0600 |
| commit | 873647fc7ecb2f50e228829e3bf8b407e11b58bb (patch) | |
| tree | c0a5be0990b0a5fdb66607ca461127cea9f45896 | |
| parent | 227dfc8e8f68bf0f79a67feed46ce5dbce31b88e (diff) | |
| download | gn-uploader-873647fc7ecb2f50e228829e3bf8b407e11b58bb.tar.gz | |
Extend flask's `render_template` function.
| -rw-r--r-- | uploader/flask_extensions.py | 40 | ||||
| -rw-r--r-- | uploader/templates/base.html | 13 |
2 files changed, 42 insertions, 11 deletions
diff --git a/uploader/flask_extensions.py b/uploader/flask_extensions.py index 30fbad7..83d25aa 100644 --- a/uploader/flask_extensions.py +++ b/uploader/flask_extensions.py @@ -2,19 +2,16 @@ import logging from typing import Any, Optional -from flask import (request, current_app as app, url_for as flask_url_for) +from flask import ( + request, + current_app as app, + url_for as flask_url_for, + render_template as flask_render_template) logger = logging.getLogger(__name__) -def url_for( - endpoint: str, - _anchor: Optional[str] = None, - _method: Optional[str] = None, - _scheme: Optional[str] = None, - _external: Optional[bool] = None, - **values: Any) -> str: - """Extension to flask's `url_for` function.""" +def __fetch_flags__(): flags = {} for flag in app.config["FEATURE_FLAGS_HTTP"]: flag_value = (request.args.get(flag) or request.form.get(flag) or "").strip() @@ -22,12 +19,33 @@ def url_for( flags[flag] = flag_value continue continue + logger.debug("HTTP FEATURE FLAGS: %s", flags) + return flags - logger.debug("HTTP FEATURE FLAGS: %s, other variables: %s", flags, values) + +def url_for( + endpoint: str, + _anchor: Optional[str] = None, + _method: Optional[str] = None, + _scheme: Optional[str] = None, + _external: Optional[bool] = None, + **values: Any) -> str: + """Extension to flask's `url_for` function.""" + logger.debug("other variables: %s", values) return flask_url_for(endpoint=endpoint, _anchor=_anchor, _method=_method, _scheme=_scheme, _external=_external, **values, - **flags) + **__fetch_flags__()) + + +def render_template(template_name_or_list, **context: Any) -> str: + """Extend flask's `render_template` function""" + return flask_render_template( + template_name_or_list, + **{ + **context, + **__fetch_flags__() # override any flag values + }) diff --git a/uploader/templates/base.html b/uploader/templates/base.html index 47c01c8..fd345b9 100644 --- a/uploader/templates/base.html +++ b/uploader/templates/base.html @@ -32,6 +32,19 @@ <nav id="header-nav"> <ul class="nav"> {%if user_logged_in()%} + {%if view_under_construction%} + <li> + <a href="#" + title="User's background jobs."> + <!-- https://icons.getbootstrap.com/icons/back/ --> + <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-back" viewBox="0 0 16 16"> + <path d="M0 2a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v2h2a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-2H2a2 2 0 0 1-2-2zm2-1a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1z"/> + </svg> + Background jobs + </a> + </li> + {%endif%} + <li> <a href="{{url_for('oauth2.logout')}}" title="Log out of the system"> |
