Skip to content
Snippets Groups Projects
Commit c61429d0 authored by Martin Mareš's avatar Martin Mareš
Browse files

pokračování odesílání certifikátů ...

parent dcfb10e2
No related branches found
No related tags found
No related merge requests found
{% extends "base.html" %}
{% set round = contest.round %}
{% block title %}Diplomy za {{ round.name|lower }} {{ round.year }}. ročníku kategorie {{ round.category }}: {{ contest.place.name }}{% endblock %}
{% block breadcrumbs %}
<li><a href='{{ url_for('user_index') }}'>Soutěže</a>
<li><a href='{{ url_for('user_contest', id=contest.contest_id) }}'>{{ round.name }} {{ round.year }}. ročníku kategorie {{ round.category }}: {{ contest.place.name }}</a>
<li>Diplomy
{% endblock %}
{% block body %}
{% if cset is none %}
<p>
<em>Organizátor kola žádné diplomy nevydal.</em>
</p>
{% elif not cset %}
<p>
<em>V tomto kole jste nezískal(a) žádné diplomy.</em>
</p>
{% else %}
<p>
V tomto kole získáváte:
</p>
<table class="table table-bordered table-hover">
<thead>
<tr>
<th>Druh diplomu
<th>Získán za
<th>Akce
<tbody>
{% for cert in certs %}
<tr>
<td>{{ cert.type.friendly_name() }}
<td>{{ cert.achievement }}
<td><a class='btn btn-xs btn-primary' href='{{ url_for('user_cert_file', ct_id=contest.contest_id, cert_type=cert.type.name, filename=cert.type.file_name() + '.pdf') }}'>Zobrazit</a>
{% endfor %}
</table>
{% endif %}
{% endblock %}
...@@ -674,19 +674,33 @@ def send_certificate(ct_id: int, cert_type: str, user_filename: str, user_id: Op ...@@ -674,19 +674,33 @@ def send_certificate(ct_id: int, cert_type: str, user_filename: str, user_id: Op
@app.route('/user/contest/<int:id>/certificates') @app.route('/user/contest/<int:id>/certificates')
def user_contest_certificates(id: int): def user_contest_certificates(id: int):
contest = get_contest(id) contest = get_contest(id)
round = contest.round
# Diplomy zobrazíme, jen pokud je soutěž již ukončená # Diplomy zobrazíme, jen pokud je soutěž již ukončená
state = contest.ct_state() state = contest.ct_state()
if state not in [db.RoundState.graded, db.RoundState.closed]: if state not in [db.RoundState.graded, db.RoundState.closed]:
raise werkzeug.exceptions.NotFound() raise werkzeug.exceptions.NotFound()
sess = db.get_session()
cset = sess.query(db.CertSet).filter_by(contest_id=id).one_or_none()
certs = (sess.query(db.Certificate)
.filter_by(cert_set_id=id, user=g.user)
.all())
return render_template( return render_template(
'user_contest_score.html', 'user_contest_certs.html',
contest=contest, contest=contest,
cset=cset,
certs=certs,
) )
@app.route('/user/contest/<int:ct_id>/certificates/<cert_type>/<filename>')
def user_cert_file(ct_id: int, cert_type: str, filename: str):
_ = get_contest(ct_id)
return send_certificate(ct_id, cert_type, filename, g.user_id)
@app.route('/user/history/') @app.route('/user/history/')
def user_history() -> str: def user_history() -> str:
sess = db.get_session() sess = db.get_session()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment