This commit is contained in:
behruz-dev
2025-11-11 18:23:08 +05:00
parent c403e3921a
commit 109ab308f9
3 changed files with 8 additions and 5 deletions

View File

@@ -27,7 +27,7 @@ class OrderFilter(django_filters.FilterSet):
class Meta: class Meta:
model = Order model = Order
fields = ['wherehouse', 'project', 'project_folder', 'date'] fields = ['wherehouse', 'project', 'project_folder', 'date', ]
def filter_by_project_and_folder(self, queryset, name, value): def filter_by_project_and_folder(self, queryset, name, value):
project_ids = self.data.getlist('project') project_ids = self.data.getlist('project')

View File

@@ -1,4 +1,5 @@
from django.db import transaction from django.db import transaction
from django.db.models import Q
from rest_framework import serializers from rest_framework import serializers
@@ -133,8 +134,9 @@ class OrderListForOfferSerializer(serializers.ModelSerializer):
def get_offers(self, obj): def get_offers(self, obj):
status = self.context.get('status') status = self.context.get('status')
search = self.context.get('search')
if status: if status:
offers = obj.offers.filter(status=status) offers = obj.offers.filter(status=status)
if search:
offers = obj.offers.filter(Q(number__istartswith=search) | Q(comment__istartswith=search))
return OffersSerializer(offers, many=True).data return OffersSerializer(offers, many=True).data
else:
return OffersSerializer(obj.offers, many=True).data

View File

@@ -65,11 +65,12 @@ class DeletedOfferListApiView(generics.GenericAPIView):
def get(self, request): def get(self, request):
offer_status = request.query_params.get('status', None) offer_status = request.query_params.get('status', None)
search = request.query_params.get('q', None)
orders = self.filter_queryset(self.get_queryset()) orders = self.filter_queryset(self.get_queryset())
page = self.paginate_queryset(orders) page = self.paginate_queryset(orders)
if page is not None: if page is not None:
if offer_status: 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: else:
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)