Skip to content
Snippets Groups Projects
Commit e077e427 authored by Jiří Setnička's avatar Jiří Setnička
Browse files

Org contest: Přidáno počítání počtu odevzdaných řešení

parent d237384f
No related branches found
No related tags found
2 merge requests!13Tabulky řešení,!9WIP: Zárodek uživatelské části webu a submitování
...@@ -223,8 +223,25 @@ def org_contest(id: int, site_id: Optional[int] = None): ...@@ -223,8 +223,25 @@ def org_contest(id: int, site_id: Optional[int] = None):
sess = db.get_session() sess = db.get_session()
contest, site, rr = get_contest_site_rr(id, site_id, None) contest, site, rr = get_contest_site_rr(id, site_id, None)
sol_counts_q = (
sess.query(db.Solution.task_id, func.count(db.Solution.task_id))
.filter(db.Solution.task_id.in_(
sess.query(db.Task.task_id).filter_by(round=contest.round)
))
)
if site:
sol_counts_q = sol_counts_q.filter(db.Solution.user_id.in_(
sess.query(db.Participation.user_id).filter_by(place=site)
))
sol_counts = {}
for task_id, count in sol_counts_q.group_by(db.Solution.task_id).all():
sol_counts[task_id] = count
tasks = sess.query(db.Task).filter_by(round=contest.round).all() tasks = sess.query(db.Task).filter_by(round=contest.round).all()
tasks.sort(key=lambda t: t.code) tasks.sort(key=lambda t: t.code)
for task in tasks:
task.sol_count = sol_counts[task.task_id] if task.task_id in sol_counts else 0
count = None count = None
places_counts = None places_counts = None
... ...
......
...@@ -64,7 +64,7 @@ ...@@ -64,7 +64,7 @@
<tr> <tr>
<td>{{ task.code }} <td>{{ task.code }}
<td>{{ task.name }} <td>{{ task.name }}
<td>TODO počet <td>{{ task.sol_count }}
<td><div class="btn-group"> <td><div class="btn-group">
<a class="btn btn-xs btn-primary" href="{{ url_for('org_contest_task_submits', contest_id=contest.contest_id, task_id=task.task_id, site_id=site_id) }}">Odevzdaná řešení</a> <a class="btn btn-xs btn-primary" href="{{ url_for('org_contest_task_submits', contest_id=contest.contest_id, task_id=task.task_id, site_id=site_id) }}">Odevzdaná řešení</a>
{% if can_upload_feedback %} {% if can_upload_feedback %}
... ...
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment