diff --git a/seminar/migrations/0104_hodnoceni_deadline_body.py b/seminar/migrations/0104_hodnoceni_deadline_body.py index 66d8e61f..74992fb8 100644 --- a/seminar/migrations/0104_hodnoceni_deadline_body.py +++ b/seminar/migrations/0104_hodnoceni_deadline_body.py @@ -14,39 +14,44 @@ def prirad_deadliny(apps, schema_editor): p = h.problem try: - u = p.uloha - if u.cislo_zadani is not None: - d = Deadline.objects.filter(cislo=u.cislo_zadani, deadline__gte=h.reseni.cas_doruceni).first() - h.deadline_body = d - h.save() - continue + t = p.tema + d = Deadline.objects.filter(cislo__rocnik=t.rocnik, deadline__gte=h.reseni.cas_doruceni).first() + + if d is None: + d = Deadline.objects.filter(cislo__rocnik=t.rocnik).last() + + h.deadline_body = d + h.save() except Exception: pass + + cislo = None + + try: + u = p.uloha + cislo = u.cislo_zadani + except Exception: + pass + try: c = p.clanek if c.cislo is not None: - d = Deadline.objects.filter(cislo=c.cislo, deadline__gte=h.reseni.cas_doruceni).first() - h.deadline_body = d - h.save() - continue - + cislo = c.cislo except Exception: pass - try: - t = p.tema - d = Deadline.objects.filter(cislo__rocnik=t.rocnik, deadline__gte=h.reseni.cas_doruceni).first() + if cislo is None: + cislo = h.cislo_body + if cislo is not None: + d = Deadline.objects.filter(cislo=cislo, deadline__gte=h.reseni.cas_doruceni).first() if d is None: - d = Deadline.objects.filter(cislo__rocnik=t.rocnik).last() - + d = Deadline.objects.filter(cislo=cislo).last() h.deadline_body = d h.save() - - except Exception: - pass + continue log.warning(f"Deadline hodnocení {h.id} se nepodařil určit exaktnějším způsobem. Zkouším další.")