Skip to content
Snippets Groups Projects
Commit 4839bd2b authored by kaiyou's avatar kaiyou
Browse files

Allow for transitions to be cancelled by admins

parent f622f5fb
No related branches found
No related tags found
No related merge requests found
Pipeline #2890 passed
...@@ -47,6 +47,9 @@ ...@@ -47,6 +47,9 @@
{% for transition, (_, _, _, _, label) in profile.transitions(current_user).items() %} {% for transition, (_, _, _, _, label) in profile.transitions(current_user).items() %}
<a href="{{ url_for("profile.start_transition", profile_uuid=profile.uuid, transition=transition) }}">{{ label | capitalize }}</a> <a href="{{ url_for("profile.start_transition", profile_uuid=profile.uuid, transition=transition) }}">{{ label | capitalize }}</a>
{% endfor %} {% endfor %}
{% if profile.transition_step %}
<a href="{{ url_for("profile.cancel_transition", profile_uuid=profile.uuid) }}">{% trans %}Cancel{% endtrans %}</a>
{% endif %}
</td> </td>
</tr> </tr>
{% endfor %} {% endfor %}
......
...@@ -188,7 +188,20 @@ def start_transition(profile_uuid, transition): ...@@ -188,7 +188,20 @@ def start_transition(profile_uuid, transition):
return flask.redirect(flask.url_for(".details", profile_uuid=profile_uuid)) return flask.redirect(flask.url_for(".details", profile_uuid=profile_uuid))
@blueprint.route("/transition/<profile_uuid>", methods=["GET", "POST"]) @blueprint.route("/transition/<profile_uuid>/cancel", methods=["GET", "POST"])
@security.confirmation_required("cancel the profile status change")
@security.admin_required()
def cancel_transition(profile_uuid):
profile = models.Profile.query.get(profile_uuid) or flask.abort(404)
profile.transition = None
profile.transition_step = None
profile.transition_time = None
models.db.session.commit()
flask.flash(_("Profile status change was cancelled"), "success")
return flask.redirect(flask.url_for(".details", profile_uuid=profile_uuid))
@blueprint.route("/transition/<profile_uuid>/complete", methods=["GET", "POST"])
@security.admin_required() @security.admin_required()
def complete_transition(profile_uuid): def complete_transition(profile_uuid):
profile = models.Profile.query.get(profile_uuid) or flask.abort(404) profile = models.Profile.query.get(profile_uuid) or flask.abort(404)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment