Skip to content
Snippets Groups Projects
Select Git revision
  • a6e0963468f52e9cd9562ac67b103aa79b4feac5
  • 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_solution_table.html

Blame
  • Jiří Setnička's avatar
    Jiří Setnička authored
    Vytvořen nový endpoint org_contest_task_create. Vše v pozadí obsluhuje
    stejná univerzální tabulka, jen na správných místech vypisuje správné
    formuláře ve správném módu (má teď mód zobrazení, zakládání řešení a
    bodování).
    
    Přidány odkazy z různých míst.
    f68a00b4
    History
    org_solution_table.html 4.60 KiB
    <p><i>{% if for_user %}U každé úlohy je zobrazeno účastníkovo {% else %}U každého účastníka je zobrazeno jeho {% endif %}
    finální řešení, finální oprava a přidělené body. Historii všech odevzdání, oprav a bodů naleznete v detailu řešení.
    {% if sc.allow_upload_feedback or sc.allow_edit_points %}Tamtéž můžete odevzdávat nové verze a změnit, které řešení/oprava je
    finální (ve výchozím stavu poslední nahrané).{% elif sc.allow_upload_solutions %}Tamtéž můžete odevzdat nové řešení.{% endif %}
    </i></p>
    
    <p><i>Legenda k symbolům: <span class='sol-warn icon'>⚠</span> odevzdané po termínu,
    <span class="icon">🛈</span> nahráno někým jiným, než řešitelem, <span class="icon">🗐</span> existuje více verzí. Symboly po najetí myší zobrazí bližší informace.
    </i></p>
    
    <table class="data full">
    	<thead>
    		<tr>
    			<th>{% if for_user %}Úloha{% else %}Účastník{% endif %}
    			{% if for_task %}<th>Stav účasti{% endif %}
    			<th>Finální řešení
    			<th>Finální oprava
    			<th>Poznámky
    			<th>Přidělené body
    				{% if not for_user and not site and sc.allow_edit_points and not points_form %}
    				<a title="Editovat body" href="{{ url_for('org_contest_task_points', contest_id=contest.contest_id, task_id=task.task_id) }}" class="icon pull-right">✎</a>
    				{% endif %}
    			<th>Akce
    		</tr>
    	</thead>
    {% for obj, sol in rows %}
    	{% set u = for_user or obj.user %}
    	{% set task = for_task or obj %}
    	{% if for_task %}
    	<tr class="state-{{ obj.state.name }}{% if u.is_test %} testuser{% endif %}" {% if u.is_test %}title="Testovací uživatel"{% endif %}>
    	{% else %}
    	<tr>
    	{% endif %}
    		<td>{% if for_user %}
    			<a href='{{ url_for('org_contest_task', contest_id=ct_id, task_id=task.task_id) }}'>{{ task.code }} {{ task.name }}</a>
    		    {% else %}
    			{{ u|pion_link(obj.contest_id) }}</a>
    		    {% endif %}
    		{% if for_task %}<td>{{ obj.state.friendly_name() }}{% endif %}
    		{% if sol %}
    		<td>{% if sol.final_submit_obj %}
    			{% set p = sol.final_submit_obj %}
    			{% set late = p.check_deadline(round) %}
    			{% if late %}<span class='sol-warn icon' title="{{ late }}">⚠</span>{% endif %}
    			<a href='{{ paper_link(u, p) }}'>
    				{{- p.uploaded_at|timeformat }}
    				{% if p.broken %}
    					(nekorektní PDF)
    				{% elif p.pages != None %}
    					({{ p.pages|inflected('strana', 'strany', 'stran') }})
    				{% endif %}
    			</a>
    			{% if p.uploaded_by_obj != u %}
    				<a href="{{ url_for('org_user', id=p.uploaded_by) }}" title="nahrál {{ p.uploaded_by_obj.full_name() }}" class="icon">🛈</a>
    			{% endif %}
    			{% set key = (obj.task_id if for_user else obj.user_id, "solution") %}
    			{% if key in paper_counts and paper_counts[key] > 1 %}
    				<span title="Celkem {{ paper_counts[key]|inflected('verze', 'verze', 'verzí') }}" class="icon">🗐</span>
    			{% endif %}
    		    {% else %}–{% endif %}
    		<td>{% if sol.final_feedback_obj %}
    			{% set p = sol.final_feedback_obj %}
    			<a title="nahrál {{ p.uploaded_by_obj.full_name() }}" href='{{ paper_link(u, p) }}'>
    				{{ (p.uploaded_at if p else None)|timeformat }}
    				{% if p.broken %}
    					(nekorektní PDF)
    				{% elif p.pages != None %}
    					({{ p.pages|inflected('strana', 'strany', 'stran') }})
    				{% endif %}
    			</a>
    			{% set key = (obj.task_id if for_user else obj.user_id, "feedback") %}
    			{% if key in paper_counts and paper_counts[key] > 1 %}
    				<span title="Celkem {{ paper_counts[key]|inflected('verze', 'verze', 'verzí') }}" class="icon">🗐</span>
    			{% endif %}
    		    {% else %}–{% endif %}
    		<td style="text-align: center;">
    			{% if sol.note %}<span class="icon" title="Poznámka pro řešitele: {{ sol.note }}">🗩</span>{% endif %}
    			{% if sol.org_note %} <span class="icon" title="Interní poznámka: {{ sol.org_note }}">🗩</span>{% endif %}
    		<td>
    			{% if points_form %}
    				<input type="number" class="form-control" name="points_{{u.user_id}}" value="{{ request_form.get("points_{}".format(u.user_id)) or sol.points }}" size="4">
    			{% else %}
    				{% if sol.points is not none %}{{ sol.points}}{% else %}<span class="unknown">?</span>{% endif %}
    			{% endif %}
    		{% else %}
    		<td colspan="4" class="text-center">
    			{% if create_form %}
    			<input type="checkbox" name="create_sol_{{u.user_id}}" id="create_sol_{{u.user_id}}"{% if request_form.get("create_sol_{}".format(u.user_id)) %}checked{% endif %}>
    			<label for="create_sol_{{u.user_id}}">Založit řešení</label>
    			{% else %}–{% endif %}
    		{% endif %}
    		<td><div class="btn-group">
    			<a class="btn btn-xs btn-primary" href="{{ url_for('org_submit_list', contest_id=ct_id, user_id=u.user_id, task_id=task.task_id, site_id=site_id) }}">Detail</a>
    		</div>
    	</tr>
    {% endfor %}
    </table>