From 07d3b23c893fb84587e7dfc494011ea13e7547cf Mon Sep 17 00:00:00 2001 From: Martin Mares <mj@ucw.cz> Date: Mon, 11 Jan 2021 01:32:41 +0100 Subject: [PATCH] =?UTF-8?q?Odkaz=20na=20sta=C5=BEen=C3=AD=20v=C5=A1ech=20?= =?UTF-8?q?=C5=99e=C5=A1en=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Zatím jenom u celkové tabulky bodů. --- mo/web/org_contest.py | 11 +++++++++-- mo/web/templates/org_contest_solutions.html | 5 ++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/mo/web/org_contest.py b/mo/web/org_contest.py index 610bb912..ee3b1b12 100644 --- a/mo/web/org_contest.py +++ b/mo/web/org_contest.py @@ -16,6 +16,7 @@ import mo import mo.csv import mo.db as db import mo.imports +import mo.jobs.submit import mo.rights from mo.rights import Right, Rights import mo.util @@ -426,8 +427,8 @@ def make_contestant_table(query: Query, add_checkbox: bool = False, add_contest_ ) -@app.route('/org/contest/c/<int:id>/reseni') -@app.route('/org/contest/c/<int:id>/site/<int:site_id>/reseni') +@app.route('/org/contest/c/<int:id>/reseni', methods=('GET', 'POST')) +@app.route('/org/contest/c/<int:id>/site/<int:site_id>/reseni', methods=('GET', 'POST')) def org_contest_solutions(id: int, site_id: Optional[int] = None): contest, site, rr = get_contest_site_rr(id, site_id, Right.manage_contest) @@ -456,6 +457,12 @@ def org_contest_solutions(id: int, site_id: Optional[int] = None): joinedload(db.Solution.final_feedback_obj) ).all() + if request.method == 'POST' and 'download' in request.form: + paper_ids = [sol.final_submit for sol in sols if sol.final_submit is not None] + mo.jobs.submit.schedule_download_submits(paper_ids, 'Odevzdaná řešení', g.user) + flash('Příprava řešení ke stažení zahájena.', 'success') + return redirect(url_for('org_jobs')) + task_sols: Dict[int, Dict[int, db.Solution]] = {} for t in tasks: task_sols[t.task_id] = {} diff --git a/mo/web/templates/org_contest_solutions.html b/mo/web/templates/org_contest_solutions.html index a61d8ddf..7575342a 100644 --- a/mo/web/templates/org_contest_solutions.html +++ b/mo/web/templates/org_contest_solutions.html @@ -49,7 +49,6 @@ konkrétní úlohu.</p> {% else %}–{% endif %} <td class="sol"> {% else %}<td colspan=3>–<td>{% endif %} - <a class="btn btn-xs btn-link" title="Detail řešení" href="{{ url_for('org_submit_list', contest_id=contest.contest_id, user_id=u.user_id, task_id=task.task_id, site_id=site_id) }}">🔍</a> {% endfor %} <th>{{ sum_points|sum }}</th> @@ -57,4 +56,8 @@ konkrétní úlohu.</p> {% endfor %} </table> +<form method=POST action=""> + <button type=submit name=download value=go>Stáhnout všechna řešení jako ZIP</button> +</form> + {% endblock %} -- GitLab