diff options
Diffstat (limited to 'src/hydrilla/proxy/web_ui/packages.py')
-rw-r--r-- | src/hydrilla/proxy/web_ui/packages.py | 35 |
1 files changed, 32 insertions, 3 deletions
diff --git a/src/hydrilla/proxy/web_ui/packages.py b/src/hydrilla/proxy/web_ui/packages.py index 90876aa..d4146a5 100644 --- a/src/hydrilla/proxy/web_ui/packages.py +++ b/src/hydrilla/proxy/web_ui/packages.py @@ -94,7 +94,7 @@ def load_from_disk_post() -> werkzeug.Response: @bp.route('/packages') def packages() -> werkzeug.Response: - store = _app.get_haketilo_state().mapping_version_store() + store = _app.get_haketilo_state().mapping_store() html = flask.render_template( 'packages.html.jinja', @@ -105,11 +105,40 @@ def packages() -> werkzeug.Response: @bp.route('/packages/view/<string:mapping_id>') def show_package(mapping_id: str) -> werkzeug.Response: try: - store = _app.get_haketilo_state().mapping_version_store() - display_info = store.get(mapping_id).get_display_info() + store = _app.get_haketilo_state().mapping_store() + mapping_ref = store.get(str(mapping_id)) + version_display_infos = mapping_ref.get_version_display_infos() + + active_list = [info for info in version_display_infos if info.is_active] + + active_version_ref = None if active_list == [] else active_list[0].ref + active_version_info = None if active_list == [] else active_list[0].info + + display_info = st.MappingDisplayInfo( + ref = mapping_ref, + identifier = version_display_infos[0].info.identifier, + enabled = version_display_infos[0].mapping_enabled, + active_version_ref = active_version_ref, + active_version_info = active_version_info + ) html = flask.render_template( 'packages__show_single.html.jinja', + display_info = display_info, + version_display_infos = version_display_infos + ) + return flask.make_response(html, 200) + except st.MissingItemError: + flask.abort(404) + +@bp.route('/packages/viewversion/<string:mapping_version_id>') +def show_package_version(mapping_version_id: str) -> werkzeug.Response: + try: + store = _app.get_haketilo_state().mapping_version_store() + display_info = store.get(mapping_version_id).get_display_info() + + html = flask.render_template( + 'packages__show_single_version.html.jinja', display_info = display_info ) return flask.make_response(html, 200) |