diff --git a/apps/product/services/quota_dashboard_service.py b/apps/product/services/quota_dashboard_service.py index 48b6445..d70b59a 100644 --- a/apps/product/services/quota_dashboard_service.py +++ b/apps/product/services/quota_dashboard_service.py @@ -3,7 +3,6 @@ from django.db.models import Sum, Count, Q from django.db.models.functions import Coalesce from apps.authentication.models import Organization -from apps.authentication.services.service import get_all_org_child from apps.core.services.filter.search import DynamicSearchService from apps.product.models import OrganizationQuotaStats, QuotaDistribution @@ -16,14 +15,12 @@ class QuotaDashboardService: @staticmethod def get_dashboard(self, org: Organization, start_date: str = None, end_date: str = None, search_fields: list[str] = None, quota_is_closed: bool = False): - orgs_child = get_all_org_child(org=org) - orgs_child.append(org) if org.type.key == 'ADM': - org_quota_stats = OrganizationQuotaStats.objects.filter(quota__is_closed=quota_is_closed, ) + org_quota_stats = OrganizationQuotaStats.objects.filter(stat_type='quota', quota__is_closed=quota_is_closed) else: org_quota_stats = OrganizationQuotaStats.objects.filter( - organization__in=orgs_child, + organization=org, quota__is_closed=quota_is_closed, ) diff --git a/apps/product/web/api/v1/viewsets/quota_api.py b/apps/product/web/api/v1/viewsets/quota_api.py index 88aa71f..cb4a608 100644 --- a/apps/product/web/api/v1/viewsets/quota_api.py +++ b/apps/product/web/api/v1/viewsets/quota_api.py @@ -441,7 +441,8 @@ class QuotaViewSet(BaseViewSet, SoftDeleteMixin, QuotaDashboardService, viewsets queryset = self.filter_query( self.get_queryset(visibility_by_org_scope=True).filter( - is_closed=False)) # return by search param or all objects + is_closed=False) + ) # return by search param or all objects # paginate queryset page = self.paginate_queryset( diff --git a/apps/product/web/api/v1/viewsets/quota_distribution_api.py b/apps/product/web/api/v1/viewsets/quota_distribution_api.py index d1876ff..775baf9 100644 --- a/apps/product/web/api/v1/viewsets/quota_distribution_api.py +++ b/apps/product/web/api/v1/viewsets/quota_distribution_api.py @@ -134,6 +134,9 @@ class QuotaDistributionViewSet(BaseViewSet, SoftDeleteMixin, viewsets.ModelViewS else: queryset = queryset.filter(Q(quota__is_closed=False)) + if query.get('product_id'): + queryset = queryset.filter(Q(quota__product_id=int(query.get('product_id')))) + queryset = self.filter_query(self.filter_queryset(queryset)) page = self.paginate_queryset(queryset) diff --git a/apps/warehouse/web/api/v1/api.py b/apps/warehouse/web/api/v1/api.py index ac348c9..70e01dd 100644 --- a/apps/warehouse/web/api/v1/api.py +++ b/apps/warehouse/web/api/v1/api.py @@ -24,6 +24,8 @@ class InventoryEntryViewSet(BaseViewSet, SoftDeleteMixin, viewsets.ModelViewSet, search_fields = [ "distribution__distribution_id", "organization__name", + "org_quota_stat__quota__product__name", + "delivery_address", "weight", "balance", "lading_number", @@ -128,7 +130,7 @@ class InventoryEntryViewSet(BaseViewSet, SoftDeleteMixin, viewsets.ModelViewSet, organization=org, quota_id=pk ) - queryset = self.filter_query(entries) # return by search param or all objects + queryset = self.filter_query(self.filter_queryset(entries)) # return by search param or all objects # paginate & response page = self.paginate_queryset(queryset) @@ -150,7 +152,7 @@ class InventoryEntryViewSet(BaseViewSet, SoftDeleteMixin, viewsets.ModelViewSet, entries = self.get_queryset( visibility_by_org_scope=True ) if org.free_visibility_by_scope else self.get_queryset().filter(organization=org) - queryset = self.filter_query(entries) # return by search param or all objects + queryset = self.filter_query(self.filter_queryset(entries)) # return by search param or all objects # paginate & response page = self.paginate_queryset(queryset)