diff --git a/ogcp/templates/actions/list_images.html b/ogcp/templates/actions/list_images.html index e2f5633..694036f 100644 --- a/ogcp/templates/actions/list_images.html +++ b/ogcp/templates/actions/list_images.html @@ -6,15 +6,11 @@ {% block content %}

{{_('List images')}}

-{% for r in responses %} - {% set server = r['server']['name']%} - {% set repos = r['repos'] %} - {% for repo in repos.values() %} - {% set repo_name = repo['name'] %} - {% set images = repo['images'] %} - {% if images %} - {{ repo_name }} ({{ server }}) - +{% for server in servers %} +

Server: {{server['name']}}

+ {% for repo, images in server['repos'] %} +

Repo: {{repo}}

+
@@ -27,14 +23,13 @@ {% for img in images %} - - + + {% endfor %}
Name
{{img['name']}}{{img['size'] / 1024 ** 2}}{{img['datasize'] / 1024 ** 2}}{{(img['size'] / 1024 ** 2) |round(2, 'floor')}}{{(img['datasize'] / 1024 ** 2) |round(2, 'floor')}} {{img['modified']}}
- {% endif %} {% endfor %} {% endfor %} diff --git a/ogcp/views.py b/ogcp/views.py index c2be721..cdb1582 100644 --- a/ogcp/views.py +++ b/ogcp/views.py @@ -2516,25 +2516,34 @@ def user_delete_get(): def action_image_list(): params = request.args.to_dict() ids = parse_elements(params) + ids = [int(id) for id in ids if id.isdigit()] + if not ids: + flash(_('Please, select an image'), category='error') + return redirect(url_for('images')) server = get_server_from_ip_port(params['image-server']) - r = server.get('/images') - if not r: - return ogserver_down('images') - if r.status_code != requests.codes.ok: - return ogserver_error('images') - tmp = r.json()['images'] - images = [] - for img in tmp: - if img['id'] in ids: - images.append(img) try: - images = get_images_grouped_by_repos() + responses = get_images_grouped_by_repos() + servers = [] + for server in responses: + repos = [] + for unused, repo in server['repos'].items(): + images=[] + for img in repo['images']: + if int(img['id']) in ids: + images.append(img) + if images: + repos.append((repo['name'], images)) + if repos: + s={} + s['name'] = server['server'].name + s['repos'] = repos + servers.append(s) except ServerError: return ogserver_down('images') except ServerErrorCode: return ogserver_error('images') return render_template('actions/list_images.html', - responses=images) + servers=servers, responses=responses) @app.route('/user/delete', methods=['POST']) @login_required