mirror of https://git.48k.eu/ogcp
views: Add update room
Add view to modify room information such as name, gateway and netmaskmaster
parent
d953700576
commit
a609ede7a8
|
@ -180,6 +180,7 @@ class DeleteCenterForm(FlaskForm):
|
|||
|
||||
class RoomForm(FlaskForm):
|
||||
server = HiddenField()
|
||||
room = HiddenField()
|
||||
center = SelectField(label=_l('Center'),
|
||||
validators=[InputRequired()])
|
||||
name = StringField(label=_l('Room name'),
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
{% extends 'scopes.html' %}
|
||||
{% import "bootstrap/wtf.html" as wtf %}
|
||||
|
||||
{% set sidebar_state = 'disabled' %}
|
||||
{% set btn_back = true %}
|
||||
|
||||
{% block nav_room %} active{% endblock %}
|
||||
{% block nav_room_add %} active{% endblock %}
|
||||
{% block content %}
|
||||
|
||||
<h1 class="m-5">{{_('Update room')}}</h1>
|
||||
|
||||
{{ wtf.quick_form(form,
|
||||
method='post',
|
||||
button_map={'submit': 'primary'},
|
||||
extra_classes="mx-5") }}
|
||||
|
||||
{% endblock %}
|
||||
|
|
@ -41,6 +41,8 @@
|
|||
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
|
||||
<input class="btn btn-light dropdown-item {% block nav_room_add %}{% endblock %}" type="submit" value="{{ _('Add room') }}"
|
||||
form="scopesForm" formaction="{{ url_for('action_room_add') }}" formmethod="get">
|
||||
<input class="btn btn-light dropdown-item {% block nav_room_update %}{% endblock %}" type="submit" value="{{ _('Update room') }}"
|
||||
form="scopesForm" formaction="{{ url_for('action_room_update') }}" formmethod="get">
|
||||
<input class="btn btn-light dropdown-item {% block nav_room_delete %}{% endblock %}" type="submit" value="{{ _('Delete room') }}"
|
||||
form="scopesForm" formaction="{{ url_for('action_room_delete') }}" formmethod="get">
|
||||
</div>
|
||||
|
|
|
@ -2008,6 +2008,50 @@ def action_room_add():
|
|||
return render_template('actions/add_room.html', form=form,
|
||||
scopes=scopes)
|
||||
|
||||
@app.route('/action/room/update', methods=['GET', 'POST'])
|
||||
@login_required
|
||||
def action_room_update():
|
||||
form = RoomForm(request.form)
|
||||
if request.method == 'POST':
|
||||
server = get_server_from_ip_port(form.server.data)
|
||||
payload = {"name": form.name.data,
|
||||
"netmask": form.netmask.data,
|
||||
"gateway": form.gateway.data,
|
||||
"id": int(form.room.data)}
|
||||
r = server.post('/room/update', payload)
|
||||
if r.status_code != requests.codes.ok:
|
||||
flash(_('Server replied with error code when updating the room'), category='error')
|
||||
else:
|
||||
flash(_('Room updated successfully'), category='info')
|
||||
return redirect(url_for("scopes"))
|
||||
else:
|
||||
params = request.args.to_dict()
|
||||
room_id = params.get('scope-room')
|
||||
if not room_id:
|
||||
flash(_('Please, select a room to update'), category='error')
|
||||
return redirect(url_for('scopes'))
|
||||
server = get_server_from_ip_port(params['scope-server'])
|
||||
|
||||
del form.center
|
||||
form.server.data = params['scope-server']
|
||||
form.room.data = room_id
|
||||
|
||||
payload = {"id": int(room_id)}
|
||||
r = server.get('/room/info', payload)
|
||||
if not r:
|
||||
return ogserver_down('scopes')
|
||||
if r.status_code != requests.codes.ok:
|
||||
return ogserver_error('scopes')
|
||||
form.name.data = r.json()['name']
|
||||
form.gateway.data = r.json()['gateway']
|
||||
form.netmask.data = r.json()['netmask']
|
||||
|
||||
form.submit.render_kw = {"formaction": url_for('action_room_update')}
|
||||
|
||||
scopes, clients = get_scopes()
|
||||
return render_template('actions/room_update.html', form=form,
|
||||
scopes=scopes)
|
||||
|
||||
@app.route('/action/room/delete', methods=['GET', 'POST'])
|
||||
@login_required
|
||||
def action_room_delete():
|
||||
|
|
Loading…
Reference in New Issue