fix search mixin bug

This commit is contained in:
2025-07-31 16:00:37 +03:30
parent 32f48f0629
commit 7c613f27b9
4 changed files with 11 additions and 10 deletions

View File

@@ -1,4 +1,5 @@
from apps.core.services.filter.search import DynamicSearchService
from rest_framework.exceptions import APIException
class DynamicSearchMixin:
@@ -10,8 +11,8 @@ class DynamicSearchMixin:
def get_date_field(self):
return getattr(self, "date_field", "create_date")
def filter_queryset(self, queryset):
queryset = super().filter_queryset(queryset) # noqa
def filter_query(self, queryset):
queryset = queryset # noqa
q = self.request.query_params.get("search") # noqa
start = self.request.query_params.get("start") # noqa

View File

@@ -310,7 +310,7 @@ class QuotaViewSet(viewsets.ModelViewSet, DynamicSearchMixin): # noqa
def active_quotas(self, request):
""" list of organization active quotas """
queryset = self.filter_queryset(self.queryset) # return by search param or all objects
queryset = self.filter_query(self.queryset) # return by search param or all objects
organization = get_organization_by_user(request.user)
@@ -336,7 +336,7 @@ class QuotaViewSet(viewsets.ModelViewSet, DynamicSearchMixin): # noqa
def closed_quotas(self, request):
""" list of organization closed quotas """
queryset = self.filter_queryset(self.queryset) # return by search param or all objects
queryset = self.filter_query(self.queryset) # return by search param or all objects
organization = get_organization_by_user(request.user)
@@ -363,7 +363,7 @@ class QuotaViewSet(viewsets.ModelViewSet, DynamicSearchMixin): # noqa
try:
quota = self.get_object()
queryset = self.filter_queryset(
queryset = self.filter_query(
quota.distributions_assigned.all().order_by('-modify_date')
) # return by search param or all objects

View File

@@ -91,7 +91,7 @@ class QuotaDistributionViewSet(viewsets.ModelViewSet, DynamicSearchMixin):
def my_distributions(self, request):
""" list of my distributions """
queryset = self.filter_queryset(self.queryset) # return by search param or all objects
queryset = self.filter_query(self.queryset) # return by search param or all objects
organization = get_organization_by_user(request.user)
query = self.request.query_params

View File

@@ -15,7 +15,7 @@ import typing
class InventoryEntryViewSet(viewsets.ModelViewSet, DynamicSearchMixin):
queryset = warehouse_models.InventoryEntry.objects.all()
serializer_class = warehouse_serializers.InventoryEntrySerializer
filter_backends = [filters.SearchFilter]
# filter_backends = [filters.SearchFilter]
search_fields = [
"distribution__distribution_id",
"organization__name",
@@ -91,11 +91,11 @@ class InventoryEntryViewSet(viewsets.ModelViewSet, DynamicSearchMixin):
def my_inventory_entries(self, request):
""" list of my inventory entries """
queryset = self.filter_queryset(self.queryset) # return by search param or all objects
entries = queryset.filter(organization=get_organization_by_user(request.user))
entries = self.queryset.filter(organization=get_organization_by_user(request.user))
queryset = self.filter_query(entries) # return by search param or all objects
# paginate & response
page = self.paginate_queryset(entries)
page = self.paginate_queryset(queryset)
if page is not None:
serializer = self.get_serializer(page, many=True)
return self.get_paginated_response(serializer.data)