diff --git a/core/apps/projects/serializers/project.py b/core/apps/projects/serializers/project.py index 8c90d1d..4486f5c 100644 --- a/core/apps/projects/serializers/project.py +++ b/core/apps/projects/serializers/project.py @@ -1,4 +1,5 @@ from django.db import transaction +from django.db.models import Q from rest_framework import serializers @@ -293,8 +294,20 @@ class ProjectsSerializer(serializers.ModelSerializer): class ProjectFoldersSerializer(serializers.ModelSerializer): - projects = ProjectsSerializer(many=True) + projects = serializers.SerializerMethodField(method_name='get_projects') class Meta: model = ProjectFolder - fields = ['id', 'name', 'projects'] \ No newline at end of file + fields = ['id', 'name', 'projects'] + + def get_projects(self, obj): + user = self.context.get('user') + is_mine = self.context.get('is_mine') + if is_mine and is_mine.lower() == 'true': + projects = obj.projects.filter( + Q(boss=user) | + Q(foreman=user) | + Q(other_members=user) + ).distinct() + return ProjectsSerializer(projects, many=True).data + return ProjectsSerializer(obj.projects, many=True).data \ No newline at end of file