aboutsummaryrefslogtreecommitdiff
path: root/src/hydrilla/proxy/web_ui/root.py
diff options
context:
space:
mode:
authorWojtek Kosior <koszko@koszko.org>2022-08-17 13:50:34 +0200
committerWojtek Kosior <koszko@koszko.org>2022-09-28 12:54:13 +0200
commitd54a95e0f9c689f2bbaaea90a3a16a855a408823 (patch)
tree2fcd758c6eaa7bc65a9744969a506c4ed24e0365 /src/hydrilla/proxy/web_ui/root.py
parent2c98d04e4d4a344dc04a481b039a235678f7848e (diff)
downloadhaketilo-hydrilla-d54a95e0f9c689f2bbaaea90a3a16a855a408823.tar.gz
haketilo-hydrilla-d54a95e0f9c689f2bbaaea90a3a16a855a408823.zip
allow loading packages from zip files through web UI and listing installed mappings
Diffstat (limited to 'src/hydrilla/proxy/web_ui/root.py')
-rw-r--r--src/hydrilla/proxy/web_ui/root.py19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/hydrilla/proxy/web_ui/root.py b/src/hydrilla/proxy/web_ui/root.py
index 194251e..64d6be1 100644
--- a/src/hydrilla/proxy/web_ui/root.py
+++ b/src/hydrilla/proxy/web_ui/root.py
@@ -37,33 +37,36 @@ from threading import Lock
import jinja2
import flask
-from ...translations import smart_gettext as _
+from ...translations import translation as make_translation
+from ... import versions
from .. import state as st
from .. import http_messages
-
from . import repos
from . import packages
+from . import _app
-class WebUIApp(flask.Flask):
+class WebUIAppImpl(_app.WebUIApp):
def __init__(self):
super().__init__(__name__)
self.jinja_options = {
**self.jinja_options,
'loader': jinja2.PackageLoader(__package__),
- 'autoescape': jinja2.select_autoescape()
+ 'autoescape': jinja2.select_autoescape(['html.jinja']),
+ 'extensions': [
+ *self.jinja_options.get('extensions', []),
+ 'jinja2.ext.i18n'
+ ]
}
for blueprint in [repos.bp, packages.bp]:
self.register_blueprint(blueprint)
- _haketilo_state: st.HaketiloState
-
# Flask app is not thread-safe and has to be accompanied by an ugly lock. This
# can cause slow requests to block other requests, so we might need a better
# workaround at some later point.
-app = WebUIApp()
+app = WebUIAppImpl()
app_lock = Lock()
@@ -83,6 +86,8 @@ def process_request(
with app_lock:
app._haketilo_state = state
+ app.jinja_env.install_gettext_translations(make_translation())
+
flask_response = app.test_client().open(
path = path,
base_url = 'https://hkt.mitm.it',