fix - organization childs in visibility_services

This commit is contained in:
2025-11-08 14:47:00 +03:30
parent a03666017a
commit 66857bae26

View File

@@ -3,6 +3,7 @@ import typing
from django.db.models import Q from django.db.models import Q
from apps.authentication.models import Organization from apps.authentication.models import Organization
from apps.authentication.services.service import get_all_org_child
from apps.core.visibility_registry import VISIBILITY_MAP 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: if org.free_visibility_by_scope:
# get data by organization field of activity
# country
if org.field_of_activity == 'CO': if org.field_of_activity == 'CO':
# admin control
if org.type.key == 'ADM': if org.type.key == 'ADM':
return Organization.objects.all() return Organization.objects.all()
else: else:
return Organization.objects.all().exclude(id=org.id).exclude(type__key='ADM') return Organization.objects.all().exclude(id=org.id).exclude(type__key='ADM')
# city
elif org.field_of_activity == 'CI': elif org.field_of_activity == 'CI':
return Organization.objects.filter(city=org.city) return Organization.objects.filter(city=org.city)
# province
elif org.field_of_activity == 'PR': elif org.field_of_activity == 'PR':
return Organization.objects.filter(province=org.province) 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) return Organization.objects.filter(id=org.id)