From 1e7fce971acd38f072a07cf436d2a94897176be3 Mon Sep 17 00:00:00 2001 From: Javier Sánchez Parra Date: Fri, 14 May 2021 12:36:40 +0200 Subject: Create "Add Center" form and view Creates "add center" form with "name" as required input and "comment" as optional input. In the future, the CenterForm can be used to display center information once such functionality lands in the ogserver. --- ogcp/forms/action_forms.py | 6 ++++++ ogcp/templates/actions/add_center.html | 15 +++++++++++++++ ogcp/templates/scopes.html | 2 ++ ogcp/views.py | 19 ++++++++++++++++++- 4 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 ogcp/templates/actions/add_center.html diff --git a/ogcp/forms/action_forms.py b/ogcp/forms/action_forms.py index 0404e71..2286941 100644 --- a/ogcp/forms/action_forms.py +++ b/ogcp/forms/action_forms.py @@ -113,6 +113,12 @@ class ImageCreateForm(FlaskForm): description = StringField(label=_('Description')) create = SubmitField(label=_('Create')) +class CenterForm(FlaskForm): + name = StringField(label=_('Center name'), + validators=[InputRequired()]) + comment = StringField(label=_('Comment')) + submit = SubmitField(label=_('Submit')) + class RoomForm(FlaskForm): center = SelectField(label=_('Center'), validators=[InputRequired()]) diff --git a/ogcp/templates/actions/add_center.html b/ogcp/templates/actions/add_center.html new file mode 100644 index 0000000..10759c7 --- /dev/null +++ b/ogcp/templates/actions/add_center.html @@ -0,0 +1,15 @@ +{% extends 'base.html' %} +{% import "bootstrap/wtf.html" as wtf %} + +{% block content %} + +

{{_('Add center form')}}

+ +{{ wtf.quick_form(form, + action=url_for('action_center_add'), + method='post', + button_map={'submit': 'primary'}, + extra_classes="mx-5") }} + +{% endblock %} + diff --git a/ogcp/templates/scopes.html b/ogcp/templates/scopes.html index 746acff..934177f 100644 --- a/ogcp/templates/scopes.html +++ b/ogcp/templates/scopes.html @@ -20,6 +20,8 @@ form="scopesForm" formaction="{{ url_for('action_client_add') }}" formmethod="get"> + {% endblock %} diff --git a/ogcp/views.py b/ogcp/views.py index 0505f66..1221478 100644 --- a/ogcp/views.py +++ b/ogcp/views.py @@ -11,7 +11,7 @@ from flask import ( from ogcp.forms.action_forms import ( WOLForm, PartitionForm, NewPartitionForm, ClientDetailsForm, HardwareForm, SessionForm, ImageRestoreForm, ImageCreateForm, SoftwareForm, BootModeForm, - RoomForm, DeleteRoomForm + RoomForm, DeleteRoomForm, CenterForm ) from flask_login import ( current_user, LoginManager, @@ -700,6 +700,23 @@ def action_refresh(): flash(_('Refresh request processed successfully'), category='info') return redirect(url_for("scopes")) +@app.route('/action/center/add', methods=['GET', 'POST']) +@login_required +def action_center_add(): + form = CenterForm(request.form) + if request.method == 'POST': + payload = {"name": form.name.data, + "comment": form.comment.data} + r = g.server.post('/center/add', payload) + if r.status_code != requests.codes.ok: + flash(_('Server replied with error code when adding the center'), + category='error') + else: + flash(_('Center added successfully'), category='info') + return redirect(url_for("scopes")) + else: + return render_template('actions/add_center.html', form=form) + @app.route('/action/room/add', methods=['GET', 'POST']) @login_required def action_room_add(): -- cgit v1.2.3-18-g5258