diff options
author | Wojtek Kosior <koszko@koszko.org> | 2022-08-18 13:40:16 +0200 |
---|---|---|
committer | Wojtek Kosior <koszko@koszko.org> | 2022-09-28 12:54:22 +0200 |
commit | 2579081df2a568192887d776a6965af323b7c4ee (patch) | |
tree | 12491e0ee11568a09891f4d261e9cba60e8a8d52 /src/hydrilla/proxy/web_ui/repos.py | |
parent | c242a5833d41fdcee6e2b35cff7af8d445b44946 (diff) | |
download | haketilo-hydrilla-2579081df2a568192887d776a6965af323b7c4ee.tar.gz haketilo-hydrilla-2579081df2a568192887d776a6965af323b7c4ee.zip |
make it possible to list all repositories in the web UI
Diffstat (limited to 'src/hydrilla/proxy/web_ui/repos.py')
-rw-r--r-- | src/hydrilla/proxy/web_ui/repos.py | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/src/hydrilla/proxy/web_ui/repos.py b/src/hydrilla/proxy/web_ui/repos.py index 0f55b2a..d4e81c0 100644 --- a/src/hydrilla/proxy/web_ui/repos.py +++ b/src/hydrilla/proxy/web_ui/repos.py @@ -35,10 +35,41 @@ import typing as t import flask +from .. import state as st +from . import _app + bp = flask.Blueprint('repos', __package__) @bp.route('/repos') def repos() -> flask.Response: - html = flask.render_template('repos.html.jinja') + state = t.cast(_app.WebUIApp, flask.current_app)._haketilo_state + + local_semirepo_info, *repo_infos = state.repo_store().get_display_infos() + + html = flask.render_template( + 'repos.html.jinja', + local_semirepo_info = local_semirepo_info, + display_infos = repo_infos + ) return flask.make_response(html, 200) + +@bp.route('/repos/view/<string:repo_id>', methods=['GET']) +def show_repo(repo_id: str) -> flask.Response: + state = t.cast(_app.WebUIApp, flask.current_app)._haketilo_state + + try: + store = state.repo_store() + display_info = store.get(repo_id).get_display_info() + + html = flask.render_template( + 'repos__show_single.html.jinja', + display_info = display_info + ) + return flask.make_response(html, 200) + except st.MissingItemError: + flask.abort(404) + +@bp.route('/repos/view/<string:repo_id>', methods=['POST']) +def update_repo(repo_id: str) -> flask.Response: + raise NotImplementedError() |