Treelib: get_parent

This commit is contained in:
Pavel 'LEdoian' Turinsky 2020-03-11 21:30:00 +01:00
parent 98bad2099a
commit 989e998e03

View file

@ -1,3 +1,4 @@
from django.core.exceptions import ObjectDoesNotExist
# NOTE: node.prev a node.succ jsou implementovány přímo v models.TreeNode
# Slouží k debugování pro rychlé získání představy o podobě podstromu pod tímto TreeNode.
@ -13,8 +14,19 @@ def print_tree(node,indent=0):
def get_parent(node):
pass
# Nejdřív získáme prvního potomka...
# Django je trošku hloupé, takže node.prev nevrací None, ale hází django.core.exceptions.ObjectDoesNotExist
while True:
try:
node = node.prev
except ObjectDoesNotExist:
# We rely here on the fact that the assignment will not happen if RHS throws an exception
break
# ... a z prvního potomka umíme najít rodiče
# Django je pořád hloupé...
try:
return node.father_of_first
except ObjectDoesNotExist:
return None
# Obecný next: další Node v "the-right-order" pořadí (já, pak potomci, pak sousedé)
def general_next(node):