@@ -7,6 +7,7 @@ CORS_ALLOWED_ORIGINS = [
|
|||||||
"https://ibapp.uz",
|
"https://ibapp.uz",
|
||||||
"https://www.ibapp.uz",
|
"https://www.ibapp.uz",
|
||||||
'https://test.ibapp.uz',
|
'https://test.ibapp.uz',
|
||||||
|
'http://192.168.1.104:8081',
|
||||||
]
|
]
|
||||||
|
|
||||||
CSRF_TRUSTED_ORIGINS = [
|
CSRF_TRUSTED_ORIGINS = [
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
|
from django.db.models import Q
|
||||||
|
|
||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
|
|
||||||
@@ -293,8 +294,8 @@ class ProjectsSerializer(serializers.ModelSerializer):
|
|||||||
|
|
||||||
|
|
||||||
class ProjectFoldersSerializer(serializers.ModelSerializer):
|
class ProjectFoldersSerializer(serializers.ModelSerializer):
|
||||||
projects = ProjectsSerializer(many=True)
|
projects = ProjectsSerializer(many=True, read_only=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = ProjectFolder
|
model = ProjectFolder
|
||||||
fields = ['id', 'name', 'projects']
|
fields = ['id', 'name', 'projects']
|
||||||
@@ -176,18 +176,30 @@ class ProjectAndFolderApiView(views.APIView):
|
|||||||
def get(self, request):
|
def get(self, request):
|
||||||
mine = request.query_params.get('is_mine')
|
mine = request.query_params.get('is_mine')
|
||||||
wherehouse_ids = request.query_params.getlist('wherehouse')
|
wherehouse_ids = request.query_params.getlist('wherehouse')
|
||||||
folders = ProjectFolder.objects.prefetch_related('projects')
|
|
||||||
projects = Project.objects.exclude(folder__isnull=False)
|
projects = Project.objects.exclude(folder__isnull=False)
|
||||||
|
folder_projects = Project.objects.all()
|
||||||
|
|
||||||
if mine and mine.lower() == 'true':
|
if mine and mine.lower() == 'true':
|
||||||
projects = projects.filter(Q(boss=request.user) | Q(foreman=request.user) | Q(other_members=request.user))
|
user_filter = Q(boss=request.user) | Q(foreman=request.user) | Q(other_members=request.user)
|
||||||
|
projects = projects.filter(user_filter).distinct()
|
||||||
|
folder_projects = folder_projects.filter(user_filter).distinct()
|
||||||
|
|
||||||
if wherehouse_ids:
|
if wherehouse_ids:
|
||||||
projects = projects.filter(wherehouse__in=wherehouse_ids)
|
projects = projects.filter(wherehouse__in=wherehouse_ids)
|
||||||
|
folder_projects = folder_projects.filter(wherehouse__in=wherehouse_ids)
|
||||||
|
|
||||||
|
folders = ProjectFolder.objects.prefetch_related(
|
||||||
|
Prefetch('projects', queryset=folder_projects)
|
||||||
|
)
|
||||||
|
|
||||||
projects_serializer = serializers.ProjectsSerializer(projects, many=True)
|
projects_serializer = serializers.ProjectsSerializer(projects, many=True)
|
||||||
folders_serializer = serializers.ProjectFoldersSerializer(folders, many=True)
|
folders_serializer = serializers.ProjectFoldersSerializer(folders, many=True)
|
||||||
|
|
||||||
return Response(
|
return Response(
|
||||||
{
|
{
|
||||||
'project_folders': folders_serializer.data,
|
'project_folders': folders_serializer.data,
|
||||||
'projects': projects_serializer.data,
|
'projects': projects_serializer.data,
|
||||||
},
|
},
|
||||||
status=200
|
status=200
|
||||||
)
|
)
|
||||||
Reference in New Issue
Block a user