From 9a0d229f9ac7777d49e7ac0bde3b5f71ad571358 Mon Sep 17 00:00:00 2001 From: "Martin Z. (Zimamazim)" Date: Wed, 11 Dec 2019 23:35:27 +0100 Subject: [PATCH] Rozcestnik tematek - odkazy --- seminar/models.py | 43 +++++++++++++------ .../templates/seminar/tematka/rozcestnik.html | 6 +-- seminar/urls.py | 4 +- seminar/views.py | 12 ++++-- 4 files changed, 43 insertions(+), 22 deletions(-) diff --git a/seminar/models.py b/seminar/models.py index 414f96aa..60bc361e 100644 --- a/seminar/models.py +++ b/seminar/models.py @@ -23,7 +23,7 @@ from reversion import revisions as reversion 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 @@ -620,7 +620,7 @@ class Problem(SeminarModelBase,PolymorphicModel): id = models.AutoField(primary_key = True) # 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 nadproblem = models.ForeignKey('self', verbose_name='nadřazený problém', @@ -1243,7 +1243,7 @@ class TreeNode(PolymorphicModel): 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", blank=False, - null=True) + null=True) # Nezveřejnitelný název na stránky - pouze do adminu zajimave = models.BooleanField(default = False, verbose_name = "Zajímavé", help_text = "Zobrazí se daná věc na rozcestníku témátek") @@ -1258,9 +1258,26 @@ class TreeNode(PolymorphicModel): if self.succ: self.succ.print_tree(indent=indent) - def getOdkaz(self): - return self.first_child.getOdkaz() - + def getOdkazStr(self): # String na rozcestník + 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): if self.nazev: return self.nazev @@ -1296,7 +1313,7 @@ class CisloNode(TreeNode): def aktualizuj_nazev(self): self.nazev = "CisloNode: "+str(self.cislo) - def getOdkaz(self): + def getOdkazStr(self): return "Číslo " + str(self.cislo) class MezicisloNode(TreeNode): @@ -1320,7 +1337,7 @@ class MezicisloNode(TreeNode): else: print("!!!!! Nějaké neidentifikované mezičíslo !!!!!") self.nazev = "MezicisloNode: Neidentifikovatelné mezičíslo!" - def getOdkaz(self): + def getOdkazStr(self): return "Obsah dostupný pouze na webu" class TemaVCisleNode(TreeNode): @@ -1336,7 +1353,7 @@ class TemaVCisleNode(TreeNode): def aktualizuj_nazev(self): self.nazev = "TemaVCisleNode: "+str(self.tema) - def getOdkaz(self): + def getOdkazStr(self): return str(self.tema) class KonferaNode(TreeNode): @@ -1367,7 +1384,7 @@ class ClanekNode(TreeNode): def aktualizuj_nazev(self): self.nazev = "ClanekNode: "+str(self.clanek) - def getOdkaz(self): + def getOdkazStr(self): return str(self.clanek) @@ -1385,7 +1402,7 @@ class UlohaZadaniNode(TreeNode): def aktualizuj_nazev(self): self.nazev = "UlohaZadaniNode: "+str(self.uloha) - def getOdkaz(self): + def getOdkazStr(self): return str(self.uloha) @@ -1416,7 +1433,7 @@ class UlohaVzorakNode(TreeNode): def aktualizuj_nazev(self): self.nazev = "UlohaVzorakNode: "+str(self.uloha) - def getOdkaz(self): + def getOdkazStr(self): return str(self.uloha) @@ -1432,7 +1449,7 @@ class TextNode(TreeNode): def aktualizuj_nazev(self): self.nazev = "TextNode: "+str(self.text) - def getOdkaz(self): + def getOdkazStr(self): return str(self.text) diff --git a/seminar/templates/seminar/tematka/rozcestnik.html b/seminar/templates/seminar/tematka/rozcestnik.html index 2afb0e38..abec82dd 100644 --- a/seminar/templates/seminar/tematka/rozcestnik.html +++ b/seminar/templates/seminar/tematka/rozcestnik.html @@ -1,12 +1,12 @@ {% for tematko in tematka %} -

TEMA

+

{{tematko.nazev}}

{{tematko.abstrakt}}