add: add filters folder to wherehouse app and add filter to InvalidProductListApiView class

This commit is contained in:
behruz-dev
2025-08-28 09:59:46 +05:00
parent 447e235ade
commit 2a42d7df7f
3 changed files with 22 additions and 1 deletions

View File

View File

@@ -0,0 +1,12 @@
import django_filters
from core.apps.wherehouse.models import InvalidProduct
class InvalidProductFilter(django_filters.FilterSet):
class Meta:
model = InvalidProduct
fields = [
'wherehouse', 'project_folder', 'status', 'invalid_status',
'witnesses', 'expiry_date'
]

View File

@@ -1,11 +1,18 @@
# django
from django.shortcuts import get_object_or_404
# django filter
from django_filters.rest_framework.backends import DjangoFilterBackend
# rest framework
from rest_framework import generics, parsers, views
from rest_framework.response import Response
# accounts
from core.apps.accounts.permissions.permissions import HasRolePermission
# wherehouse
from core.apps.wherehouse.serializers import invalid_product as serializers
from core.apps.wherehouse.models import InvalidProduct
from core.apps.wherehouse.filters.invalid_product import InvalidProductFilter
class InvalidProductCreateApiView(generics.GenericAPIView):
@@ -36,9 +43,11 @@ class InvalidProductListApiView(generics.GenericAPIView):
).prefetch_related('witnesses')
permission_classes = [HasRolePermission]
required_permissions = []
filter_backends = [DjangoFilterBackend]
filterset_class = InvalidProductFilter
def get(self, request):
invalid_products = self.queryset
invalid_products = self.filter_queryset(self.queryset)
page = self.paginate_queryset(invalid_products)
if page is not None:
serializer = self.serializer_class(page, many=True)