From 2579081df2a568192887d776a6965af323b7c4ee Mon Sep 17 00:00:00 2001 From: Wojtek Kosior Date: Thu, 18 Aug 2022 13:40:16 +0200 Subject: make it possible to list all repositories in the web UI --- src/hydrilla/proxy/web_ui/repos.py | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) (limited to 'src/hydrilla/proxy/web_ui/repos.py') 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/', 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/', methods=['POST']) +def update_repo(repo_id: str) -> flask.Response: + raise NotImplementedError() -- cgit v1.2.3