Browse Source

Treelib: create_node_before

export_seznamu_prednasek
Pavel 'LEdoian' Turinsky 5 years ago
parent
commit
c1e107c89e
  1. 17
      seminar/treelib.py

17
seminar/treelib.py

@ -173,9 +173,20 @@ def create_child(parent, type, **kwargs):
new_node.succ = orig_child
new_node.save()
def create_node_before(some, arguments, but, i, dont, know, which, yet):
pass
# Tohle bude hell.
def create_node_before(successor, type, **kwargs):
if safe_pred(successor) is not None:
# Easy: přidáme za předchůdce
create_node_after(successor.prev, type, **kwargs)
# Nemáme předchůdce, jsme tedy první z bratrů. Máme otce?
if safe_father_of_first(successor) is not None:
# Ano -> Easy: vyrobíme nového potomka
# NOTE: Tohle je možná trošku abuse implementace výše, ale to nevadí moc...
create_child(successor.father_of_first, type, **kwargs)
# Teď už easy: Jsme sirotci, takže se vyrobíme a našeho následníka si přidáme jako succ
new = type.objects.create(**kwargs)
new.succ = successor
new.save()
# ValueError, pokud je (aspoň) jeden parametr None
def swap(node, other):

Loading…
Cancel
Save