def collectMovement(self, movement_list): """ group movements in the way we want. Thanks to this method, we are able to retrieve movement classed by order, resource, criterion,.... movement_list : the list of movement wich we want to group class_list : the list of classes used to group movements. The order of the list is important and determines by what we will group movement first Typically, check_list is : [DateMovementGroup,PathMovementGroup,...] """ movement_group_list = self.getMovementGroupList() last_line_movement_group = self.getDeliveryMovementGroupList()[-1] separate_method_name_list = self.getDeliveryCellSeparateOrderList([]) root_group_node = MovementGroupNode( separate_method_name_list=separate_method_name_list, movement_group_list=movement_group_list, last_line_movement_group=last_line_movement_group) root_group_node.append(movement_list) return root_group_node
def collectMovement(self, movement_list): """ group movements in the way we want. Thanks to this method, we are able to retrieve movement classed by order, resource, criterion,.... movement_list : the list of movement wich we want to group class_list : the list of classes used to group movements. The order of the list is important and determines by what we will group movement first Typically, check_list is : [DateMovementGroup,PathMovementGroup,...] """ movement_group_list = self.getMovementGroupList() # Need to find the last branch movement group for separate methods. last_line_movement_group = None previous_collect_order_group = None for movement_group in movement_group_list: collect_order_group = movement_group.getCollectOrderGroup() if collect_order_group == 'line': if previous_collect_order_group == 'delivery' \ or movement_group.isBranch(): last_line_movement_group = movement_group elif collect_order_group == 'cell': break previous_collect_order_group = collect_order_group if last_line_movement_group is None: # XXX I think this is an error, but there are many tests which # fail, so for now I permit falling back to the last one. #raise CollectError('No branch movement group found at %r' % (self,)) last_line_movement_group = movement_group separate_method_name_list = self.getDeliveryCellSeparateOrderList([]) root_group_node = MovementGroupNode( separate_method_name_list=separate_method_name_list, movement_group_list=movement_group_list, last_line_movement_group=last_line_movement_group) root_group_node.append(movement_list) return root_group_node