|
@ -23,7 +23,7 @@ from reversion import revisions as reversion |
|
|
|
|
|
|
|
|
from seminar.utils import roman, FirstTagParser # Pro získání úryvku z TextNode |
|
|
from seminar.utils import roman, FirstTagParser # Pro získání úryvku z TextNode |
|
|
|
|
|
|
|
|
from unidecode import unidecode |
|
|
from unidecode import unidecode # Používám pro získání ID odkazu (ještě je to někde po někom zakomentované) |
|
|
|
|
|
|
|
|
from polymorphic.models import PolymorphicModel |
|
|
from polymorphic.models import PolymorphicModel |
|
|
|
|
|
|
|
@ -620,7 +620,7 @@ class Problem(SeminarModelBase,PolymorphicModel): |
|
|
id = models.AutoField(primary_key = True) |
|
|
id = models.AutoField(primary_key = True) |
|
|
|
|
|
|
|
|
# Název |
|
|
# Název |
|
|
nazev = models.CharField('název', max_length=256) |
|
|
nazev = models.CharField('název', max_length=256) # Zveřejnitelný na stránky |
|
|
|
|
|
|
|
|
# Problém má podproblémy |
|
|
# Problém má podproblémy |
|
|
nadproblem = models.ForeignKey('self', verbose_name='nadřazený problém', |
|
|
nadproblem = models.ForeignKey('self', verbose_name='nadřazený problém', |
|
@ -1243,7 +1243,7 @@ class TreeNode(PolymorphicModel): |
|
|
nazev = models.TextField("název tohoto node", |
|
|
nazev = models.TextField("název tohoto node", |
|
|
help_text = "Tento název se zobrazuje v nabídkách pro výběr vhodného TreeNode", |
|
|
help_text = "Tento název se zobrazuje v nabídkách pro výběr vhodného TreeNode", |
|
|
blank=False, |
|
|
blank=False, |
|
|
null=True) |
|
|
null=True) # Nezveřejnitelný název na stránky - pouze do adminu |
|
|
zajimave = models.BooleanField(default = False, |
|
|
zajimave = models.BooleanField(default = False, |
|
|
verbose_name = "Zajímavé", |
|
|
verbose_name = "Zajímavé", |
|
|
help_text = "Zobrazí se daná věc na rozcestníku témátek") |
|
|
help_text = "Zobrazí se daná věc na rozcestníku témátek") |
|
@ -1258,8 +1258,25 @@ class TreeNode(PolymorphicModel): |
|
|
if self.succ: |
|
|
if self.succ: |
|
|
self.succ.print_tree(indent=indent) |
|
|
self.succ.print_tree(indent=indent) |
|
|
|
|
|
|
|
|
def getOdkaz(self): |
|
|
def getOdkazStr(self): # String na rozcestník |
|
|
return self.first_child.getOdkaz() |
|
|
return self.first_child.getOdkazStr() |
|
|
|
|
|
|
|
|
|
|
|
def getOdkaz(self): # ID HTML tagu, na který se bude scrollovat #{{self.getOdkaz}} |
|
|
|
|
|
# Jsem si vědom, že tu potenciálně vznikají kolize. |
|
|
|
|
|
# Přijdou mi natolik nepravděpodobné, že je neřeším |
|
|
|
|
|
# Chtěl jsem ale hezké odkazy |
|
|
|
|
|
string = unidecode(self.getOdkazStr()) |
|
|
|
|
|
returnVal = "" |
|
|
|
|
|
i = 0 |
|
|
|
|
|
while len(returnVal) < 16: # Max 15 znaků |
|
|
|
|
|
if i == len(string): |
|
|
|
|
|
break |
|
|
|
|
|
if string[i] == " ": |
|
|
|
|
|
returnVal += "-" |
|
|
|
|
|
if string[i].isalnum(): |
|
|
|
|
|
returnVal += string[i].lower() |
|
|
|
|
|
i += 1 |
|
|
|
|
|
return returnVal |
|
|
|
|
|
|
|
|
def __str__(self): |
|
|
def __str__(self): |
|
|
if self.nazev: |
|
|
if self.nazev: |
|
@ -1296,7 +1313,7 @@ class CisloNode(TreeNode): |
|
|
def aktualizuj_nazev(self): |
|
|
def aktualizuj_nazev(self): |
|
|
self.nazev = "CisloNode: "+str(self.cislo) |
|
|
self.nazev = "CisloNode: "+str(self.cislo) |
|
|
|
|
|
|
|
|
def getOdkaz(self): |
|
|
def getOdkazStr(self): |
|
|
return "Číslo " + str(self.cislo) |
|
|
return "Číslo " + str(self.cislo) |
|
|
|
|
|
|
|
|
class MezicisloNode(TreeNode): |
|
|
class MezicisloNode(TreeNode): |
|
@ -1320,7 +1337,7 @@ class MezicisloNode(TreeNode): |
|
|
else: |
|
|
else: |
|
|
print("!!!!! Nějaké neidentifikované mezičíslo !!!!!") |
|
|
print("!!!!! Nějaké neidentifikované mezičíslo !!!!!") |
|
|
self.nazev = "MezicisloNode: Neidentifikovatelné mezičíslo!" |
|
|
self.nazev = "MezicisloNode: Neidentifikovatelné mezičíslo!" |
|
|
def getOdkaz(self): |
|
|
def getOdkazStr(self): |
|
|
return "Obsah dostupný pouze na webu" |
|
|
return "Obsah dostupný pouze na webu" |
|
|
|
|
|
|
|
|
class TemaVCisleNode(TreeNode): |
|
|
class TemaVCisleNode(TreeNode): |
|
@ -1336,7 +1353,7 @@ class TemaVCisleNode(TreeNode): |
|
|
def aktualizuj_nazev(self): |
|
|
def aktualizuj_nazev(self): |
|
|
self.nazev = "TemaVCisleNode: "+str(self.tema) |
|
|
self.nazev = "TemaVCisleNode: "+str(self.tema) |
|
|
|
|
|
|
|
|
def getOdkaz(self): |
|
|
def getOdkazStr(self): |
|
|
return str(self.tema) |
|
|
return str(self.tema) |
|
|
|
|
|
|
|
|
class KonferaNode(TreeNode): |
|
|
class KonferaNode(TreeNode): |
|
@ -1367,7 +1384,7 @@ class ClanekNode(TreeNode): |
|
|
def aktualizuj_nazev(self): |
|
|
def aktualizuj_nazev(self): |
|
|
self.nazev = "ClanekNode: "+str(self.clanek) |
|
|
self.nazev = "ClanekNode: "+str(self.clanek) |
|
|
|
|
|
|
|
|
def getOdkaz(self): |
|
|
def getOdkazStr(self): |
|
|
return str(self.clanek) |
|
|
return str(self.clanek) |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -1385,7 +1402,7 @@ class UlohaZadaniNode(TreeNode): |
|
|
def aktualizuj_nazev(self): |
|
|
def aktualizuj_nazev(self): |
|
|
self.nazev = "UlohaZadaniNode: "+str(self.uloha) |
|
|
self.nazev = "UlohaZadaniNode: "+str(self.uloha) |
|
|
|
|
|
|
|
|
def getOdkaz(self): |
|
|
def getOdkazStr(self): |
|
|
return str(self.uloha) |
|
|
return str(self.uloha) |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -1416,7 +1433,7 @@ class UlohaVzorakNode(TreeNode): |
|
|
def aktualizuj_nazev(self): |
|
|
def aktualizuj_nazev(self): |
|
|
self.nazev = "UlohaVzorakNode: "+str(self.uloha) |
|
|
self.nazev = "UlohaVzorakNode: "+str(self.uloha) |
|
|
|
|
|
|
|
|
def getOdkaz(self): |
|
|
def getOdkazStr(self): |
|
|
return str(self.uloha) |
|
|
return str(self.uloha) |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -1432,7 +1449,7 @@ class TextNode(TreeNode): |
|
|
def aktualizuj_nazev(self): |
|
|
def aktualizuj_nazev(self): |
|
|
self.nazev = "TextNode: "+str(self.text) |
|
|
self.nazev = "TextNode: "+str(self.text) |
|
|
|
|
|
|
|
|
def getOdkaz(self): |
|
|
def getOdkazStr(self): |
|
|
return str(self.text) |
|
|
return str(self.text) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|