def revertPrune( db, session, clade, editInfo ): if( editInfo.originalTreeType == 'source' ): prunedClade = build.snode2tree( db, editInfo.affected_node_id ) else: prunedClade = build.gnode2tree( db, editInfo.affected_node_id, ( ( db.gnode.id == db.prune_detail.pruned_gnode ) & ( db.gnode.pruned == True ) & ( db.prune_detail.gtree_edit == editInfo.id ) ) ) parentNode = util.getNodeById( clade, editInfo.affected_clade_id ) if( parentNode is None ): return parentNode.add_child( prunedClade );
def revertReplace( db, session, tree, editInfo ): if( editInfo.originalTreeType == 'source' ): replacedClade = build.snode2tree( db, editInfo.affected_node_id ) else: replacedClade = build.gnode2tree( db, editInfo.affected_node_id, ( ( db.gnode.id == db.prune_detail.pruned_gnode ) & ( db.prune_detail.gtree_edit == editInfo.id ) ) ) replacingClade = util.getNodeById( tree, editInfo.target_gnode ) #replacingClade = build.gnode2tree( db, editInfo.target_gnode ) if( replacingClade is None ): return parentNode = replacingClade.parent parentNode.remove_child( replacingClade ) parentNode.add_child( replacedClade )