diff --git a/mo/web/org_score.py b/mo/web/org_score.py
index 449198745ade1ed7dd2d31684ea07e5a11c408dd..04feb0221e3d54f48a8be5c994bf3356ea4bce43 100644
--- a/mo/web/org_score.py
+++ b/mo/web/org_score.py
@@ -261,6 +261,7 @@ def org_score(round_id: Optional[int] = None, hier_id: Optional[int] = None, ct_
class SetFinalScoretableForm(FlaskForm):
scoretable_id = wtforms.IntegerField()
+ back_url = wtforms.HiddenField()
submit_set_final = wtforms.SubmitField("Zveřejnit")
submit_hide = wtforms.SubmitField("Skrýt")
@@ -323,6 +324,8 @@ def org_score_snapshots(ct_id: int):
flash("Výsledková listina skryta.", "success")
else:
flash("Neznámé ID výsledkové listiny.", "danger")
+ if set_final_form.back_url.data:
+ return redirect(set_final_form.back_url.data)
return redirect(ctx.url_for('org_score_snapshots'))
return render_template(
@@ -382,6 +385,7 @@ def org_score_snapshot(ct_id: int, scoretable_id: int):
'org_score_snapshot.html',
ctx=ctx,
table=table,
+ set_final_form=SetFinalScoretableForm() if ctx.rights.have_right(Right.manage_contest) else None,
scoretable=scoretable,
)
else:
diff --git a/mo/web/templates/org_score_snapshot.html b/mo/web/templates/org_score_snapshot.html
index 5d6b235fec6da8f6a9ba9da73dfe385259dd1e9a..6e432ad181d0df2c7ee95e2155c05c023756d734 100644
--- a/mo/web/templates/org_score_snapshot.html
+++ b/mo/web/templates/org_score_snapshot.html
@@ -11,7 +11,7 @@
{% if ctx.rights.have_right(Right.view_contestants) %}
<div class="btn-group pull-right">
<a class="btn btn-default" href="{{ ctx.url_for('org_score') }}">Aktuální výsledky</a>
- <a class="btn btn-default" href="{{ ctx.url_for('org_score_snapshots') }}">Uložené výsledky</a>
+ <a class="btn btn-default" href="{{ ctx.url_for('org_score_snapshots') }}">Všechny uložené verze</a>
{% if scoretable.pdf_file %}
<a class="btn btn-default" href="{{ ctx.url_for('org_score_snapshot_pdf', scoretable_id=scoretable.scoretable_id) }}">PDF</a>
{% endif %}
@@ -21,9 +21,27 @@
{% block body %}
+{% if set_final_form %}
+<form method="POST" action="{{ ctx.url_for('org_score_snapshots') }}" class="pull-right">
+ {{ set_final_form.csrf_token }}
+ <input type="hidden" name="back_url" value="{{ ctx.url_for('org_score_snapshot', scoretable_id=scoretable.scoretable_id) }}">
+ {% if ctx.contest.scoretable_id == scoretable.scoretable_id %}
+ <input type="submit" name="submit_hide" class="btn btn-danger" value="Zrušit zveřejnění">
+ {% else %}
+ <input type="hidden" name="scoretable_id" value="{{ scoretable.scoretable_id }}">
+ <input type="submit" name="submit_set_final" class="btn btn-primary" value="Zveřejnit tuto verzi">
+ {% endif %}
+</form>
+{% endif %}
+
{% if ctx.rights.have_right(Right.view_contestants) %}
<p>Výsledková listina odpovídající stavu k {{ scoretable.created_at|timeformat }}.
-Lze ji zveřejnit jako oficiální výsledkovou listinu v přehledu všech uložených verzí výsledkových listin pro tuto soutěž.</p>
+{% if scoretable.scoretable_id == ctx.contest.scoretable_id %}
+<strong>Tato verze je zveřejněna jako oficiální výsledková listina.</strong>
+{% else %}
+Tato verze není zveřejněna jako oficiální výsledková listina.
+{% endif %}
+</p>
{% endif %}
<table class='data'>