diff --git a/core/apps/orders/filters/order.py b/core/apps/orders/filters/order.py index 6972aa5..d4e0a1f 100644 --- a/core/apps/orders/filters/order.py +++ b/core/apps/orders/filters/order.py @@ -27,7 +27,7 @@ class OrderFilter(django_filters.FilterSet): class Meta: model = Order - fields = ['wherehouse', 'project', 'project_folder', 'date'] + fields = ['wherehouse', 'project', 'project_folder', 'date', ] def filter_by_project_and_folder(self, queryset, name, value): project_ids = self.data.getlist('project') diff --git a/core/apps/orders/serializers/offer.py b/core/apps/orders/serializers/offer.py index 2230d9a..48b1cb2 100644 --- a/core/apps/orders/serializers/offer.py +++ b/core/apps/orders/serializers/offer.py @@ -1,4 +1,5 @@ from django.db import transaction +from django.db.models import Q from rest_framework import serializers @@ -133,8 +134,9 @@ class OrderListForOfferSerializer(serializers.ModelSerializer): def get_offers(self, obj): status = self.context.get('status') + search = self.context.get('search') if status: offers = obj.offers.filter(status=status) - return OffersSerializer(offers, many=True).data - else: - return OffersSerializer(obj.offers, many=True).data \ No newline at end of file + if search: + offers = obj.offers.filter(Q(number__istartswith=search) | Q(comment__istartswith=search)) + return OffersSerializer(offers, many=True).data \ No newline at end of file diff --git a/core/apps/orders/views/offer.py b/core/apps/orders/views/offer.py index 2a2c268..4ed5d0e 100644 --- a/core/apps/orders/views/offer.py +++ b/core/apps/orders/views/offer.py @@ -65,11 +65,12 @@ class DeletedOfferListApiView(generics.GenericAPIView): def get(self, request): offer_status = request.query_params.get('status', None) + search = request.query_params.get('q', None) orders = self.filter_queryset(self.get_queryset()) page = self.paginate_queryset(orders) if page is not None: if offer_status: - serializer = self.serializer_class(page, many=True, context={'status': offer_status}) + serializer = self.serializer_class(page, many=True, context={'status': offer_status, 'search': search}) else: serializer = self.serializer_class(page, many=True) return self.get_paginated_response(serializer.data)