fix project create api
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
from rest_framework import generics, status
|
||||
from django.shortcuts import get_object_or_404
|
||||
|
||||
from rest_framework import generics, status, views
|
||||
from rest_framework.response import Response
|
||||
|
||||
from core.apps.projects.models.project import Project, ProjectFolder
|
||||
@@ -11,15 +13,18 @@ class ProjectListApiView(generics.ListAPIView):
|
||||
serializer_class = serializers.ProjectListSerializer
|
||||
queryset = Project.objects.all()
|
||||
permission_classes = [HasRolePermission]
|
||||
required_permissions = []
|
||||
required_permissions = ['project']
|
||||
pagination_class = CustomPageNumberPagination
|
||||
|
||||
def get_queryset(self):
|
||||
return Project.objects.exclude(folder__isnull=False)
|
||||
|
||||
|
||||
class ProjectDetailApiView(generics.RetrieveAPIView):
|
||||
serializer_class = serializers.ProjectDetailSerialzier
|
||||
queryset = Project.objects.all()
|
||||
permission_classes = [HasRolePermission]
|
||||
required_permissions = []
|
||||
required_permissions = ['project']
|
||||
lookup_field = 'id'
|
||||
|
||||
|
||||
@@ -27,7 +32,7 @@ class ProjectCreateApiView(generics.CreateAPIView):
|
||||
serializer_class = serializers.ProjectCreateSerializer
|
||||
queryset = Project.objects.all()
|
||||
permission_classes = [HasRolePermission]
|
||||
required_permissions = []
|
||||
required_permissions = ['project']
|
||||
|
||||
|
||||
# Project Folder
|
||||
@@ -35,14 +40,14 @@ class ProjectFolderCreateApiView(generics.CreateAPIView):
|
||||
serializer_class = serializers.ProjectFolderCreateSerializer
|
||||
queryset = ProjectFolder.objects.all()
|
||||
permission_classes = [HasRolePermission]
|
||||
required_permissions = []
|
||||
required_permissions = ['project_folder']
|
||||
|
||||
|
||||
class ProjectFolderListApiView(generics.ListAPIView):
|
||||
serializer_class = serializers.ProjectFolderListSerializer
|
||||
queryset = ProjectFolder.objects.prefetch_related('projects')
|
||||
permission_classes = [HasRolePermission]
|
||||
required_permissions = []
|
||||
required_permissions = ['project_folder']
|
||||
pagination_class = CustomPageNumberPagination
|
||||
|
||||
|
||||
@@ -50,4 +55,41 @@ class ProjectFolderCreateProjectApiView(generics.CreateAPIView):
|
||||
serializer_class = serializers.ProjectFolderProjectCreateSerializer
|
||||
queryset = Project.objects.all()
|
||||
permission_classes = [HasRolePermission]
|
||||
required_permissions = []
|
||||
required_permissions = ['project_folder']
|
||||
|
||||
|
||||
class ProjectFolderUpdateApiView(generics.GenericAPIView):
|
||||
serializer_class = serializers.ProjectFolderUpdateSerializer
|
||||
queryset = ProjectFolder.objects.all()
|
||||
permission_classes = [HasRolePermission]
|
||||
required_permissions = ['project_folder']
|
||||
|
||||
def put(self, request, id):
|
||||
folder = get_object_or_404(ProjectFolder, id=id)
|
||||
serializer = self.serializer_class(data=request.data, instance=folder)
|
||||
if serializer.is_valid():
|
||||
serializer.save()
|
||||
return Response({'success':True, 'message': "Folder updated!"}, status=200)
|
||||
return Response({"success": False, 'message': serializer.errors}, status=400)
|
||||
|
||||
|
||||
class ProjectFolderDetailApiView(generics.GenericAPIView):
|
||||
serializer_class = serializers.ProjectFolderDetailSerializer
|
||||
queryset = ProjectFolder.objects.select_related('projects')
|
||||
permission_classes = [HasRolePermission]
|
||||
required_permissions = ['project_folder']
|
||||
|
||||
def get(self, request, id):
|
||||
folder = get_object_or_404(ProjectFolder, id=id)
|
||||
serializer = self.serializer_class(folder)
|
||||
return Response(serializer.data, status=200)
|
||||
|
||||
|
||||
class ProjectFolderDeleteApiView(views.APIView):
|
||||
permission_classes = [HasRolePermission]
|
||||
required_permissions = ['project_folder']
|
||||
|
||||
def delete(self, request, id):
|
||||
folder = get_object_or_404(ProjectFolder, id=id)
|
||||
folder.delete()
|
||||
return Response({"success": True, "message": 'deleted!'}, status=204)
|
||||
Reference in New Issue
Block a user