Treelib: create_node_before
This commit is contained in:
		
							parent
							
								
									db5f0fd0c5
								
							
						
					
					
						commit
						c1e107c89e
					
				
					 1 changed files with 14 additions and 3 deletions
				
			
		|  | @ -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…
	
		Reference in a new issue
	
	 Pavel 'LEdoian' Turinsky
						Pavel 'LEdoian' Turinsky