From da9b2ea9c2ef37eb191ba0a9e78e62ce942dc912 Mon Sep 17 00:00:00 2001 From: Javier Sánchez Parra Date: Fri, 3 Sep 2021 14:51:15 +0200 Subject: Add image details action This action is used to visualize the specific details of an image, as its ID, name, size, etc. --- ogcp/views.py | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'ogcp/views.py') diff --git a/ogcp/views.py b/ogcp/views.py index 3e80120..11e3693 100644 --- a/ogcp/views.py +++ b/ogcp/views.py @@ -9,7 +9,7 @@ from flask import ( g, render_template, url_for, flash, redirect, request, jsonify, make_response ) from ogcp.forms.action_forms import ( - WOLForm, SetupForm, ClientDetailsForm, HardwareForm, + WOLForm, SetupForm, ClientDetailsForm, ImageDetailsForm, HardwareForm, SessionForm, ImageRestoreForm, ImageCreateForm, SoftwareForm, BootModeForm, RoomForm, DeleteRoomForm, CenterForm, DeleteCenterForm ) @@ -774,3 +774,27 @@ def images(): r = g.server.get('/images') images = r.json()['images'] return render_template('images.html', images=images) + +@app.route('/action/image/info', methods=['GET']) +@login_required +def action_image_info(): + form = ImageDetailsForm() + ids = parse_elements(request.args.to_dict()) + if not validate_elements(ids, max_len=1): + return redirect(url_for('images')) + + id = ids.pop() + r = g.server.get('/images') + images = r.json()['images'] + image = next(img for img in images if img['id'] == int(id)) + + form.id.data = image['id'] + form.name.data = image['name'] + # Bytes to Gibibytes + form.size.data = image['size'] / 1024 ** 3 + form.datasize.data = image['datasize'] / 1024 ** 3 + form.modified.data = image['modified'] + form.permissions.data = image['permissions'] + form.software_id.data = image['software_id'] + + return render_template('actions/image_details.html', form=form) -- cgit v1.2.3-18-g5258