diff --git a/mo/web/org_round.py b/mo/web/org_round.py
index 5de37170833f01334ee05a88014203117fa7282d..e6fa946d32ebd1382b2857cb1a47961035a241bf 100644
--- a/mo/web/org_round.py
+++ b/mo/web/org_round.py
@@ -8,13 +8,11 @@ import bleach
 from bleach.sanitizer import ALLOWED_TAGS
 import markdown
 import os
-from sqlalchemy import func
-from sqlalchemy.orm import joinedload, aliased
-from sqlalchemy.sql.functions import coalesce
+from sqlalchemy.orm import joinedload
 from typing import Optional, List, Dict, Tuple, Set
 import werkzeug.exceptions
 import wtforms
-from wtforms import validators, ValidationError
+from wtforms import validators
 from wtforms.widgets.html5 import NumberInput
 
 import mo.config as config
diff --git a/mo/web/templates/user_contest.html b/mo/web/templates/user_contest.html
index 805ce489af24046c76510183724317db01f144cd..4157c5107ab8c9829715e532e234e69974a5d768 100644
--- a/mo/web/templates/user_contest.html
+++ b/mo/web/templates/user_contest.html
@@ -4,7 +4,7 @@
 {% set state = contest.ct_state() %}
 
 {% block head %}
-{% if contest.round.has_messages %}
+{% if round.has_messages %}
 	<script src="{{ asset_url('js/news-reloader.js') }}" type="text/javascript"></script>
 {% endif %}
 {% endblock %}
@@ -69,29 +69,33 @@ Pokud si s tvorbou PDF nevíte rady, zkuste se podívat do <a href='https://docs
 
 {% elif state == RoundState.grading %}
 <p>Odevzdávání bylo ukončeno. Vyčkejte prosím, až úlohy opravíme.
-{% elif state == RoundState.closed %}
+{% elif state in [RoundState.graded, RoundState.closed] %}
 <p>Soutěžní kolo bylo ukončeno, níže si můžete prohlédnout svá ohodnocená a okomentovaná řešení.
-{% if contest.ct_state() == RoundState.closed and contest.scoretable_id %}
+{% if contest.scoretable_id %}
 Také je již zveřejněna <strong><a href="{{ url_for('user_contest_score', id=contest.contest_id) }}">výsledková listina</a></strong>.
 {% endif %}
+<p>Během několika dnů očekávejte uzavření kola{% if not contest.scoretable_id %}a zveřejnění oficiálních výsledkových listin{% endif %}.
+{% if state == RoundState.graded %}
+<p>Pokud máte k opravě úloh připomínky, ozvěte se prosím organizátorům tohoto kola.
+{% endif %}
 {% else %}
 <p>Soutěž se nachází v neznámém stavu. To by se nemělo stát :)
 {% endif %}
 
 {% if state != RoundState.preparing %}
 
+<h3>Úlohy</h3>
+
 {% if contest.ct_task_statement_available() %}
 <p>Můžete si stáhnout <a href='{{ url_for('user_task_statement', id=contest.contest_id) }}'>zadání úloh</a>.
 {% endif %}
 
-<h3>Úlohy</h3>
-
 <table class="table table-bordered table-hover">
 	<thead>
 		<tr>
 			<th>Úloha
 			<th>Odevzdáno
-		{% if state == RoundState.closed %}
+		{% if state in [RoundState.graded, RoundState.closed] %}
 			<th>Opraveno
 			<th>Body
 		{% endif %}
@@ -112,7 +116,7 @@ Také je již zveřejněna <strong><a href="{{ url_for('user_contest_score', id=
 		{% else %}
 			<td>
 		{% endif %}
-		{% if state == RoundState.closed %}
+		{% if state in [RoundState.graded, RoundState.closed] %}
 			<td>
 				{% if sol.final_feedback_obj %}
 				<a href='{{ url_for('user_paper', contest_id=contest.contest_id, paper_id=sol.final_feedback_obj.paper_id) }}'>
diff --git a/mo/web/templates/user_contest_task.html b/mo/web/templates/user_contest_task.html
index dfb63792cc85ff5f0de2648a75644d3ac892b339..1d4676a1f34ec1e5bc9dc77841b0a159b79c521b 100644
--- a/mo/web/templates/user_contest_task.html
+++ b/mo/web/templates/user_contest_task.html
@@ -58,7 +58,7 @@
 <p>Žádné řešení k této úloze nebylo odevzdáno.</p>
 {% elif state == RoundState.grading %}
 <p>Odevzdávání bylo ukončeno. Vyčkejte prosím, až úlohu opravíme.
-{% elif state == RoundState.closed %}
+{% elif state in [RoundState.graded, RoundState.closed] %}
 <h3>Výsledky</h3>
 <p>Soutěžní kolo bylo ukončeno a úloha opravena a ohodnocena.
 
@@ -80,7 +80,7 @@
 <h3>Historie vašich řešení</h3>
 
 {% if papers %}
-	{% if state == RoundState.closed and papers|length > 1 %}
+	{% if state in [RoundState.graded, RoundState.closed] and papers|length > 1 %}
 	<p>Podbarvením je zvýrazněno řešení, podle kterého vám byly přiděleny body.</p>
 	{% endif %}
 
@@ -95,7 +95,7 @@
 			<th>Akce
 	<tbody>
 {% for p in papers %}
-		<tr{% if state == RoundState.closed and papers|length > 1 and p.paper_id == sol.final_submit %} class="sol-active"{% endif %}>
+		<tr{% if state in [RoundState.graded, RoundState.closed] and papers|length > 1 and p.paper_id == sol.final_submit %} class="sol-active"{% endif %}>
 			<td>{{ p.uploaded_at|timeformat }}
 			<td>{% if p.is_broken() %}nekorektní PDF{% else %}{{ p.pages|or_dash }}{% endif %}
 			<td>{{ p.bytes|or_dash }}
diff --git a/mo/web/templates/user_index.html b/mo/web/templates/user_index.html
index fb74e4d25a2f8e8aef69c16fa042efa3b5a74d65..997b4302c07fbea71dde6201c169c38a238757ff 100644
--- a/mo/web/templates/user_index.html
+++ b/mo/web/templates/user_index.html
@@ -30,13 +30,13 @@
 						Odevzdat řešení
 					{% elif state == RoundState.grading %}
 						Odevzdaná řešení
-					{% elif state == RoundState.closed %}
+					{% elif state in [RoundState.graded, RoundState.closed] %}
 						Prohlédnout opravy
 					{% else %}
 						Detail kola
 					{% endif %}
 					</a>
-					{% if contest.ct_state() == RoundState.closed and contest.scoretable_id %}
+					{% if contest.ct_state() in [RoundState.graded, RoundState.closed] and contest.scoretable_id %}
 					<a class='btn btn-xs btn-success' href="{{ url_for('user_contest_score', id=contest.contest_id) }}">Výsledková listina</a>
 					{% endif %}
 			{% endfor %}
diff --git a/mo/web/user.py b/mo/web/user.py
index 62a88d5cfcca82ab32ac5e0b5e951fbddf28be09..93a21b40311aeee80e6907b26473885636835e00 100644
--- a/mo/web/user.py
+++ b/mo/web/user.py
@@ -479,9 +479,9 @@ def user_paper(contest_id: int, paper_id: int):
         raise werkzeug.exceptions.Forbidden()
 
     if paper.type == db.PaperType.solution:
-        allowed_states = [db.RoundState.running, db.RoundState.grading, db.RoundState.closed]
+        allowed_states = [db.RoundState.running, db.RoundState.grading, db.RoundState.graded, db.RoundState.closed]
     elif paper.type == db.PaperType.feedback:
-        allowed_states = [db.RoundState.closed]
+        allowed_states = [db.RoundState.graded, db.RoundState.closed]
     else:
         assert False
 
@@ -541,7 +541,7 @@ def user_contest_score(id: int):
 
     # Výsledkovku zobrazíme jen pokud je soutěž již ukončená
     state = contest.ct_state()
-    if not contest.scoretable or state != db.RoundState.closed:
+    if not contest.scoretable or state not in [db.RoundState.graded, db.RoundState.closed]:
         raise werkzeug.exceptions.NotFound()
 
     columns, table_rows = scoretable_construct(contest.scoretable, format != "")