|
@ -246,32 +246,26 @@ def hodnoceniReseniView(request, pk, *args, **kwargs): |
|
|
formset = f.OhodnoceniReseniFormSet(request.POST) |
|
|
formset = f.OhodnoceniReseniFormSet(request.POST) |
|
|
poznamka_form = f.PoznamkaReseniForm(request.POST, instance=reseni) |
|
|
poznamka_form = f.PoznamkaReseniForm(request.POST, instance=reseni) |
|
|
# TODO: Napsat validaci formuláře a formsetu |
|
|
# TODO: Napsat validaci formuláře a formsetu |
|
|
# TODO: Implementovat větev, kdy formulář validní není. |
|
|
if not (formset.is_valid() and poznamka_form.is_valid()): |
|
|
if formset.is_valid() and poznamka_form.is_valid(): |
|
|
raise ValueError(formset.errors, poznamka_form.errors) |
|
|
with transaction.atomic(): |
|
|
|
|
|
# Poznámka je jednoduchá na zpracování: |
|
|
|
|
|
poznamka_form.save() |
|
|
|
|
|
|
|
|
|
|
|
# Smažeme všechna dosavadní hodnocení tohoto řešení |
|
|
with transaction.atomic(): |
|
|
qs = m.Hodnoceni.objects.filter(reseni=reseni) |
|
|
# Poznámka je jednoduchá na zpracování: |
|
|
logger.info(f"Will delete {qs.count()} objects: {qs}") |
|
|
poznamka_form.save() |
|
|
qs.delete() |
|
|
|
|
|
|
|
|
# Smažeme všechna dosavadní hodnocení tohoto řešení |
|
|
# Vyrobíme nová podle formsetu |
|
|
qs = m.Hodnoceni.objects.filter(reseni=reseni) |
|
|
for form in formset: |
|
|
logger.info(f"Will delete {qs.count()} objects: {qs}") |
|
|
problem = form.cleaned_data['problem'] |
|
|
qs.delete() |
|
|
body = form.cleaned_data['body'] |
|
|
|
|
|
deadline_body = form.cleaned_data['deadline_body'] |
|
|
# Vyrobíme nová podle formsetu |
|
|
feedback = form.cleaned_data['feedback'] |
|
|
for form in formset: |
|
|
hodnoceni = m.Hodnoceni( |
|
|
hodnoceni = m.Hodnoceni( |
|
|
problem=problem, |
|
|
|
|
|
body=body, |
|
|
|
|
|
deadline_body=deadline_body, |
|
|
|
|
|
feedback=feedback, |
|
|
|
|
|
reseni=reseni, |
|
|
reseni=reseni, |
|
|
|
|
|
**form.cleaned_data, |
|
|
) |
|
|
) |
|
|
logger.info(f"Creating Hodnoceni: {hodnoceni}") |
|
|
logger.info(f"Creating Hodnoceni: {hodnoceni}") |
|
|
hodnoceni.save() |
|
|
hodnoceni.save() |
|
|
|
|
|
|
|
|
return redirect(success_url) |
|
|
return redirect(success_url) |
|
|
|
|
|
|
|
|