aboutsummaryrefslogtreecommitdiff
path: root/src/hydrilla/proxy/web_ui/repos.py
diff options
context:
space:
mode:
authorWojtek Kosior <koszko@koszko.org>2022-08-18 13:40:16 +0200
committerWojtek Kosior <koszko@koszko.org>2022-09-28 12:54:22 +0200
commit2579081df2a568192887d776a6965af323b7c4ee (patch)
tree12491e0ee11568a09891f4d261e9cba60e8a8d52 /src/hydrilla/proxy/web_ui/repos.py
parentc242a5833d41fdcee6e2b35cff7af8d445b44946 (diff)
downloadhaketilo-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.py33
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()