summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJavier Sánchez Parra <jsanchez@soleta.eu>2022-08-23 17:21:22 +0200
committerJavier Sánchez Parra <jsanchez@soleta.eu>2022-08-31 15:57:52 +0200
commit60b773607b4a4f9d9ab4dd8c59aaf8934a9c1071 (patch)
tree07fe6aec407ebd6e056cdd4988edd289ffa8b3bc
parent0e4203cbc09a14f9ffd8b94bc30cad7a92efabf4 (diff)
Adapt Delete room to work with several ogServers
This commit makes Delete room view to use ogServer field from scopesForm to send the command to the correct ogServer.
-rw-r--r--ogcp/forms/action_forms.py1
-rw-r--r--ogcp/views.py7
2 files changed, 6 insertions, 2 deletions
diff --git a/ogcp/forms/action_forms.py b/ogcp/forms/action_forms.py
index 092b93e..93c8075 100644
--- a/ogcp/forms/action_forms.py
+++ b/ogcp/forms/action_forms.py
@@ -176,6 +176,7 @@ class RoomForm(FlaskForm):
submit = SubmitField(label=_l('Submit'))
class DeleteRoomForm(FlaskForm):
+ server = HiddenField()
room = SelectField(label=_l('Room'),
validators=[InputRequired()])
submit = SubmitField(label=_l('Submit'))
diff --git a/ogcp/views.py b/ogcp/views.py
index 8601522..6b10321 100644
--- a/ogcp/views.py
+++ b/ogcp/views.py
@@ -1328,7 +1328,8 @@ def action_room_delete():
form = DeleteRoomForm(request.form)
if request.method == 'POST':
payload = {"id": form.room.data}
- r = g.server.post('/room/delete', payload)
+ server = get_server_from_ip_port(form.server.data)
+ r = server.post('/room/delete', payload)
if r.status_code != requests.codes.ok:
flash(_('Server replied with error code when deleting the room'),
category='error')
@@ -1340,13 +1341,15 @@ def action_room_delete():
if not params.get('scope-room'):
flash(_('Please, select one room'), 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')
rooms = parse_scopes_from_tree(r.json(), 'room')
selected_room_id = params['scope-room']
selected_room = [(room['id'], room['name'] + " (" + room['parent'] + ")")
for room in rooms if room['id'] == int(selected_room_id)]
form.room.choices = selected_room
form.room.render_kw = {'readonly': True}
+ form.server.data = params['scope-server']
scopes, clients = get_scopes()
return render_template('actions/delete_room.html', form=form,
scopes=scopes)