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.api import BaseViewSet
|
||||||
from apps.core.mixins.search_mixin import DynamicSearchMixin
|
from apps.core.mixins.search_mixin import DynamicSearchMixin
|
||||||
from apps.core.mixins.soft_delete_mixin import SoftDeleteMixin
|
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.helpers import get_organization_by_user
|
||||||
from common.sms import send_sms
|
from common.sms import send_sms
|
||||||
from common.tools import CustomOperations
|
from common.tools import CustomOperations
|
||||||
@@ -384,6 +385,35 @@ class OrganizationViewSet(BaseViewSet, ModelViewSet, DynamicSearchMixin):
|
|||||||
serializer = self.serializer_class(page, many=True)
|
serializer = self.serializer_class(page, many=True)
|
||||||
return self.get_paginated_response(serializer.data)
|
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
|
@transaction.atomic
|
||||||
def destroy(self, request, pk=None, *args, **kwargs):
|
def destroy(self, request, pk=None, *args, **kwargs):
|
||||||
""" remove organization with bank accounts """
|
""" remove organization with bank accounts """
|
||||||
|
|||||||
Reference in New Issue
Block a user