2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-06-18 13:05:42 +00:00

Reduce duplication with filters (#4583)

* Reduce duplication with filters

* fix typo

* fix naming
This commit is contained in:
Matthias Mair
2023-04-05 00:46:36 +02:00
committed by GitHub
parent 508dd5425d
commit 3294b37ef0
9 changed files with 74 additions and 185 deletions

View File

@ -9,7 +9,7 @@ from django.utils.translation import gettext_lazy as _
from django_filters import rest_framework as rest_filters
from django_filters.rest_framework import DjangoFilterBackend
from rest_framework import filters, permissions, serializers, status
from rest_framework import permissions, serializers, status
from rest_framework.exceptions import ValidationError
from rest_framework.response import Response
@ -17,7 +17,9 @@ import order.models
from build.models import Build, BuildItem
from InvenTree.api import (APIDownloadMixin, AttachmentMixin,
ListCreateDestroyAPIView, MetadataView)
from InvenTree.filters import InvenTreeOrderingFilter, InvenTreeSearchFilter
from InvenTree.filters import (ORDER_FILTER, SEARCH_ORDER_FILTER,
SEARCH_ORDER_FILTER_ALIAS,
InvenTreeSearchFilter)
from InvenTree.helpers import (DownloadFile, increment_serial_number, isNull,
str2bool, str2int)
from InvenTree.mixins import (CreateAPI, CustomRetrieveUpdateDestroyAPI,
@ -152,11 +154,7 @@ class CategoryList(CategoryMixin, APIDownloadMixin, ListCreateAPI):
return queryset
filter_backends = [
DjangoFilterBackend,
InvenTreeSearchFilter,
filters.OrderingFilter,
]
filter_backends = SEARCH_ORDER_FILTER
filterset_fields = [
'name',
@ -220,10 +218,7 @@ class CategoryTree(ListAPI):
queryset = PartCategory.objects.all()
serializer_class = part_serializers.CategoryTree
filter_backends = [
DjangoFilterBackend,
filters.OrderingFilter,
]
filter_backends = ORDER_FILTER
# Order by tree level (top levels first) and then name
ordering = ['level', 'name']
@ -384,11 +379,7 @@ class PartTestTemplateList(ListCreateAPI):
return queryset
filter_backends = [
DjangoFilterBackend,
filters.OrderingFilter,
InvenTreeSearchFilter,
]
filter_backends = SEARCH_ORDER_FILTER
class PartThumbs(ListAPI):
@ -1224,11 +1215,7 @@ class PartList(PartMixin, APIDownloadMixin, ListCreateAPI):
return queryset
filter_backends = [
DjangoFilterBackend,
InvenTreeSearchFilter,
InvenTreeOrderingFilter,
]
filter_backends = SEARCH_ORDER_FILTER_ALIAS
ordering_fields = [
'name',
@ -1337,11 +1324,7 @@ class PartParameterTemplateList(ListCreateAPI):
queryset = PartParameterTemplate.objects.all()
serializer_class = part_serializers.PartParameterTemplateSerializer
filter_backends = [
DjangoFilterBackend,
filters.OrderingFilter,
InvenTreeSearchFilter,
]
filter_backends = SEARCH_ORDER_FILTER
filterset_fields = [
'name',
@ -1462,10 +1445,7 @@ class PartStocktakeList(ListCreateAPI):
return context
filter_backends = [
DjangoFilterBackend,
filters.OrderingFilter,
]
filter_backends = ORDER_FILTER
ordering_fields = [
'part',
@ -1496,10 +1476,7 @@ class PartStocktakeReportList(ListAPI):
queryset = PartStocktakeReport.objects.all()
serializer_class = part_serializers.PartStocktakeReportSerializer
filter_backends = [
DjangoFilterBackend,
filters.OrderingFilter,
]
filter_backends = ORDER_FILTER
ordering_fields = [
'date',
@ -1731,11 +1708,7 @@ class BomList(BomMixin, ListCreateDestroyAPIView):
return queryset
filter_backends = [
DjangoFilterBackend,
InvenTreeSearchFilter,
InvenTreeOrderingFilter,
]
filter_backends = SEARCH_ORDER_FILTER_ALIAS
search_fields = [
'reference',
@ -1836,11 +1809,7 @@ class BomItemSubstituteList(ListCreateAPI):
serializer_class = part_serializers.BomItemSubstituteSerializer
queryset = BomItemSubstitute.objects.all()
filter_backends = [
DjangoFilterBackend,
InvenTreeSearchFilter,
filters.OrderingFilter,
]
filter_backends = SEARCH_ORDER_FILTER
filterset_fields = [
'part',