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