mirror of
				https://github.com/inventree/InvenTree.git
				synced 2025-11-03 22:55:43 +00:00 
			
		
		
		
	Reduce duplication with filters (#4583)
* Reduce duplication with filters * fix typo * fix naming
This commit is contained in:
		@@ -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',
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user