Adapt Add room to work with several ogServers

This commit makes Add room view to use ogServer field from
scopesForm to send the command to the correct ogServer.
async-tree
Javier Sánchez Parra 2022-08-23 17:03:57 +02:00
parent 0cc65a057d
commit bf4192a5d4
2 changed files with 6 additions and 2 deletions

View File

@ -166,6 +166,7 @@ class DeleteCenterForm(FlaskForm):
submit = SubmitField(label=_l('Submit'))
class RoomForm(FlaskForm):
server = HiddenField()
center = SelectField(label=_l('Center'),
validators=[InputRequired()])
name = StringField(label=_l('Room name'),

View File

@ -1294,10 +1294,11 @@ def action_center_delete():
def action_room_add():
form = RoomForm(request.form)
if request.method == 'POST':
server = get_server_from_ip_port(form.server.data)
payload = {"center": int(form.center.data),
"name": form.name.data,
"netmask": form.netmask.data}
r = g.server.post('/room/add', payload)
r = server.post('/room/add', payload)
if r.status_code != requests.codes.ok:
flash(_('Server replied with error code when adding the room'), category='error')
else:
@ -1308,13 +1309,15 @@ def action_room_add():
if not params.get('scope-center'):
flash(_('Please, select one center'), category='error')
return redirect(url_for('scopes'))
r = g.server.get('/scopes')
server = get_server_from_ip_port(params['scope-server'])
r = server.get('/scopes')
selected_center_id = params['scope-center']
centers = parse_scopes_from_tree(r.json(), 'center')
selected_center = [(center['id'], center['name']) for center in centers
if center['id'] == int(selected_center_id)]
form.center.choices = selected_center
form.center.render_kw = {'readonly': True}
form.server.data = params['scope-server']
scopes, clients = get_scopes()
return render_template('actions/add_room.html', form=form,
scopes=scopes)