def project_detail(request, id, format=None): try: snippet = Project_Assets.objects.get(id=id) except Project_Assets.DoesNotExist: return Response(status=status.HTTP_404_NOT_FOUND) if request.method == 'GET': serializer = serializers.ProjectSerializer(snippet) return Response(serializer.data) elif request.method == 'PUT' and request.user.has_perm( 'OpsManage.can_change_project_assets'): serializer = serializers.ProjectSerializer(snippet, data=request.data) old_name = snippet.project_name if serializer.is_valid(): serializer.save() recordAssets.delay( user=str(request.user), content="修改业务系统名称为:{old_name} -> {project_name}".format( old_name=old_name, project_name=request.data.get("project_name")), type="project", id=id) return Response(serializer.data) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) elif request.method == 'DELETE' and request.user.has_perm( 'OpsManage.can_delete_rroject_assets'): if not request.user.has_perm('OpsManage.can_delete_rroject_Assets'): return Response(status=status.HTTP_403_FORBIDDEN) snippet.delete() return Response(status=status.HTTP_204_NO_CONTENT)
def project_list(request,format=None): if request.method == 'GET': snippets = Project_Assets.objects.all() serializer = serializers.ProjectSerializer(snippets, many=True) return Response(serializer.data) elif request.method == 'POST': serializer = serializers.ProjectSerializer(data=request.data) if serializer.is_valid(): serializer.save() recordAssets.delay(user=str(request.user),content="添加产品线名称:{project_name}".format(project_name=request.data.get("project_name")),type="project",id=serializer.data.get('id')) return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def put(self, request, *args, **kwargs): body = json.loads(request.body) project = get_object_or_404(models.Project, pk=self.kwargs['pk']) serializer = serializers.ProjectSerializer(project, data=body) serializer.is_valid() serializer.save() # Update Ticket Template template_serializer = serializers.TicketTemplateSerializer( instance=project.ticket_template, data=body['ticket_template']) template_serializer.is_valid() template_serializer.save() serializer.data.ticket_template = template_serializer.data # Update the roles serialized_roles = [] for role in body['roles']: role_serializer = serializers.RoleSerializer(instance=project, data=role) role_serializer.is_valid() role_serializer.save() #serialized_roles.append({'role': role_serializer.validated_data['role'], 'username': role_serializer.validated_data['profile']}) serializer.delete_removed_roles(project, body['roles']) #The roles data sent back is not getting assigned correctly #Don't this the following line works serializer.data['roles'] = role_serializer.data return Response(serializer.data, status=status.HTTP_202_ACCEPTED)
def post(self, request, format=None): #print(pretty_request(request)) body = json.loads(request.body) project = models.Project(name=body['name'], description=body['description']) project.save(user=request.user) serializer = serializers.ProjectSerializer(project) return Response(serializer.data, status=status.HTTP_201_CREATED)
def retrieve(self, request, pk=None): queryset = models.Project.objects.filter() project = get_object_or_404(queryset, pk=pk) serializer = serializers.ProjectSerializer(project, context={"request": request}) return Response(serializer.data)
def list(self, request): queryset = models.Project.objects.filter() serializer = serializers.ProjectSerializer(queryset, many=True, context={"request" : request}) return Response(serializer.data)