|
|
@ -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): |
|
|
|