Remove zapomenutá třída
This commit is contained in:
parent
e42faa4ce8
commit
1012f9b3c5
1 changed files with 0 additions and 138 deletions
|
@ -68,144 +68,6 @@ class ObalkovaniView(generic.ListView):
|
|||
context['cislo'] = self.cislo
|
||||
return context
|
||||
|
||||
class TNLData(object):
|
||||
def __init__(self,anode,parent=None, index=None):
|
||||
self.node = anode
|
||||
self.sernode = vr.TreeNodeSerializer(anode)
|
||||
self.children = []
|
||||
self.parent = parent
|
||||
self.tema_in_path = False
|
||||
self.index = index
|
||||
|
||||
if parent:
|
||||
self.tema_in_path = parent.tema_in_path
|
||||
if isinstance(anode, m.TemaVCisleNode):
|
||||
self.tema_in_path = True
|
||||
|
||||
def add_edit_options(self):
|
||||
self.deletable = tnltt.deletable(self)
|
||||
self.editable_siblings = tnltt.editableSiblings(self)
|
||||
self.editable_children = tnltt.editableChildren(self)
|
||||
self.text_only_subtree = tnltt.textOnlySubtree(self)
|
||||
self.can_podvesit_za = tnltt.canPodvesitZa(self)
|
||||
self.can_podvesit_pred = tnltt.canPodvesitPred(self)
|
||||
self.appendable_children = tnltt.appendableChildren(self)
|
||||
print("appChld",self.appendable_children)
|
||||
if self.parent:
|
||||
self.appendable_siblings = tnltt.appendableChildren(self.parent)
|
||||
else:
|
||||
self.appendable_siblings = []
|
||||
@classmethod
|
||||
def public_above(cls, anode):
|
||||
""" Returns output of verejne for closest Rocnik, Cislo or Problem above.
|
||||
(All of them have method verejne.)"""
|
||||
parent = anode # chceme začít už od konkrétního node včetně
|
||||
while True:
|
||||
rocnik = isinstance(parent, s.RocnikNode)
|
||||
cislo = isinstance(parent, s.CisloNode)
|
||||
uloha = (isinstance(parent, s.UlohaVzorakNode) or
|
||||
isinstance(parent, s.UlohaZadaniNode))
|
||||
tema = isinstance(parent, s.TemaVCisleNode)
|
||||
|
||||
if (rocnik or cislo or uloha or tema) or parent==None:
|
||||
break
|
||||
else:
|
||||
parent = treelib.get_parent(parent)
|
||||
if rocnik:
|
||||
return parent.rocnik.verejne()
|
||||
elif cislo:
|
||||
return parent.cislo.verejne()
|
||||
elif uloha:
|
||||
return parent.uloha.verejne()
|
||||
elif tema:
|
||||
return parent.tema.verejne()
|
||||
elif None:
|
||||
print("Existuje TreeNode, který není pod číslem, ročníkem, úlohou"
|
||||
"ani tématem. {}".format(anode))
|
||||
return False
|
||||
|
||||
@classmethod
|
||||
def all_public_children(cls, anode):
|
||||
for ch in treelib.all_children(anode):
|
||||
if TNLData.public_above(ch):
|
||||
yield ch
|
||||
else:
|
||||
continue
|
||||
|
||||
@classmethod
|
||||
def from_treenode(cls, anode, user, parent=None, index=None):
|
||||
if TNLData.public_above(anode) or user.has_perm('auth.org'):
|
||||
out = cls(anode,parent,index)
|
||||
else:
|
||||
raise PermissionDenied()
|
||||
|
||||
if user.has_perm('auth.org'):
|
||||
enum_children = enumerate(treelib.all_children(anode))
|
||||
else:
|
||||
enum_children = enumerate(TNLData.all_public_children(anode))
|
||||
|
||||
for (idx,ch) in enum_children:
|
||||
outitem = cls.from_treenode(ch, user, out, idx)
|
||||
out.children.append(outitem)
|
||||
out.add_edit_options()
|
||||
return out
|
||||
|
||||
@classmethod
|
||||
def from_tnldata_list(cls, tnllist):
|
||||
"""Vyrobíme virtuální TNL, který nemá obsah, ale má za potomky všechna zadaná TNLData"""
|
||||
result = cls(None)
|
||||
for idx, tnl in enumerate(tnllist):
|
||||
result.children.append(tnl)
|
||||
tnl.parent = result
|
||||
tnl.index = idx
|
||||
result.add_edit_options()
|
||||
return result
|
||||
|
||||
@classmethod
|
||||
def filter_treenode(cls, treenode, predicate):
|
||||
tnll = cls._filter_treenode_recursive(treenode, predicate) # TreeNodeList List :-)
|
||||
return TNLData.from_tnldata_list(tnll)
|
||||
|
||||
@classmethod
|
||||
def _filter_treenode_recursive(cls, treenode, predicate):
|
||||
if predicate(treenode):
|
||||
return [cls.from_treenode(treenode)]
|
||||
else:
|
||||
found = []
|
||||
for tn in treelib.all_children(treenode):
|
||||
result = cls.filter_treenode(tn, predicate)
|
||||
# Result by v tuhle chvíli měl být seznam TNLDat odpovídající treenodům, jež matchnuly predikát.
|
||||
for tnl in result:
|
||||
found.append(tnl)
|
||||
return found
|
||||
|
||||
def to_json(self):
|
||||
#self.node = anode
|
||||
#self.children = []
|
||||
#self.parent = parent
|
||||
#self.tema_in_path = False
|
||||
#self.index = index
|
||||
out = {}
|
||||
out['node'] = self.sernode.data
|
||||
out['children'] = [n.to_json() for n in self.children]
|
||||
out['tema_in_path'] = self.tema_in_path
|
||||
out['index'] = self.index
|
||||
out['deletable'] = self.deletable
|
||||
out['editable_siblings'] = self.editable_siblings
|
||||
out['editable_children'] = self.editable_children
|
||||
out['text_only_subtree'] = self.text_only_subtree
|
||||
out['can_podvesit_za'] = self.can_podvesit_za
|
||||
out['can_podvesit_pod'] = self.can_podvesit_pred
|
||||
out['appendable_children'] = self.appendable_children
|
||||
out['appendable_siblings'] = self.appendable_siblings
|
||||
|
||||
return out
|
||||
|
||||
|
||||
|
||||
def __repr__(self):
|
||||
return("TNL({})".format(self.node))
|
||||
|
||||
|
||||
# FIXME: Pozor, níž je ještě jeden ProblemView!
|
||||
#class ProblemView(generic.DetailView):
|
||||
|
|
Loading…
Reference in a new issue