diff --git a/seminar/admin.py b/seminar/admin.py
index 49bf80f3..d208bb18 100644
--- a/seminar/admin.py
+++ b/seminar/admin.py
@@ -31,26 +31,37 @@ class CisloForm(ModelForm):
def clean(self):
if self.cleaned_data.get('verejne_db') == False:
return self.cleaned_data
- cn = m.CisloNode.objects.get(cislo=self.instance)
+ # cn = m.CisloNode.objects.get(cislo=self.instance)
+ # errors = []
+ # for ch in tl.all_children(cn):
+ # if isinstance(ch, m.TemaVCisleNode):
+ # if ch.tema.stav not in \
+ # (m.Problem.STAV_ZADANY, m.Problem.STAV_VYRESENY):
+ # errors.append(ValidationError('Téma %(tema)s není zadané ani vyřešené', params={'tema':ch.tema}))
+ #
+ # if isinstance(ch, m.UlohaZadaniNode) or isinstance(ch, m.UlohaVzorakNode):
+ # if ch.uloha.stav not in \
+ # (m.Problem.STAV_ZADANY, m.Problem.STAV_VYRESENY):
+ # errors.append(ValidationError('Úloha %(uloha)s není zadaná ani vyřešená', params={'uloha':ch.uloha}))
+ # if isinstance(ch, m.ReseniNode):
+ # for problem in ch.reseni.problem_set:
+ # if problem not in \
+ # (m.Problem.STAV_ZADANY, m.Problem.STAV_VYRESENY):
+ # errors.append(ValidationError('Problém %s není zadaný ani vyřešený', code=problem))
+ # if errors:
+ # errors.append(ValidationError(mark_safe('Pokud chceš učinit všechny problémy, co nejsou zadané ani vyřešené, zadanými a číslo zveřejnit, můžeš to udělat pomocí akce v seznamu čísel')))
+ # raise ValidationError(errors)
+
errors = []
- for ch in tl.all_children(cn):
- if isinstance(ch, m.TemaVCisleNode):
- if ch.tema.stav not in \
- (m.Problem.STAV_ZADANY, m.Problem.STAV_VYRESENY):
- errors.append(ValidationError('Téma %(tema)s není zadané ani vyřešené', params={'tema':ch.tema}))
-
- if isinstance(ch, m.UlohaZadaniNode) or isinstance(ch, m.UlohaVzorakNode):
- if ch.uloha.stav not in \
- (m.Problem.STAV_ZADANY, m.Problem.STAV_VYRESENY):
- errors.append(ValidationError('Úloha %(uloha)s není zadaná ani vyřešená', params={'uloha':ch.uloha}))
- if isinstance(ch, m.ReseniNode):
- for problem in ch.reseni.problem_set:
- if problem not in \
- (m.Problem.STAV_ZADANY, m.Problem.STAV_VYRESENY):
- errors.append(ValidationError('Problém %s není zadaný ani vyřešený', code=problem))
+ for ch in m.Uloha.objects.filter(cislo_zadani=self.instance):
+ if ch.stav not in (m.Problem.STAV_ZADANY, m.Problem.STAV_VYRESENY):
+ errors.append(
+ ValidationError('Úloha %(uloha)s není zadaná ani vyřešená', params={'uloha': ch}))
if errors:
- errors.append(ValidationError(mark_safe('Pokud chceš učinit všechny problémy, co nejsou zadané ani vyřešené, zadanými a číslo zveřejnit, můžeš to udělat pomocí akce v seznamu čísel')))
+ errors.append(ValidationError(mark_safe(
+ 'Pokud chceš učinit všechny problémy, co nejsou zadané ani vyřešené, zadanými a číslo zveřejnit, můžeš to udělat pomocí akce v seznamu čísel')))
raise ValidationError(errors)
+
return self.cleaned_data