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