fix - organization childs in visibility_services
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user