mirror of https://git.48k.eu/ogcp
views: add update center
add view to update center data such as its name or comment.master
parent
a609ede7a8
commit
6ec26d161e
|
@ -168,6 +168,7 @@ class ImageUpdateForm(FlaskForm):
|
|||
class CenterForm(FlaskForm):
|
||||
server = SelectField(label=_l('Server'),
|
||||
validators=[InputRequired()])
|
||||
center = HiddenField()
|
||||
name = StringField(label=_l('Center name'),
|
||||
validators=[InputRequired()])
|
||||
comment = StringField(label=_l('Comment'))
|
||||
|
|
|
@ -54,6 +54,8 @@
|
|||
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
|
||||
<input class="btn btn-light dropdown-item {% block nav_center_add %}{% endblock %}" type="submit" value="{{ _('Add center') }}"
|
||||
form="scopesForm" formaction="{{ url_for('action_center_add') }}" formmethod="get">
|
||||
<input class="btn btn-light dropdown-item {% block nav_center_update %}{% endblock %}" type="submit" value="{{ _('Update center') }}"
|
||||
form="scopesForm" formaction="{{ url_for('action_center_update') }}" formmethod="get">
|
||||
<input class="btn btn-light dropdown-item {% block nav_center_delete %}{% endblock %}" type="submit" value="{{ _('Delete center') }}"
|
||||
form="scopesForm" formaction="{{ url_for('action_center_delete') }}" formmethod="get">
|
||||
</div>
|
||||
|
|
|
@ -1897,6 +1897,52 @@ def action_center_add():
|
|||
return render_template('actions/add_center.html', form=form,
|
||||
scopes=scopes)
|
||||
|
||||
@app.route('/action/center/update', methods=['GET', 'POST'])
|
||||
@login_required
|
||||
def action_center_update():
|
||||
form = CenterForm(request.form)
|
||||
if request.method == 'POST':
|
||||
payload = {"id": int(form.center.data),
|
||||
"name": form.name.data,
|
||||
"comment": form.comment.data}
|
||||
server = get_server_from_ip_port(form.server.data)
|
||||
r = server.post('/center/update', payload)
|
||||
if r.status_code != requests.codes.ok:
|
||||
flash(_('Server replied with error code when updating the center'),
|
||||
category='error')
|
||||
else:
|
||||
flash(_('Center updated successfully'), category='info')
|
||||
return redirect(url_for("scopes"))
|
||||
else:
|
||||
params = request.args.to_dict()
|
||||
server = params.get('scope-server')
|
||||
center = params.get('scope-center')
|
||||
if not server:
|
||||
flash(_('Internal error: server was not sent as request argument'),
|
||||
category='error')
|
||||
return redirect(url_for("scopes"))
|
||||
if not center:
|
||||
flash(_('Please, select one center'), category='error')
|
||||
return redirect(url_for("scopes"))
|
||||
|
||||
server = get_server_from_ip_port(server)
|
||||
|
||||
form.server.choices = [(server.ip + ':' + str(server.port), server.name)]
|
||||
form.server.render_kw = {'readonly': True}
|
||||
form.center.data = center
|
||||
|
||||
payload = {"id": int(center)}
|
||||
r = server.get('/center/info', payload)
|
||||
if r.status_code != requests.codes.ok:
|
||||
return ogserver_error('scopes')
|
||||
form.comment.data = r.json()['comment']
|
||||
form.name.data = r.json()['name']
|
||||
|
||||
scopes, clients = get_scopes()
|
||||
form.submit.render_kw = {"formaction": url_for('action_center_update')}
|
||||
return render_template('actions/center_update.html', form=form,
|
||||
scopes=scopes)
|
||||
|
||||
def get_scope_context_rec(elem_id, elem_type, scopes, ancestors):
|
||||
if not scopes:
|
||||
return ([], None)
|
||||
|
|
Loading…
Reference in New Issue