diff --git a/seminar/models.py b/seminar/models.py index 654a3b23..f7c6ec46 100644 --- a/seminar/models.py +++ b/seminar/models.py @@ -680,6 +680,17 @@ class Cislo(SeminarModelBase): # Neexistující *Node nemá smysl aktualizovat. pass + def clean(self): + # Finální deadline má být až poslední a je povinný, pokud nějaký deadline existuje. + # Existence: + if self.datum_deadline is None and (self.datum_preddeadline is not None or self.datum_deadline_soustredeni is not None): + raise ValidationError({'datum_deadline': "Číslo musí mít finální deadline, pokud má nějaké deadliny"}) + if self.datum_deadline is not None: + if self.datum_preddeadline is not None and self.datum_preddeadline > self.datum_deadline: + raise ValidationError({'datum_preddeadline': "Předdeadline musí předcházet finálnímu deadlinu"}) + if self.datum_deadline_soustredeni is not None and self.datum_deadline_soustredeni > self.datum_deadline: + raise ValidationError({'datum_deadline_soustredeni': "Soustřeďkový deadline musí předcházet finálnímu deadlinu"}) + @reversion.register(ignore_duplicates=True) class Organizator(SeminarModelBase): # zmena dedicnosti z models.Model na SeminarModelBase, potencialni vznik bugu