add - child orgs for distribution
This commit is contained in:
@@ -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 """
|
||||
|
||||
Reference in New Issue
Block a user