diff --git a/mo/web/org_users.py b/mo/web/org_users.py index aba8b24da1aa046c1acdc529f9d69e4b9bc4d4fb..3ef60af3fb1e5444181611c33489f5f1b213f65d 100644 --- a/mo/web/org_users.py +++ b/mo/web/org_users.py @@ -266,6 +266,10 @@ class ResendInviteForm(FlaskForm): flash('Tento uživatel už má účet aktivovaný.', 'danger') +class UpgradeToOrgForm(FlaskForm): + upgrade = SubmitField() + + @app.route('/org/org/<int:id>/', methods=('GET', 'POST')) def org_org(id: int): sess = db.get_session() @@ -373,6 +377,19 @@ def org_user(id: int): resend_invite_form.do(user) return redirect(url_for('org_user', id=id)) + upgrade_form: Optional[UpgradeToOrgForm] = None + if rr.can_edit_user: + upgrade_form = UpgradeToOrgForm() + if upgrade_form.upgrade.data and upgrade_form.validate_on_submit(): + try: + mo.users.change_user_to_org(user, reason='web') + sess.commit() + flash('Účet změněn na organizátorský.', 'success') + return redirect(url_for('org_org', id=user.user_id)) + except mo.CheckError as e: + flash(str(e), 'danger') + return redirect(url_for('org_user', id=user.user_id)) + participants = sess.query(db.Participant).filter_by(user_id=user.user_id) participations = ( sess.query(db.Participation, db.Contest, db.Round) @@ -390,6 +407,7 @@ def org_user(id: int): can_incarnate=g.user.is_admin, participants=participants, participations=participations, resend_invite_form=resend_invite_form, + upgrade_form=upgrade_form, ) diff --git a/mo/web/templates/org_user.html b/mo/web/templates/org_user.html index 9595d8566dcee426aad7afa1425c7ab4ee103145..9155eb29c953a2f8fda028848f6c0a1ca34811cc 100644 --- a/mo/web/templates/org_user.html +++ b/mo/web/templates/org_user.html @@ -28,6 +28,14 @@ </button> </form> {% endif %} +{% if upgrade_form %} +<form method=POST class='btn-group' onsubmit='return confirm("Změnit účastnický účet na organizátorský?");'> + {{ upgrade_form.csrf_token }} + <button class="btn btn-default" type='submit' name='upgrade' value='yes'> + Změnit na organizátora + </button> +</form> +{% endif %} {% if g.user.is_admin %} <a class="btn btn-default" href="{{ log_url('user', user.user_id) }}">Historie</a> {% endif %}