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.
multi-ogserver
Javier Sánchez Parra 2021-05-14 12:36:40 +02:00 committed by OpenGnSys Support Team
parent 42dc44323e
commit 1e7fce971a
4 changed files with 41 additions and 1 deletions

View File

@ -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()])

View File

@ -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 %}

View File

@ -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 %}

View File

@ -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():