Úprava funkce verejne() u Problemu, aby zohlednovala verejnost cisla.
This commit is contained in:
parent
09c1d21257
commit
5ec84ad885
1 changed files with 35 additions and 7 deletions
|
@ -26,6 +26,7 @@ from taggit.managers import TaggableManager
|
|||
from reversion import revisions as reversion
|
||||
|
||||
from seminar.utils import roman, FirstTagParser # Pro získání úryvku z TextNode
|
||||
from seminar import treelib
|
||||
|
||||
from unidecode import unidecode # Používám pro získání ID odkazu (ještě je to někde po někom zakomentované)
|
||||
|
||||
|
@ -869,13 +870,22 @@ class Problem(SeminarModelBase,PolymorphicModel):
|
|||
stav_verejny = False
|
||||
if self.stav == 'zadany' or self.stav == 'vyreseny':
|
||||
stav_verejny = True
|
||||
return stav_verejny
|
||||
|
||||
#cislo_verejne = False
|
||||
#if (self.cislo_zadani and self.cislo_zadani.verejne()):
|
||||
# cislo_verejne = True
|
||||
|
||||
#return (stav_verejny and cislo_verejne)
|
||||
print("stav_verejny: {}".format(stav_verejny))
|
||||
|
||||
cislo_verejne = False
|
||||
cislonode = self.cislo_node()
|
||||
if cislonode is None:
|
||||
# problém nemá vlastní node, veřejnost posuzujeme jen podle stavu
|
||||
print("empty node")
|
||||
return stav_verejny
|
||||
else:
|
||||
cislo_zadani = cislonode.cislo
|
||||
if (cislo_zadani and cislo_zadani.verejne()):
|
||||
print("cislo: {}".format(cislo_zadani))
|
||||
cislo_verejne = True
|
||||
print("stav_verejny: {}".format(stav_verejny))
|
||||
print("cislo_verejne: {}".format(cislo_verejne))
|
||||
return (stav_verejny and cislo_verejne)
|
||||
verejne.boolean = True
|
||||
|
||||
def verejne_url(self):
|
||||
|
@ -930,6 +940,16 @@ class Tema(Problem):
|
|||
for tvcn in self.temavcislenode_set.all():
|
||||
tvcn.save()
|
||||
|
||||
def cislo_node(self):
|
||||
tema_node_set = self.temavcislenode_set.all()
|
||||
tema_cisla_vyskyt = []
|
||||
for tn in tema_node_set:
|
||||
tema_cisla_vyskyt.append(
|
||||
treelib.get_upper_node_of_type(tn, CisloNode).cislo)
|
||||
tema_cisla_vyskyt.sort(key=lambda x:x.datum_vydani)
|
||||
prvni_zadani = tema_cisla_vyskyt[0]
|
||||
return prvni_zadani.cislonode
|
||||
|
||||
class Clanek(Problem):
|
||||
class Meta:
|
||||
db_table = 'seminar_clanky'
|
||||
|
@ -946,6 +966,9 @@ class Clanek(Problem):
|
|||
# return self.nadproblem.kod_v_rocniku()+".c{}".format(self.kod)
|
||||
return "c{}".format(self.kod)
|
||||
return '<Není zadaný>'
|
||||
|
||||
def node(self):
|
||||
return None
|
||||
|
||||
class Text(SeminarModelBase):
|
||||
class Meta:
|
||||
|
@ -1019,6 +1042,9 @@ class Uloha(Problem):
|
|||
# Neexistující *Node nemá smysl aktualizovat.
|
||||
pass
|
||||
|
||||
def cislo_node(self):
|
||||
zadani_node = self.ulohazadaninode
|
||||
return treelib.get_upper_node_of_type(zadani_node, CisloNode)
|
||||
|
||||
@reversion.register(ignore_duplicates=True)
|
||||
class Reseni(SeminarModelBase):
|
||||
|
@ -1309,6 +1335,8 @@ class Konfera(Problem):
|
|||
def __str__(self):
|
||||
return "{}: ({})".format(self.nazev, self.soustredeni)
|
||||
|
||||
def cislo_node(self):
|
||||
return None
|
||||
|
||||
# Vazebna tabulka. Mozna se generuje automaticky.
|
||||
@reversion.register(ignore_duplicates=True)
|
||||
|
|
Loading…
Reference in a new issue