diff --git a/seminar/models.py b/seminar/models.py index 9eefdec4..055ab07b 100644 --- a/seminar/models.py +++ b/seminar/models.py @@ -384,6 +384,10 @@ class Rocnik(SeminarModelBase): cache.set(name, c, 300) return c + def save(self): + super().save() + # *Node.save() aktualizuje název *Nodu. + self.rocniknode.save() def cislo_pdf_filename(self, filename): rocnik = str(self.rocnik.rocnik) @@ -477,6 +481,11 @@ class Cislo(SeminarModelBase): return None return c + def save(self): + super().save() + # *Node.save() aktualizuje název *Nodu. + self.cislonode.save() + @reversion.register(ignore_duplicates=True) class Organizator(SeminarModelBase): # zmena dedicnosti z models.Model na SeminarModelBase, potencialni vznik bugu @@ -707,6 +716,12 @@ class Tema(Problem): return "t{}".format(self.kod) return '' + def save(self): + super().save() + # *Node.save() aktualizuje název *Nodu. + for tvcn in self_temavcislenode_set: + tvcn.save() + class Clanek(Problem): class Meta: db_table = 'seminar_clanky' @@ -727,6 +742,11 @@ class Clanek(Problem): return "c{}".format(self.kod) return '' + def save(self): + super().save() + # *Node.save() aktualizuje název *Nodu. + self.claneknode.save() + class Text(SeminarModelBase): class Meta: db_table = 'seminar_texty' @@ -744,6 +764,12 @@ class Text(SeminarModelBase): # obrázky mají návaznost opačným směrem (vazba z druhé strany) + def save(self): + super().save() + # *Node.save() aktualizuje název *Nodu. + for tn in self.textnode_set: + tn.save() + class Uloha(Problem): @@ -778,6 +804,12 @@ class Uloha(Problem): return name return '' + def save(self): + super().save() + # *Node.save() aktualizuje název *Nodu. + self.ulohazadaninode.save() + self.ulohavzoraknode.save() + @reversion.register(ignore_duplicates=True) class Reseni(SeminarModelBase): @@ -959,6 +991,10 @@ class Pohadka(SeminarModelBase): uryvek = self.text if len(self.text) < 50 else self.text[:(50-3)]+"..." return uryvek + def save(self): + super().save() + # *Node.save() aktualizuje název *Nodu. + self.pohadkanode.save() @reversion.register(ignore_duplicates=True) class Soustredeni_Ucastnici(SeminarModelBase): @@ -1069,6 +1105,11 @@ class Konfera(models.Model): def __str__(self): return "{}: ({})".format(self.nazev, self.soustredeni) + def save(self): + super().save() + # *Node.save() aktualizuje název *Nodu. + self.konferanode.save() + # Vazebna tabulka. Mozna se generuje automaticky. @reversion.register(ignore_duplicates=True) @@ -1182,6 +1223,10 @@ class TreeNode(PolymorphicModel): else: #TODO: logování return "Nepojmenovaný Treenode" + + def save(self): + self.aktualizuj_nazev() + super().save() class RocnikNode(TreeNode): class Meta: @@ -1194,7 +1239,6 @@ class RocnikNode(TreeNode): def aktualizuj_nazev(self): self.nazev = "RocnikNode: "+str(self.rocnik) - self.save() class CisloNode(TreeNode): class Meta: @@ -1207,7 +1251,6 @@ class CisloNode(TreeNode): def aktualizuj_nazev(self): self.nazev = "CisloNode: "+str(self.cislo) - self.save() class MezicisloNode(TreeNode): class Meta: @@ -1230,7 +1273,6 @@ class MezicisloNode(TreeNode): else: print("!!!!! Nějaké neidentifikované mezičíslo !!!!!") self.nazev = "MezicisloNode: Neidentifikovatelné mezičíslo!" - self.save() class TemaVCisleNode(TreeNode): """ Obsahuje příspěvky k tématu v daném čísle """ @@ -1244,7 +1286,6 @@ class TemaVCisleNode(TreeNode): def aktualizuj_nazev(self): self.nazev = "TemaVCisleNode: "+str(self.tema) - self.save() class KonferaNode(TreeNode): class Meta: @@ -1259,7 +1300,6 @@ class KonferaNode(TreeNode): def aktualizuj_nazev(self): self.nazev = "KonferaNode: "+str(self.konfera) - self.save() class ClanekNode(TreeNode): class Meta: @@ -1274,7 +1314,6 @@ class ClanekNode(TreeNode): def aktualizuj_nazev(self): self.nazev = "ClanekNode: "+str(self.clanek) - self.save() class UlohaZadaniNode(TreeNode): class Meta: @@ -1289,7 +1328,6 @@ class UlohaZadaniNode(TreeNode): def aktualizuj_nazev(self): self.nazev = "UlohaZadaniNode: "+str(self.uloha) - self.save() class PohadkaNode(TreeNode): class Meta: @@ -1303,7 +1341,6 @@ class PohadkaNode(TreeNode): def aktualizuj_nazev(self): self.nazev = "PohadkaNode: "+str(self.pohadka) - self.save() class UlohaVzorakNode(TreeNode): class Meta: @@ -1318,7 +1355,6 @@ class UlohaVzorakNode(TreeNode): def aktualizuj_nazev(self): self.nazev = "UlohaVzorakNode: "+str(self.uloha) - self.save() class TextNode(TreeNode): class Meta: @@ -1331,7 +1367,6 @@ class TextNode(TreeNode): def aktualizuj_nazev(self): self.nazev = "TextNode: "+str(self.text) - self.save() ## FIXME: Logiku přesunout do views. #class VysledkyBase(SeminarModelBase):