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 %}