diff --git a/hiboo/profile/admin.py b/hiboo/profile/admin.py index d81891f3ea6ae2e0c1220f35c271cd0c860a17d8..78fc7c0fe00666db95fc536e321a588a3c55310c 100644 --- a/hiboo/profile/admin.py +++ b/hiboo/profile/admin.py @@ -42,8 +42,6 @@ def details(profile_uuid): @security.confirmation_required("change the profile status") @security.admin_required() def set_status(profile_uuid, status): - if status not in (models.Profile.ACTIVE, models.Profile.BLOCKED): - flask.abort(403) profile = models.Profile.query.get(profile_uuid) or flask.abort(404) profile.transition = status models.log( @@ -61,6 +59,17 @@ def set_status(profile_uuid, status): return flask.redirect(flask.url_for(".details", profile_uuid=profile_uuid)) +@blueprint.route("/transition/<profile_uuid>", methods=["GET", "POST"]) +@security.admin_required() +def complete_transition(profile_uuid): + profile = models.Profile.query.get(profile_uuid) or flask.abort(404) + profile.status = profile.transition + profile.transition = None + models.db.session.commit() + flask.flash(_("Profile status change was completed"), "success") + return flask.redirect(flask.url_for(".details", profile_uuid=profile_uuid)) + + @blueprint.route("/assign/<profile_uuid>", methods=["GET", "POST"]) @security.admin_required() def assign(profile_uuid): diff --git a/hiboo/profile/templates/profile_list.html b/hiboo/profile/templates/profile_list.html index 347d80d270243f5d6b1b878161c1073b9a28b98f..ec9436e60b619ca808a17e07af68ae40dd44195e 100644 --- a/hiboo/profile/templates/profile_list.html +++ b/hiboo/profile/templates/profile_list.html @@ -53,6 +53,7 @@ {% elif profile.status == "unclaimed" %} <a href="{{ url_for("profile.assign", profile_uuid=profile.uuid) }}">{% trans %}Assign profile{% endtrans %}</a> {% endif %} + <a href="{{ url_for("profile.set_status", profile_uuid=profile.uuid, status="deleted") }}">{% trans %}Delete profile{% endtrans %}</a> </td> </tr> {% endfor %} diff --git a/hiboo/templates/macros.html b/hiboo/templates/macros.html index d3ce4771c66831ad69ccad2ec192a09faebd9d5e..6450780b7c014c299f73ed975e15e1d1c9cd8ad6 100644 --- a/hiboo/templates/macros.html +++ b/hiboo/templates/macros.html @@ -38,6 +38,7 @@ {% set transition = profile.STATUSES[profile.transition] %} <i class="fa fa-arrow-right"></i> <span class="badge bg-{{ transition[0] }}">{{ transition[1] }}</span> + (<a href="{{ url_for("profile.complete_transition", profile_uuid=profile.uuid) }}">{% trans %}complete manually{% endtrans %}</a>) {% endif %} {% endmacro %}