2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-04-30 20:46:47 +00:00

Added part filters

This commit is contained in:
Oliver Walters 2017-04-15 23:14:16 +10:00
parent 4259c6f9eb
commit a20987f122

View File

@ -1,4 +1,6 @@
# import django_filters import django_filters
from django_filters.rest_framework import FilterSet, DjangoFilterBackend
from django_filters import NumberFilter
from rest_framework import generics, permissions from rest_framework import generics, permissions
@ -28,6 +30,15 @@ class PartDetail(generics.RetrieveUpdateDestroyAPIView):
permission_classes = (permissions.IsAuthenticatedOrReadOnly,) permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
class PartParamFilter(FilterSet):
part = NumberFilter(name='part', lookup_expr='exact')
class Meta:
model = PartParameter
fields = ['part']
class PartParamList(generics.ListCreateAPIView): class PartParamList(generics.ListCreateAPIView):
""" """
@ -37,16 +48,12 @@ class PartParamList(generics.ListCreateAPIView):
post: post:
Create a new part parameter Create a new part parameter
""" """
def get_queryset(self):
part_id = self.request.query_params.get('part', None)
if part_id:
return PartParameter.objects.filter(part=part_id)
else:
return PartParameter.objects.all()
queryset = PartParameter.objects.all()
serializer_class = PartParameterSerializer serializer_class = PartParameterSerializer
permission_classes = (permissions.IsAuthenticatedOrReadOnly,) permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
filter_backends = (DjangoFilterBackend,)
filter_class = PartParamFilter
class PartParamDetail(generics.RetrieveUpdateDestroyAPIView): class PartParamDetail(generics.RetrieveUpdateDestroyAPIView):
@ -68,15 +75,12 @@ class PartParamDetail(generics.RetrieveUpdateDestroyAPIView):
permission_classes = (permissions.IsAuthenticatedOrReadOnly,) permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
""" class PartFilter(FilterSet):
class PartFilter(django_filters.rest_framework.FilterSet): category = NumberFilter(name='category', lookup_expr='exact')
min_stock = django_filters.NumberFilter(name="stock", lookup_expr="gte")
max_stock = django_filters.NumberFilter(name="stock", lookup_expr="lte")
class Meta: class Meta:
model = Part model = Part
fields = ['stock'] fields = ['category']
"""
class PartList(generics.ListCreateAPIView): class PartList(generics.ListCreateAPIView):
@ -89,19 +93,11 @@ class PartList(generics.ListCreateAPIView):
Create a new Part Create a new Part
""" """
def get_queryset(self): queryset = Part.objects.all()
parts = Part.objects.all()
params = self.request.query_params
cat_id = params.get('category', None)
if cat_id:
parts = parts.filter(category=cat_id)
return parts
serializer_class = PartSerializer serializer_class = PartSerializer
permission_classes = (permissions.IsAuthenticatedOrReadOnly,) permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
filter_backends = (DjangoFilterBackend,)
filter_class = PartFilter
class PartCategoryDetail(generics.RetrieveUpdateDestroyAPIView): class PartCategoryDetail(generics.RetrieveUpdateDestroyAPIView):