odevzdavatko: zobrazení chyby při nevalidním formsetu
This commit is contained in:
parent
f8667b8247
commit
e856859ffb
1 changed files with 17 additions and 23 deletions
|
@ -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)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue