add - child orgs for distribution

This commit is contained in:
2025-11-18 12:36:42 +03:30
parent 829570fd6e
commit 407c70e89b

View File

@@ -37,6 +37,7 @@ from apps.authorization.api.v1 import api as authorize_view
from apps.core.api import BaseViewSet
from apps.core.mixins.search_mixin import DynamicSearchMixin
from apps.core.mixins.soft_delete_mixin import SoftDeleteMixin
from apps.product.models import QuotaDistribution
from common.helpers import get_organization_by_user
from common.sms import send_sms
from common.tools import CustomOperations
@@ -384,6 +385,35 @@ class OrganizationViewSet(BaseViewSet, ModelViewSet, DynamicSearchMixin):
serializer = self.serializer_class(page, many=True)
return self.get_paginated_response(serializer.data)
@action(
methods=['get'],
detail=False,
url_path='child_organizations_for_distribute',
url_name='child_organizations_for_distribute',
name='child_organizations_for_distribute'
)
def child_orgs_for_distribute(self, request):
"""
list of organizations except orgs im distribute quota to them
"""
quota = self.request.query_params.get('quota_id') # noqa
organization = get_organization_by_user(request.user)
distributed_orgs = QuotaDistribution.objects.filter(
quota=quota,
assigner_organization=organization
).values_list("assigned_organization", flat=True)
# search & filter
queryset = self.filter_query(
self.get_queryset().exclude(id__in=distributed_orgs))
page = self.paginate_queryset(queryset) # paginate queryset
if page is not None: # noqa
serializer = self.serializer_class(page, many=True)
return self.get_paginated_response(serializer.data)
@transaction.atomic
def destroy(self, request, pk=None, *args, **kwargs):
""" remove organization with bank accounts """