113 lines
		
	
	
	
		
			3.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			113 lines
		
	
	
	
		
			3.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| {% extends "base.html" %}
 | |
| {% load static %}
 | |
| 
 | |
| {% block content %}
 | |
| 
 | |
| {# FIXME: Necopypastovat! Tohle je zkopírované ze static/seminar/dynamic_formsets.js #}
 | |
| <script type='text/javascript'>
 | |
| // Credit https://medium.com/all-about-django/adding-forms-dynamically-to-a-django-formset-375f1090c2b0
 | |
| function updateElementIndex(el, prefix, ndx) {
 | |
| 	var id_regex = new RegExp('(' + prefix + '-\\d+)');
 | |
| 	var replacement = prefix + '-' + ndx;
 | |
| 	if ($(el).attr("for")) {
 | |
| 		$(el).attr("for", $(el).attr("for").replace(id_regex, replacement));
 | |
| 	}
 | |
| 	if (el.id) {
 | |
| 		el.id = el.id.replace(id_regex, replacement);
 | |
| 	}
 | |
| 	if (el.name) {
 | |
| 		el.name = el.name.replace(id_regex, replacement);
 | |
| 	}
 | |
| }
 | |
| 
 | |
| // Credit https://medium.com/all-about-django/adding-forms-dynamically-to-a-django-formset-375f1090c2b0
 | |
| function deleteForm(prefix, btn) {
 | |
|     var total = parseInt($('#id_' + prefix + '-TOTAL_FORMS').val());
 | |
|     if (total >= 1){
 | |
|         btn.closest('tr').remove();
 | |
|         var forms = $('.hodnoceni');
 | |
|         $('#id_' + prefix + '-TOTAL_FORMS').val(forms.length);
 | |
|         for (var i=0, formCount=forms.length; i<formCount; i++) {
 | |
|             $(forms.get(i)).find(':input').each(function() {
 | |
|                 updateElementIndex(this, prefix, i);
 | |
|             });
 | |
|         }
 | |
|     }
 | |
|     return false;
 | |
| }
 | |
| 
 | |
| // Credit: https://simpleit.rocks/python/django/dynamic-add-form-with-add-button-in-django-modelformset-template/
 | |
| $(document).ready(function(){
 | |
| 	$('#pridat_hodnoceni').click(function() {
 | |
| 		var form_idx = $('#id_form-TOTAL_FORMS').val();
 | |
| 		var new_form = $('#empty_form').html().replace(/__prefix__/g, form_idx);
 | |
| 		$('#form_set').append(new_form);
 | |
| 		// Newly created form has not the binding between remove button and remove function
 | |
| 		// We need to add it manually
 | |
| 		$('.smazat_hodnoceni').click(function(){
 | |
| 			deleteForm("form",this);
 | |
| 		});
 | |
| 		$('#id_form-TOTAL_FORMS').val(parseInt(form_idx) + 1);
 | |
| 	});
 | |
| 	$('.smazat_hodnoceni').click(function(){
 | |
| 		deleteForm("form",this);
 | |
| 	});
 | |
| });
 | |
| </script>
 | |
| 
 | |
| 
 | |
| <p>Řešené problémy: {{ object.problem.all | join:", " }}</p>
 | |
| 
 | |
| <p>Řešitelé: {{ object.resitele.all | join:", " }}</p>
 | |
| 
 | |
| {# https://docs.djangoproject.com/en/3.1/ref/models/instances/#django.db.models.Model.get_FOO_display #}
 | |
| <p>Forma: {{ object.get_forma_display }}, doručeno {{ object.cas_doruceni }}</p>
 | |
| 
 | |
| {# Soubory: #}
 | |
| <h3>Přílohy:</h3>
 | |
| {% if object.prilohy.all %}
 | |
| <table>
 | |
| <tr><th>Soubor</th><th>Řešitelova poznámka</th><th>Datum</th></tr>
 | |
| {% for priloha in object.prilohy.all %}
 | |
| <tr>
 | |
| 	<td><a href="{{ priloha.soubor.url }}" download>{{ priloha.split | last }}</a></td>
 | |
| 	<td>{{ priloha.res_poznamka }}</td>
 | |
| 	<td>{{ priloha.vytvoreno }}</td></tr>
 | |
| 	{# TODO: Orgo-poznámka, ideálně jako formulář #}
 | |
| {% endfor %}
 | |
| </table>
 | |
| {% else %}
 | |
| <p>Žádné přílohy</p>
 | |
| {% endif %}
 | |
| 
 | |
| {# Hodnocení: #}
 | |
| <h3>Hodnocení:</h3>
 | |
| <form method=post><table>
 | |
| {% csrf_token %}
 | |
| {{ form.management_form }}
 | |
| <table id="form_set">
 | |
| <tr><th>Problém</th><th>Body</th><th>Číslo pro body</th></tr>
 | |
| {% for subform in form %}
 | |
| 	<tr class="hodnoceni">
 | |
| 		<td>{{ subform.problem }}</td>
 | |
| 		<td>{{ subform.body }}</td>
 | |
| 		<td>{{ subform.cislo_body }}</td>
 | |
| 		<td><a href="#" class="smazat_hodnoceni" id="id_{{subform.prefix}}-jsremove"><img src="{% static "seminar/cross.png" %}" alt="Smazat"></a></td>
 | |
| 	</tr>
 | |
| {% endfor %}
 | |
| </table>
 | |
| 
 | |
| 
 | |
| <a href="#"> <img src="{% static "seminar/plus.png" %}" id="pridat_hodnoceni" alt="Přidat hodnocení"></a> </br>
 | |
| <input type=submit value="Uložit"></form>
 | |
| 
 | |
| <table id="empty_form" style="display: none;">
 | |
| 	<tr class="hodnoceni">
 | |
| 		<td>{{ form.empty_form.problem }}</td>
 | |
| 		<td>{{ form.empty_form.body }}</td>
 | |
| 		<td>{{ form.empty_form.cislo_body }}</td>
 | |
| 		<td><a href="#" class="smazat_hodnoceni" id="id_{{subform.prefix}}-jsremove"><img src="{% static "seminar/cross.png" %}" alt="Smazat"></a></td>
 | |
| 	</tr>
 | |
| </table>
 | |
| 
 | |
| {% endblock %}
 | 
