def _handle_recipe_set(self, xmlrecipeSet, user, ignore_missing_tasks=False): """ Handles the processing of recipesets into DB entries from their xml """ recipeSet = RecipeSet(ttasks=0) recipeset_priority = xmlrecipeSet.get_xml_attr('priority',unicode,None) if recipeset_priority is not None: try: my_priority = TaskPriority.from_string(recipeset_priority) except InvalidRequestError: raise BX(_('You have specified an invalid recipeSet priority:%s' % recipeset_priority)) allowed_priorities = RecipeSet.allowed_priorities_initial(user) if my_priority in allowed_priorities: recipeSet.priority = my_priority else: recipeSet.priority = TaskPriority.default_priority() else: recipeSet.priority = TaskPriority.default_priority() for xmlrecipe in xmlrecipeSet.iter_recipes(): recipe = self.handleRecipe(xmlrecipe, user, ignore_missing_tasks=ignore_missing_tasks) recipe.ttasks = len(recipe.tasks) recipeSet.ttasks += recipe.ttasks recipeSet.recipes.append(recipe) # We want the guests to be part of the same recipeSet for guest in recipe.guests: recipeSet.recipes.append(guest) guest.ttasks = len(guest.tasks) recipeSet.ttasks += guest.ttasks if not recipeSet.recipes: raise BX(_('No Recipes! You can not have a recipeSet with no recipes!')) return recipeSet
def _handle_recipe_set(self, xmlrecipeSet, user, ignore_missing_tasks=False): """ Handles the processing of recipesets into DB entries from their xml """ recipeSet = RecipeSet(ttasks=0) recipeset_priority = xmlrecipeSet.get_xml_attr('priority', unicode, None) if recipeset_priority is not None: try: my_priority = TaskPriority.from_string(recipeset_priority) except InvalidRequestError: raise BX( _('You have specified an invalid recipeSet priority:%s' % recipeset_priority)) allowed_priorities = RecipeSet.allowed_priorities_initial(user) if my_priority in allowed_priorities: recipeSet.priority = my_priority else: recipeSet.priority = TaskPriority.default_priority() else: recipeSet.priority = TaskPriority.default_priority() for xmlrecipe in xmlrecipeSet.iter_recipes(): recipe = self.handleRecipe( xmlrecipe, user, ignore_missing_tasks=ignore_missing_tasks) recipe.ttasks = len(recipe.tasks) recipeSet.ttasks += recipe.ttasks recipeSet.recipes.append(recipe) # We want the guests to be part of the same recipeSet for guest in recipe.guests: recipeSet.recipes.append(guest) guest.ttasks = len(guest.tasks) recipeSet.ttasks += guest.ttasks if not recipeSet.recipes: raise BX( _('No Recipes! You can not have a recipeSet with no recipes!')) return recipeSet