diff --git a/api/views/autocomplete.py b/api/views/autocomplete.py
index bdae5e06..0d5b4f55 100644
--- a/api/views/autocomplete.py
+++ b/api/views/autocomplete.py
@@ -37,9 +37,9 @@ class ResitelAutocomplete(LoginRequiredAjaxMixin,autocomplete.Select2QuerySetVie
query = Q()
for part in parts:
query &= (
- Q(osoba__jmeno__istartswith=self.q)|
- Q(osoba__prijmeni__istartswith=self.q)|
- Q(osoba__prezdivka__istartswith=self.q)
+ Q(osoba__jmeno__istartswith=part)|
+ Q(osoba__prijmeni__istartswith=part)|
+ Q(osoba__prezdivka__istartswith=part)
)
qs = qs.filter(query)
return qs
diff --git a/make/init_local b/make/init_local
index 75ee1ccf..1b2f7c1e 100755
--- a/make/init_local
+++ b/make/init_local
@@ -8,3 +8,4 @@ ensure_venv
./manage.py testdata
./manage.py loaddata data/*
make/sync_prod_flatpages
+./manage.py load_org_permissions deploy_v2/admin_org_prava.json
diff --git a/mamweb/static/css/mamweb.css b/mamweb/static/css/mamweb.css
index 40755000..4e22a407 100644
--- a/mamweb/static/css/mamweb.css
+++ b/mamweb/static/css/mamweb.css
@@ -1256,6 +1256,11 @@ label[for=id_skola] {
font-weight: bold;
}
+/* detail řešení */
+.bodovani>input {
+ width: 4em;
+}
+
/* Select2 používaný hlavně multiple selectem. Přidání checkboxů a změna barvy. */
/* Podle https://stackoverflow.com/a/48290544 */
diff --git a/odevzdavatko/forms.py b/odevzdavatko/forms.py
index ba5d3153..d9aec665 100644
--- a/odevzdavatko/forms.py
+++ b/odevzdavatko/forms.py
@@ -21,16 +21,25 @@ class DateInput(forms.DateInput):
class PosliReseniForm(forms.Form):
- #FIXME jen podproblémy daného problému
- problem = forms.ModelChoiceField(label='Problém',queryset=m.Problem.objects.all())
+ problem = forms.ModelMultipleChoiceField(
+ queryset=m.Problem.objects.all(),
+ label="Problémy",
+ widget=autocomplete.ModelSelect2Multiple(
+ url='autocomplete_problem',
+ attrs={
+ 'data-placeholder--id': '-1',
+ 'data-placeholder--text': '---',
+ 'data-allow-clear': 'true'
+ },
+ ),
+ )
# to_field_name
#problem = models.ManyToManyField(Problem, verbose_name='problém', help_text='Problém',
# through='Hodnoceni')
- # FIXME pridat vice resitelu
- resitel = forms.ModelChoiceField(label="Řešitel",
+ resitel = forms.ModelMultipleChoiceField(label="Řešitelé",
queryset=Resitel.objects.all(),
- widget=autocomplete.ModelSelect2(
+ widget=autocomplete.ModelSelect2Multiple(
url='autocomplete_resitel',
attrs = {'data-placeholder--id': '-1',
'data-placeholder--text' : '---',
@@ -117,6 +126,24 @@ class JednoHodnoceniForm(forms.ModelForm):
'feedback': forms.Textarea(attrs={'rows': 1, 'cols': 30, 'class': 'feedback'}),
}
+ body_celkem = forms.DecimalField(required=False, decimal_places=1)
+ body_neprepocitane = forms.DecimalField(required=False, decimal_places=1)
+ body_neprepocitane_celkem = forms.DecimalField(required=False, decimal_places=1)
+
+ def __init__(self, *args, initial=None, **kwargs):
+ if initial is not None:
+ body_max = initial["body_max"]
+ body_neprepocitane_max = initial["body_neprepocitane_max"]
+ del(initial["body_max"])
+ del(initial["body_neprepocitane_max"])
+ super().__init__(*args, initial=initial, **kwargs)
+ if initial is not None:
+ self.fields['body'].widget.attrs['placeholder'] = body_max
+ self.fields['body_celkem'].widget.attrs['placeholder'] = body_max
+ self.fields['body_neprepocitane'].widget.attrs['placeholder'] = body_neprepocitane_max
+ self.fields['body_neprepocitane_celkem'].widget.attrs['placeholder'] = body_neprepocitane_max
+
+
OhodnoceniReseniFormSet = formset_factory(JednoHodnoceniForm,
extra = 0,
)
diff --git a/odevzdavatko/static/odevzdavatko/dynamic_formsets_for_detail.js b/odevzdavatko/static/odevzdavatko/dynamic_formsets_for_detail.js
index a14c9f8f..1c9bf2f9 100644
--- a/odevzdavatko/static/odevzdavatko/dynamic_formsets_for_detail.js
+++ b/odevzdavatko/static/odevzdavatko/dynamic_formsets_for_detail.js
@@ -49,8 +49,18 @@ $(document).ready(function(){
$('#id_form-' + form_idx + '-deadline_body')[0].value = $('#id_form-' + (form_idx - 1) + '-deadline_body')[0].value
}
$('#id_form-TOTAL_FORMS').val(parseInt(form_idx) + 1);
+
+ $('.bodovani').children().change(function(){
+ $(this).parent().parent().children(".bodovani").children().attr("disabled", true);
+ $(this).attr("disabled", false);
+ })
});
$('.smazat_hodnoceni').click(function(){
deleteForm("form",this);
});
+
+ $('.bodovani').children().change(function(){
+ $(this).parent().parent().children(".bodovani").children().attr("disabled", true);
+ $(this).attr("disabled", false);
+ })
});
diff --git a/odevzdavatko/templates/odevzdavatko/detail.html b/odevzdavatko/templates/odevzdavatko/detail.html
index 7cb79c21..5a43c4b5 100644
--- a/odevzdavatko/templates/odevzdavatko/detail.html
+++ b/odevzdavatko/templates/odevzdavatko/detail.html
@@ -4,6 +4,13 @@
{% load mail %}
{% load jmena %}
+{# Přišlo mi to hezčí, než psát všude if. #}
+{% block custom_css %}
+ {% if object.resitele.count == 1 %}
+
+ {% endif %}
+{% endblock %}
+
{% block content %}
{% if edit %}
@@ -76,6 +83,22 @@
Neveřejná poznámka:
{{ poznamka_form.poznamka }}
+
+
+{% for h in hodnoceni %}{% if h.body < 0.0 %}
+
+{% endif %}{% endfor %}
+
+
{# Hodnocení: #}
Hodnocení:
@@ -83,12 +106,15 @@
{{ form.management_form }}