summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJose M. Guisado <jguisado@soleta.eu>2021-02-16 13:18:38 +0000
committerJose M. Guisado <jguisado@soleta.eu>2021-02-16 13:18:38 +0000
commit199854f1e90335ea37987a58efcde2ee6a3dd38a (patch)
treee75283324f565921cce0972db24c7652e2880acd
parent989dc5bd36959c785ffabab02eade3a0719e6093 (diff)
Start using Flask flash messages
These are used to store a message string that can be later accessed. We can use Flask flash messages to alert about any error or providing info when processing a request.
-rw-r--r--ogcp/templates/base.html15
-rw-r--r--ogcp/views.py19
2 files changed, 25 insertions, 9 deletions
diff --git a/ogcp/templates/base.html b/ogcp/templates/base.html
index 94f4579..4304e42 100644
--- a/ogcp/templates/base.html
+++ b/ogcp/templates/base.html
@@ -12,6 +12,21 @@
<body>
{% include 'nav.html' %}
{% block nav %}{% endblock %}
+ {% block flash %}
+ {% for category, message in get_flashed_messages(with_categories=True) %}
+ {% if category == 'info' %}
+ <div class="alert alert-info alert-dismissible fade show m-1" role="alert">
+ {% elif category == 'error' %}
+ <div class="alert alert-danger alert-dismissible fade show m-1" role="alert">
+ {% endif %}
+ {{ message }}
+ <button type="button" class="close" data-dismiss="alert" aria-label="{{ _('Close') }}">
+ <span aria-hidden="true">&times;</span>
+ </button>
+ </div>
+ {% endfor %}
+ {% endblock %}
+
<div id="content">{% block content %}{% endblock %}</div>
<div id="footer">
{% block footer %}{% endblock %}
diff --git a/ogcp/views.py b/ogcp/views.py
index 14db2dd..d8cc9c4 100644
--- a/ogcp/views.py
+++ b/ogcp/views.py
@@ -1,4 +1,6 @@
-from flask import g, render_template, url_for, redirect, request, jsonify, make_response
+from flask import (
+ g, render_template, url_for, flash, redirect, request, jsonify, make_response
+)
from ogcp.forms.action_forms import (
WOLForm, PartitionForm, ClientDetailsForm, HardwareForm, SessionForm,
ImageRestoreForm, ImageCreateForm, SoftwareForm
@@ -111,10 +113,11 @@ def action_wol():
form = WOLForm(request.form)
if request.method == 'POST' and form.validate():
wol_type = form.wol_type.data
- ips = parse_ips(request.form.to_dict())
- payload = {'type': wol_type, 'clients': list(ips)}
+ ips = form.ips.data.split(' ')
+ payload = {'type': wol_type, 'clients': ips}
g.server.post('/wol', payload)
- return make_response("200 OK", 200)
+ flash(_('Wake On Lan request sent successfully'), category='info')
+ return redirect(url_for("scopes"))
else:
ips = parse_ips(request.args.to_dict())
form.ips.data = " ".join(ips)
@@ -312,11 +315,9 @@ def action_software():
'disk': disk,
'partition': partition})
if r.status_code == requests.codes.ok:
- return make_response(f"Se generĂ³ correctamente el perfil "
- f"software de {ips[0]} D:{disk} "
- f"P:{partition}",
- 200)
-
+ flash(_('Software profile request sent successfully'), category='info')
+ return redirect(url_for("scopes"))
+ flash(_(f'Error processing software profile request: ({r.status})'), category='error')
return make_response("400 Bad Request", 400)
else:
ips = parse_ips(request.args.to_dict())