From 66857bae2613cc3681f7a53eaf38eabb6e723e5a Mon Sep 17 00:00:00 2001 From: Mojtaba-z Date: Sat, 8 Nov 2025 14:47:00 +0330 Subject: [PATCH] fix - organization childs in visibility_services --- .../services/visibility_services.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/apps/authentication/services/visibility_services.py b/apps/authentication/services/visibility_services.py index 61a0ac0..00dbda1 100644 --- a/apps/authentication/services/visibility_services.py +++ b/apps/authentication/services/visibility_services.py @@ -3,6 +3,7 @@ import typing from django.db.models import Q from apps.authentication.models import Organization +from apps.authentication.services.service import get_all_org_child from apps.core.visibility_registry import VISIBILITY_MAP @@ -12,18 +13,30 @@ def get_visible_organizations(org: Organization) -> typing.Any: """ if org.free_visibility_by_scope: + # get data by organization field of activity + # country if org.field_of_activity == 'CO': + # admin control if org.type.key == 'ADM': return Organization.objects.all() else: return Organization.objects.all().exclude(id=org.id).exclude(type__key='ADM') - + # city elif org.field_of_activity == 'CI': return Organization.objects.filter(city=org.city) - + # province elif org.field_of_activity == 'PR': return Organization.objects.filter(province=org.province) + elif not org.free_visibility_by_scope: + + # get data by organization child + child_orgs = get_all_org_child(org) + + # add my organization in list + child_orgs.append(org) + return Organization.objects.filter(id__in=[org.id for org in child_orgs]) + return Organization.objects.filter(id=org.id)