summaryrefslogtreecommitdiffstats
path: root/ogcp/views.py
diff options
context:
space:
mode:
authorJavier Hernandez <jhernandez@soleta.eu>2024-02-05 13:11:25 +0100
committerOpenGnSys Support Team <soporte-og@soleta.eu>2024-02-05 13:17:51 +0100
commitd9537005768d6bad3b6ccdc07678217d3be9b9c3 (patch)
treecded5ad7b8e308bcb1e1287733479180d47b8bd3 /ogcp/views.py
parent5c3f700937204ed3431f8e3fc18239f1545b9bfb (diff)
views: Add edit-folder1.1.3-15
Add view to modify folder information such as name
Diffstat (limited to 'ogcp/views.py')
-rw-r--r--ogcp/views.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/ogcp/views.py b/ogcp/views.py
index 9321660..d667e26 100644
--- a/ogcp/views.py
+++ b/ogcp/views.py
@@ -1229,6 +1229,38 @@ def action_folder_delete():
return render_template('actions/folder_delete.html', form=form,
parent="scopes.html", scopes=scopes, ancestors=ancestors, children=children)
+@app.route('/action/folder/update', methods=['GET','POST'])
+def action_folder_update():
+ form = FolderForm(request.form)
+ if request.method == 'POST':
+ payload = {'name': form.name.data,
+ 'id': int(form.folder_id.data)}
+
+ server = get_server_from_ip_port(form.server.data)
+ r = server.post('/folder/update', payload)
+ if r.status_code != requests.codes.ok:
+ flash(_('ogServer: error updating folder'),
+ category='error')
+ else:
+ flash(_('Folder updated successfully'), category='info')
+ return redirect(url_for("scopes"))
+ else:
+ params = request.args.to_dict()
+ folder_id = int(params.get('folder'))
+
+ if not folder_id:
+ flash(_('Please, select a folder to modify'), category='error')
+ return redirect(url_for('scopes'))
+
+ scopes, clients = get_scopes()
+ folder = find_element_scope(folder_id, 'folder', scopes)
+ form.server.data = params['scope-server']
+ form.name.data = folder['name']
+ form.folder_id.data = folder_id
+ form.submit.render_kw = {"formaction": url_for('action_folder_update')}
+ return render_template('actions/folder_update.html', form=form,
+ parent="scopes.html", scopes=scopes)
+
@app.route('/action/folder/add', methods=['GET'])
@login_required
def action_folder_add():
@@ -1884,6 +1916,10 @@ def get_scope_context_rec(elem_id, elem_type, scopes, ancestors):
else:
return ([], None)
+def find_element_scope(elem_id, elem_type, scopes):
+ unused, elem = get_scope_context_rec(elem_id, elem_type, scopes['scope'], [])
+ return elem
+
def get_scope_context(elem_id, elem_type, scopes):
ancestors, elem = get_scope_context_rec(elem_id, elem_type, scopes['scope'], [])
children = {}