Skip to content
Snippets Groups Projects
Select Git revision
  • c99dbc65fe841bfe490a28e42244e47b11fbdf7e
  • devel default
  • master
  • fo
  • jirka/typing
  • fo-base
  • mj/submit-images
  • jk/issue-96
  • jk/issue-196
  • honza/add-contestant
  • honza/mr7
  • honza/mrf
  • honza/mrd
  • honza/mra
  • honza/mr6
  • honza/submit-images
  • honza/kolo-vs-soutez
  • jh-stress-test-wip
  • shorten-schools
19 results

org_submit_list.html

Blame
  • org_submit_list.html 8.14 KiB
    {% extends "base.html" %}
    {% import "bootstrap/wtf.html" as wtf %}
    {% block title %}Řešení {{ sc.task.code }} {{ sc.task.name }} – {{ sc.user.full_name() }}{% endblock %}
    {% block breadcrumbs %}
    {{ contest_breadcrumbs(round=sc.round, contest=sc.contest, site=sc.site, task=sc.task, user=sc.user, action="Detail řešení") }}
    {% endblock %}
    
    {% block body %}
    {% set site_id = sc.site.place_id if sc.site else None %}
    
    <table class="data">
    	<tr><th>Účastník<td>{{ sc.user|pion_link(sc.contest.contest_id) }}
    	<tr><th>Úloha<td><a href='{{ url_for('org_contest_task', contest_id=sc.contest.contest_id, site_id=site_id, task_id=sc.task.task_id) }}'>{{ sc.task.code }} {{ sc.task.name }}</a>
    	{% if solution %}
    	<tr><th>Body<td>{% if solution.points is not none %}{{solution.points}}{% else %}<span class="unknown">?</span>{% endif %}
    	<tr title="Viditelná účastníkovi po uzavření kola">
    		<th>Poznámka k řešení:<td style="white-space: pre;">{{ solution.note|or_dash }}</td>
    	<tr title="Viditelná jen organizátorům">
    		<th>Interní poznámka:<td style="white-space: pre;">{{ solution.org_note|or_dash }}</td>
    	{% endif %}
    </table>
    
    {% include "parts/org_submit_warning.html" %}
    
    {% if solution %}
    
    <div class="tabbed">
    	<input type="radio" id="tab1" name="css-tabs" checked>
    	<input type="radio" id="tab2" name="css-tabs">
    	<input type="radio" id="tab3" name="css-tabs">
    
    	<ul class="tabs">
    		<li class="tab"><label for="tab1">Odevzdaná řešení ({{ sol_papers|length }})</label>
    		<li class="tab"><label for="tab2">Opravená řešení ({{ fb_papers|length }})</label>
    		<li class="tab"><label for="tab3">Historie udělených bodů</label>
    	</ul>
    
    <div class="tab-content">
    <p><i>
    {% if sol_papers|length > 1 %}
    Existuje více než jedna verze řešení, finální je podbarvená.
    {% if set_final_form %}Pomocí přepínačů u řešení můžete prohlásit za finální řešení i jiné, než naposledy odevzdané. {% endif %}
    {% endif %}
    Účastník vždy vidí všechna svá řešení.
    </i></p>
    
    {% if sol_papers %}
    	<table class=data>
    	<thead>
    		<tr>
    			<th>Čas odevzdání
    			<th>Stránek
    			<th>Bajtů
    			<th>Odevzdal
    			<th>Poznámka
    			<th>Akce
    	<tbody>
    	{% if solution %}
    		{% set active_sol_id = solution.final_submit %}
    	{% else %}
    		{% set active_sol_id = None %}
    	{% endif %}
    	{% for p in sol_papers %}
    		{% set late = p.check_deadline(sc.round) %}
    		<tr{% if p.paper_id == active_sol_id %} class='sol-active'{% endif %}>
    			<td{% if late %} class='sol-warn'{% endif %}>{{ p.uploaded_at|timeformat }}
    			<td>{% if p.broken %}nekorektní PDF{% else %}{{ p.pages|or_dash }}{% endif %}
    			<td>{{ p.bytes|or_dash }}
    			<td>{{ p.uploaded_by_obj|user_link }}
    			<td>{% if late %}<span class='sol-warn'>({{ late }})</span> {% endif %}{{ p.note }}
    			<td><div class="btn-group">
    				<a class='btn btn-xs btn-primary' href='{{ paper_link(p) }}'>Stáhnout</a>
    				{% if p.paper_id != active_sol_id and set_final_form %}
    				<form class="btn-group" method="POST">
    					{{ set_final_form.csrf_token }}
    					<input type="hidden" name="type" value="submit"><input type="hidden" name="paper_id" value="{{ p.paper_id }}">
    					{{ wtf.form_field(set_final_form.submit_final, class="btn btn-xs btn-default") }}
    				</form>
    				{% endif %}
    			</div>
    	{% endfor %}
    	</table>
    {% else %}
    <p>Žádná.
    {% endif %}
    </div>
    
    <div class="tab-content">
    <p><i>
    {% if fb_papers|length > 1 %}
    Existuje více než jedna verze oprav, finální je podbarvená.
    {% if set_final_form %}Pomocí přepínačů u oprav můžete prohlásit za finální opravu i jinou, než naposledy nahranou. {% endif %}
    Účastník po uzavření kola uvidí jen finální opravu a ani se nedozví, kolik různých verzí existovalo.
    {% else %}
    Účastník uvidí finální opravu po uzavření kola.
    {% endif %}
    </i></p>
    
    {% if fb_papers %}
    	<table class=data>
    	<thead>
    		<tr>
    			<th>Čas odevzdání
    			<th>Stránek
    			<th>Bajtů
    			<th>Odevzdal
    			<th>Poznámka
    			<th>Akce
    	<tbody>
    	{% if solution %}
    		{% set active_fb_id = solution.final_feedback %}
    	{% else %}
    		{% set active_fb_id = None %}
    	{% endif %}
    	{% for p in fb_papers %}
    		<tr{% if p.paper_id == active_fb_id %} class='sol-active'{% endif %}>
    			<td>{{ p.uploaded_at|timeformat }}
    			<td>{% if p.broken %}nekorektní PDF{% else %}{{ p.pages|or_dash }}{% endif %}
    			<td>{{ p.bytes|or_dash }}
    			<td>{{ p.uploaded_by_obj|user_link }}
    			<td>{{ p.note }}
    			<td><div class="btn-group">
    				<a class='btn btn-xs btn-primary' href='{{ paper_link(p) }}'>Stáhnout</a>
    				{% if p.paper_id != active_fb_id and set_final_form %}
    				<form class="btn-group" method="POST">
    					{{ set_final_form.csrf_token }}
    					<input type="hidden" name="type" value="feedback"><input type="hidden" name="paper_id" value="{{ p.paper_id }}">
    					{{ wtf.form_field(set_final_form.submit_final, class="btn btn-xs btn-default") }}
    				</form>
    				{% endif %}
    			</div>
    	{% endfor %}
    	</table>
    {% else %}
    <p>Žádná.
    {% endif %}
    </div>
    
    <div class="tab-content">
    {% if points_history %}
    <p><i>Účastník po uzavření kola uvidí jen naposledy zadané body.</i></p>
    <table class=data>
    	<thead>
    		<tr>
    			<th>Čas udělení
    			<th>Počet bodů
    			<th>Udělil/a
    	<tbody>
    	{% for p in points_history %}
    	<tr {% if loop.index == 1 %} class='sol-active'{% endif %}>
    		<td>{{ p.points_at|timeformat }}
    		<td>{% if p.points is not none %}{{ p.points }}{% else %}–{% endif %}
    		<td>{{ p.user|user_link }}
    	</tr>
    	{% endfor %}
    </table>
    {% else %}
    <p>Zatím nebyly uděleny žádné body.
    {% endif %}
    </div>
    </div>
    
    {% else %}
    <p>Žádné odevzdané řešení. {% if form and sc.allow_edit_points %}Můžete ho založit pomocí formuláře níže.{% endif %}
    {% endif %}
    
    {% if form and (sc.allow_edit_points or sc.allow_upload_feedback or sc.allow_upload_solutions) %}
    <form method="post" class="form-horizontal" enctype="multipart/form-data">
    <div class="form-frame">
    	{{ form.csrf_token }}
    	{% set action = 'Uložit' if solution else 'Založit řešení' %}
    	{% if sc.allow_edit_points %}
    		{% if solution %}
    			<h3 style="margin-top: 10px;">Hodnocení řešení</h3>
    		{% else %}
    			<h3>Založit řešení</h3>
    			<p><i>Můžete rovnou vyplnit i poznámky a přidělené body
    				{%- if sc.allow_upload_feedback or sc.allow_upload_solutions %}, případně rovnou nahrát i soubor řešení nebo opravy{% endif %}.
    			</i></p>
    		{% endif %}
    		{{ wtf.form_field(form.note, form_type='horizontal', horizontal_columns=('sm', 2, 10), rows=4)}}
    		{{ wtf.form_field(form.org_note, form_type='horizontal', horizontal_columns=('sm', 2, 10), rows=4 )}}
    		{{ wtf.form_field(form.points, form_type='horizontal', horizontal_columns=('sm', 2, 10) )}}
    		{{ wtf.form_field(
    			form.submit, form_type='horizontal', class='btn btn-primary', horizontal_columns=('sm', 2, 10),
    			value=action + (' bez nahrání souboru' if sc.allow_upload_feedback or sc.allow_upload_solutions else '')
    		)}}
    	{% endif %}
    	{% if sc.allow_upload_feedback or sc.allow_upload_solutions %}
    		{% if solution %}
    			<h3>Nahrání souboru</h3>
    			{% if sc.allow_edit_points %}
    			<p><i>Lze najednou editovat řešení (například zadat body) i nahrát soubor, použijte tlačítka na spodku formuláře.</i></p>
    			{% endif %}
    		{% else %}
    			<h3>Založit řešení a nahrát soubor</h3>
    		{% endif %}
    		{{ wtf.form_field(form.file, form_type='horizontal', horizontal_columns=('sm', 2, 10)) }}
    		{{ wtf.form_field(form.file_note, form_type='horizontal', horizontal_columns=('sm', 2, 10)) }}
    		<div class="form-group">
    		<div class="btn btn-group col-sm-offset-2">
    			{% if sc.allow_upload_solutions %}
    				{{ wtf.form_field(form.submit_sol, class='btn btn-primary', value=action + ' a nahrát soubor jako řešení' )}}
    			{% endif %}
    			{% if sc.allow_upload_feedback %}
    				{{ wtf.form_field(form.submit_fb, class='btn btn-success', value=action + ' a nahrát soubor jako opravu' )}}
    			{% endif %}
    		</div>
    	</div>
    	{% endif %}
    </div>
    
    {% if solution and not solution.final_submit and not solution.final_feedback and sc.allow_create_solutions %}
    <div class="form-frame">
    	<h3 style="margin-top: 10px;">Smazání řešení</h3>
    	<p>Toto řešení zatím neobsahuje žádný soubor. Pokud bylo přidáno omylem, můžete ho smazat.</p>
    	{{ wtf.form_field(form.delete, class='btn btn-danger') }}
    </div>
    {% endif %}
    </form>
    
    {% endif %}
    
    {% endblock %}