def post(self, request, *args, **kwargs): task_id = int(self.kwargs['task_id']) config_stages = request.data.get('config_stages', None) if config_stages is not None: for stage in config_stages: temp_serializer = self.get_serializer(data=stage) temp_serializer.is_valid() temp_serializer._saving_instances = False instance = CITaskConfigService.task_stage(stage.get('id')) instance = temp_serializer.recursive_save( temp_serializer.validated_data, instance) instance.save() for step in stage.get('steps', []): temp_serializer = ci_step_serializer.CITaskStepSerializer( data=step) temp_serializer.is_valid() temp_serializer._saving_instances = False instance = CITaskConfigService.task_step(step.get('id')) instance = temp_serializer.recursive_save( temp_serializer.validated_data, instance) instance.save() parameter_groups = CITaskParameterService.task_parameter_list( task_id) for group in parameter_groups: CITaskParameterService.save_step_settings(str(group.id)) return Response(config_stages, status=status.HTTP_201_CREATED)
def delete(self, request, *args, **kwargs): stage_id = self.kwargs['stage_id'] CITaskConfigService.delete_steps(stage_id) stage = CITaskConfigService.task_stage(stage_id) parameter_groups = CITaskParameterService.task_parameter_list( stage.task_id) for group in parameter_groups: CITaskParameterService.save_step_settings(str(group.id)) return self.destroy(request, *args, **kwargs)
def get_ParameterGroups(self, obj): parameter_groups = CITaskParameterService.task_parameter_list(obj.id) result = list() for item in parameter_groups: temp = dict() temp['id'] = str(item.id) temp['title'] = item.group_name temp['default'] = item.is_default result.append(temp) return result
def get_ci_task_parameter_list(self, task_id): ci_task = CITask.objects.get(int(task_id)) task_parameter_groups = CITaskParameterService.task_parameter_list( int(task_id)) vm_groups = list() for group in task_parameter_groups: temp = VM_TaskParameterGroup(group) vm_groups.append(temp) pagefileds = {"ci_task_parameter_groups": vm_groups, "task": ci_task} return self.get_webpart(pagefileds, CITaskPath.task_parameter_list)
def post(self, request, *args, **kwargs): stage_id = self.kwargs.get('stage_id', None) stage = CITaskConfigService.task_stage(stage_id) serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) self.perform_create(serializer) headers = self.get_success_headers(serializer.data) parameter_groups = CITaskParameterService.task_parameter_list( stage.task_id) for group in parameter_groups: CITaskParameterService.save_step_settings(str(group.id)) return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)
def get_ParameterGroups(self, obj): parameter_groups = CITaskParameterService.task_parameter_list(obj.id) result = list() for item in parameter_groups: temp = dict() temp['id'] = str(item.id) temp['title'] = item.group_name temp['default'] = item.is_default temp['parameters'] = list() i = 1 if item.parameters is not None: for parameter in item.parameters: temp_dict = dict() temp_dict['id'] = i temp_dict['key'] = parameter.key temp_dict['value'] = parameter.value temp_dict['description'] = parameter.description temp['parameters'].append(temp_dict) i = i + 1 result.append(temp) return result
def task_parameter_dropdown_list(self, task_id): task_parameter_groups = CITaskParameterService.task_parameter_list( int(task_id)) pagefileds = {"ci_task_parameter_groups": task_parameter_groups} return self.get_webpart( pagefileds, CICommonControllPath.task_parameter_dropdownlist)
def get_task_parameter_menu(self, task_id): task_parameter_group = CITaskParameterService.task_parameter_list( int(task_id)) pagefileds = {"parameter_groups": task_parameter_group} return self.get_webpart(pagefileds, CITaskPath.task_parameter_menu)
def get_queryset(self): task_id = self.kwargs['task_id'] return CITaskParameterService.task_parameter_list(task_id)