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
No related branches found
No related tags found
No related merge requests found
...@@ -604,14 +604,21 @@ class Paper(Base): ...@@ -604,14 +604,21 @@ class Paper(Base):
for_user_obj = relationship('User', primaryjoin='Paper.for_user == User.user_id') for_user_obj = relationship('User', primaryjoin='Paper.for_user == User.user_id')
uploaded_by_obj = relationship('User', primaryjoin='Paper.uploaded_by == 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é. # K round se dá dostat přes self.task.round, ale nejspíš to není nakešované.
if self.uploaded_by == self.for_user: if self.uploaded_by == self.for_user:
deadline = round.ct_submit_end deadline = round.ct_submit_end
suffix = ' účastnickém termínu' suffix = ' účastnickém termínu'
else: 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 deadline = round.pr_submit_end
suffix = ' dozorovém termínu' suffix = ' dozorovém termínu'
if deadline is not None and self.uploaded_at > deadline: if deadline is not None and self.uploaded_at > deadline:
return timedelta(self.uploaded_at, deadline, descriptive=True) + suffix return timedelta(self.uploaded_at, deadline, descriptive=True) + suffix
else: else:
......
...@@ -84,7 +84,7 @@ Odkazem v záhlaví se lze dostat na podrobný výpis odevzdání všech účast ...@@ -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] %} {% set sol = tasks_sols[task.task_id][u.user_id] %}
{% if sol.final_submit_obj %} {% if sol.final_submit_obj %}
{% set p = 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 %}"> <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> <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") %} {% 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á. ...@@ -70,7 +70,7 @@ Existuje více než jedna verze řešení, finální je podbarvená.
{% set active_sol_id = None %} {% set active_sol_id = None %}
{% endif %} {% endif %}
{% for p in sol_papers %} {% 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 %}> <tr{% if p.paper_id == active_sol_id %} class='warning'{% endif %}>
<td{% if late %} class='danger'{% endif %}>{{ p.uploaded_at|timeformat }} <td{% if late %} class='danger'{% endif %}>{{ p.uploaded_at|timeformat }}
<td>{% if p.is_broken() %}nekorektní PDF{% else %}{{ p.pages|or_dash }}{% endif %} <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 ...@@ -57,7 +57,7 @@ finální (ve výchozím stavu poslední nahrané).{% elif rights.can_upload_sol
{% if sol %} {% if sol %}
<td>{% if sol.final_submit_obj %} <td>{% if sol.final_submit_obj %}
{% set p = 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 %} {% if late %}<span class='text-danger icon' title="{{ late }}"></span>{% endif %}
<a href='{{ paper_link(u, p) }}'> <a href='{{ paper_link(u, p) }}'>
{{- p.uploaded_at|timeformat }} {{- 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