Skip to content
Snippets Groups Projects
Commit 10e196ac authored by Jan Prachař's avatar Jan Prachař
Browse files

Nezobrazovat "Odevzdáno po dozorovém termínu", pokud řešení odevzdal garant

parent 803bd6fb
Branches
No related tags found
No related merge requests found
......@@ -604,14 +604,21 @@ class Paper(Base):
for_user_obj = relationship('User', primaryjoin='Paper.for_user == User.user_id')
uploaded_by_obj = relationship('User', primaryjoin='Paper.uploaded_by == User.user_id')
def check_deadline(self, round: Round) -> Optional[str]:
def check_deadline(self, round: Round, contest: Contest) -> Optional[str]:
# K round se dá dostat přes self.task.round, ale nejspíš to není nakešované.
if self.uploaded_by == self.for_user:
deadline = round.ct_submit_end
suffix = ' účastnickém termínu'
else:
gk = mo.rights.Gatekeeper(self.uploaded_by_obj)
rights = gk.rights_for_contest(contest)
if rights.have_right(mo.rights.Right.upload_submits):
return None
deadline = round.pr_submit_end
suffix = ' dozorovém termínu'
if deadline is not None and self.uploaded_at > deadline:
return timedelta(self.uploaded_at, deadline, descriptive=True) + suffix
else:
......
......@@ -84,7 +84,7 @@ Odkazem v záhlaví se lze dostat na podrobný výpis odevzdání všech účast
{% set sol = tasks_sols[task.task_id][u.user_id] %}
{% if sol.final_submit_obj %}
{% set p = sol.final_submit_obj %}
{% set late = p.check_deadline(round) %}
{% set late = p.check_deadline(round, contest) %}
<td class="{% if late or p.broken %}danger{% else %}success{% endif %}">
<a href="{{ paper_link(u, p) }}" title="{{ p.uploaded_at|timeformat }}{% if p.is_broken() %} – nekorektní PDF{% endif %}{% if p.pages != None %} – {{ p.pages|inflected('stránka', 'stránky', 'stránek') }}{% endif %}{% if late %} – {{ late }}{% endif %}" class="pdf-icon">📄</a>
{% set key = (u.user_id, task.task_id, "solution") %}
......
......@@ -70,7 +70,7 @@ Existuje více než jedna verze řešení, finální je podbarvená.
{% set active_sol_id = None %}
{% endif %}
{% for p in sol_papers %}
{% set late = p.check_deadline(ctx.round) %}
{% set late = p.check_deadline(ctx.round, ctx.contest) %}
<tr{% if p.paper_id == active_sol_id %} class='warning'{% endif %}>
<td{% if late %} class='danger'{% endif %}>{{ p.uploaded_at|timeformat }}
<td>{% if p.is_broken() %}nekorektní PDF{% else %}{{ p.pages|or_dash }}{% endif %}
......
......@@ -57,7 +57,7 @@ finální (ve výchozím stavu poslední nahrané).{% elif rights.can_upload_sol
{% if sol %}
<td>{% if sol.final_submit_obj %}
{% set p = sol.final_submit_obj %}
{% set late = p.check_deadline(round) %}
{% set late = p.check_deadline(round, contest) %}
{% if late %}<span class='text-danger icon' title="{{ late }}"></span>{% endif %}
<a href='{{ paper_link(u, p) }}'>
{{- p.uploaded_at|timeformat }}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment