diff options
author | Javier Sánchez Parra <jsanchez@soleta.eu> | 2021-05-14 12:36:40 +0200 |
---|---|---|
committer | OpenGnSys Support Team <soporte-og@soleta.eu> | 2021-06-30 17:20:17 +0200 |
commit | 1e7fce971acd38f072a07cf436d2a94897176be3 (patch) | |
tree | 033c0679bab0681fffc0e77c7b4d969ff539d05e | |
parent | 42dc44323e4cf0eaf0b563ba02f368942cf86e3d (diff) |
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.
-rw-r--r-- | ogcp/forms/action_forms.py | 6 | ||||
-rw-r--r-- | ogcp/templates/actions/add_center.html | 15 | ||||
-rw-r--r-- | ogcp/templates/scopes.html | 2 | ||||
-rw-r--r-- | ogcp/views.py | 19 |
4 files changed, 41 insertions, 1 deletions
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 %} + +<h1 class="m-5">{{_('Add center form')}}</h1> + +{{ 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"> <input class="btn btn-light" type="submit" value="{{ _('Add room') }}" form="scopesForm" formaction="{{ url_for('action_room_add') }}" formmethod="get"> + <input class="btn btn-light" type="submit" value="{{ _('Add center') }}" + form="scopesForm" formaction="{{ url_for('action_center_add') }}" formmethod="get"> <input class="btn btn-light" type="submit" value="{{ _('Delete room') }}" form="scopesForm" formaction="{{ url_for('action_room_delete') }}" 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(): |