Merge pull request #21 from xoliqberdiyev/test

Test
This commit is contained in:
xolikberdiyev
2025-10-15 14:30:16 +05:00
committed by GitHub
3 changed files with 19 additions and 5 deletions

View File

@@ -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 = [

View File

@@ -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,7 +294,7 @@ 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

View File

@@ -176,14 +176,26 @@ 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,