From 5b7b328bea6f829ee0b1a1431e0dfbbf8c07c5e2 Mon Sep 17 00:00:00 2001 From: Martin Mares <mj@ucw.cz> Date: Wed, 6 Oct 2021 19:24:24 +0200 Subject: [PATCH] =?UTF-8?q?Na=20str=C3=A1nku=20=C3=BA=C4=8Dastnick=C3=A9ho?= =?UTF-8?q?=20=C3=BA=C4=8Dtu=20p=C5=99id=C3=A1n=20upgrade=20na=20organiz?= =?UTF-8?q?=C3=A1tora?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mo/web/org_users.py | 18 ++++++++++++++++++ mo/web/templates/org_user.html | 8 ++++++++ 2 files changed, 26 insertions(+) diff --git a/mo/web/org_users.py b/mo/web/org_users.py index aba8b24d..3ef60af3 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 9595d856..9155eb29 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 %} -- GitLab