Browse Source

Odstranění treelib z ukládání čísla

middleware_test
Jonas Havelka 3 years ago
parent
commit
750006ebb5
  1. 45
      seminar/admin.py

45
seminar/admin.py

@ -31,26 +31,37 @@ class CisloForm(ModelForm):
def clean(self): def clean(self):
if self.cleaned_data.get('verejne_db') == False: if self.cleaned_data.get('verejne_db') == False:
return self.cleaned_data 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('<b>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 <a href="/admin/seminar/cislo">seznamu čísel</a></b>')))
# raise ValidationError(errors)
errors = [] errors = []
for ch in tl.all_children(cn): for ch in m.Uloha.objects.filter(cislo_zadani=self.instance):
if isinstance(ch, m.TemaVCisleNode): if ch.stav not in (m.Problem.STAV_ZADANY, m.Problem.STAV_VYRESENY):
if ch.tema.stav not in \ errors.append(
(m.Problem.STAV_ZADANY, m.Problem.STAV_VYRESENY): ValidationError('Úloha %(uloha)s není zadaná ani vyřešená', params={'uloha': ch}))
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: if errors:
errors.append(ValidationError(mark_safe('<b>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 <a href="/admin/seminar/cislo">seznamu čísel</a></b>'))) errors.append(ValidationError(mark_safe(
'<b>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 <a href="/admin/seminar/cislo">seznamu čísel</a></b>')))
raise ValidationError(errors) raise ValidationError(errors)
return self.cleaned_data return self.cleaned_data

Loading…
Cancel
Save