summaryrefslogtreecommitdiffstats
path: root/python/fatcat_web/editing_routes.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/fatcat_web/editing_routes.py')
-rw-r--r--python/fatcat_web/editing_routes.py39
1 files changed, 23 insertions, 16 deletions
diff --git a/python/fatcat_web/editing_routes.py b/python/fatcat_web/editing_routes.py
index 88fb4557..fb45ca7b 100644
--- a/python/fatcat_web/editing_routes.py
+++ b/python/fatcat_web/editing_routes.py
@@ -50,7 +50,7 @@ def form_editgroup_get_or_create(api, edit_form):
### Views ###################################################################
-def generic_entity_edit(entity_type, edit_template, existing_ident, editgroup_id):
+def generic_entity_edit(editgroup_id, entity_type, existing_ident, edit_template):
"""
existing (entity)
@@ -83,6 +83,11 @@ def generic_entity_edit(entity_type, edit_template, existing_ident, editgroup_id
except ApiException as ae:
abort(ae.status)
+ # check that editgroup is edit-able
+ if editgroup.changelog_index != None:
+ flash("Editgroup already merged")
+ abort(400)
+
# fetch entity (if set) or 404
existing = None
existing_edit = None
@@ -106,10 +111,6 @@ def generic_entity_edit(entity_type, edit_template, existing_ident, editgroup_id
editgroup = form_editgroup_get_or_create(user_api, form)
if editgroup:
- # check that editgroup is edit-able
- if editgroup.changelog_index != None:
- flash("Editgroup already merged")
- abort(400)
if not existing_ident: # it's a create
entity = form.to_entity()
@@ -170,10 +171,14 @@ def generic_entity_edit(entity_type, edit_template, existing_ident, editgroup_id
if not editgroup_id:
form.editgroup_id.data = session.get('active_editgroup_id', None)
+ editor_editgroups = api.get_editor_editgroups(session['editor']['editor_id'], limit=20)
+ potential_editgroups = [e for e in editor_editgroups if e.changelog_index == None and e.submitted == None]
+
return render_template(edit_template, form=form,
- existing_ident=existing_ident, editgroup=editgroup), status
+ existing_ident=existing_ident, editgroup=editgroup,
+ potential_editgroups=potential_editgroups), status
-def generic_edit_delete(entity_type, editgroup_id, edit_id):
+def generic_edit_delete(editgroup_id, entity_type, edit_id):
# fetch editgroup (if set) or 404
editgroup = None
if editgroup_id:
@@ -182,6 +187,11 @@ def generic_edit_delete(entity_type, editgroup_id, edit_id):
except ApiException as ae:
abort(ae.status)
+ # check that editgroup is edit-able
+ if editgroup.changelog_index != None:
+ flash("Editgroup already merged")
+ abort(400)
+
# API on behalf of user
user_api = auth_api(session['api_token'])
@@ -192,32 +202,29 @@ def generic_edit_delete(entity_type, editgroup_id, edit_id):
else:
raise NotImplementedError
except ApiException as ae:
- if ae.status == 404:
- pass
- else:
- abort(ae.status)
+ abort(ae.status)
return redirect("/editgroup/{}".format(editgroup_id))
@app.route('/container/create', methods=['GET', 'POST'])
@login_required
def container_create():
- return generic_entity_edit('container', 'container_create.html', None, None)
+ return generic_entity_edit(None, 'container', None, 'container_create.html')
@app.route('/container/<ident>/edit', methods=['GET', 'POST'])
@login_required
def container_edit(ident):
- return generic_entity_edit('container', 'container_edit.html', ident, None)
+ return generic_entity_edit(None, 'container', ident, 'container_edit.html')
@app.route('/editgroup/<editgroup_id>/container/<ident>/edit', methods=['GET', 'POST'])
@login_required
def container_editgroup_edit(editgroup_id, ident):
- return generic_entity_edit('container', 'container_edit.html', ident, editgroup_id)
+ return generic_entity_edit(editgroup_id, 'container', ident, 'container_edit.html')
-@app.route('/editgroup/<editgroup_id>/container/edit/<edit_id>/delete', methods=['POST', 'DELETE'])
+@app.route('/editgroup/<editgroup_id>/container/edit/<edit_id>/delete', methods=['POST'])
@login_required
def container_edit_delete(editgroup_id, edit_id):
- return generic_edit_delete('container', editgroup_id, edit_id)
+ return generic_edit_delete(editgroup_id, 'container', edit_id)
@app.route('/creator/<ident>/edit', methods=['GET'])
def creator_edit(ident):