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 post(self, request, *args, **kwargs):
     serializer = self.get_serializer(data=request.data)
     serializer.is_valid(raise_exception=True)
     self.perform_create(serializer)
     CITaskParameterService.save_step_settings(serializer.instance.id)
     headers = self.get_success_headers(serializer.data)
     return Response(serializer.data,
                     status=status.HTTP_201_CREATED,
                     headers=headers)
 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)