2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-10-24 01:47:39 +00:00

remove new duplication

This commit is contained in:
Matthias Mair
2025-10-14 22:31:40 +02:00
parent 4a1f805840
commit 27ed511092
7 changed files with 6 additions and 30 deletions

View File

@@ -53,6 +53,12 @@ class PathScopedMixin:
def __init__(self, *args, **kwargs):
"""Initialization routine for the serializer."""
# add list_serializer_class to meta if not present
if not isinstance(self, FilterableListSerializer) and (
not hasattr(self.Meta, 'list_serializer_class')
):
self.Meta.list_serializer_class = FilterableListSerializer
self.gather_filters(kwargs)
super().__init__(*args, **kwargs)
self.do_filtering(*args, **kwargs)

View File

@@ -34,7 +34,6 @@ from InvenTree.mixins import DataImportExportSerializerMixin
from InvenTree.serializers import (
CfCharField,
CfIntegerField,
FilterableListSerializer,
InvenTreeDecimalField,
InvenTreeModelSerializer,
NotesFieldMixin,
@@ -112,7 +111,6 @@ class BuildSerializer(
'status_text',
'level',
]
list_serializer_class = FilterableListSerializer
reference = serializers.CharField(required=True)
@@ -1204,7 +1202,6 @@ class BuildItemSerializer(
'bom_part_id',
'bom_part_name',
]
list_serializer_class = FilterableListSerializer
# Export-only fields
bom_reference = serializers.CharField(
@@ -1355,7 +1352,6 @@ class BuildLineSerializer(
'build_detail',
]
read_only_fields = ['build', 'bom_item', 'allocations']
list_serializer_class = FilterableListSerializer
# Build info fields
build_reference = serializers.CharField(

View File

@@ -19,7 +19,6 @@ from InvenTree.mixins import DataImportExportSerializerMixin
from InvenTree.ready import isGeneratingSchema
from InvenTree.serializers import (
CfCharField,
FilterableListSerializer,
InvenTreeCurrencySerializer,
InvenTreeDecimalField,
InvenTreeImageSerializerField,
@@ -277,7 +276,6 @@ class ManufacturerPartSerializer(
'notes',
'tags',
]
list_serializer_class = FilterableListSerializer
tags = TagListSerializerField(required=False)
@@ -389,7 +387,6 @@ class SupplierPartSerializer(
'barcode_hash',
'pack_quantity_native',
]
list_serializer_class = FilterableListSerializer
tags = TagListSerializerField(required=False)
@@ -554,7 +551,6 @@ class SupplierPriceBreakSerializer(
'supplier_detail',
'updated',
]
list_serializer_class = FilterableListSerializer
@staticmethod
def annotate_queryset(queryset):

View File

@@ -45,7 +45,6 @@ from InvenTree.helpers import (
)
from InvenTree.mixins import DataImportExportSerializerMixin
from InvenTree.serializers import (
FilterableListSerializer,
InvenTreeCurrencySerializer,
InvenTreeDecimalField,
InvenTreeModelSerializer,
@@ -332,7 +331,6 @@ class PurchaseOrderSerializer(
'supplier': {'required': True},
'order_currency': {'required': False},
}
list_serializer_class = FilterableListSerializer
def skip_create_fields(self):
"""Skip these fields when instantiating a new object."""
@@ -502,7 +500,6 @@ class PurchaseOrderLineItemSerializer(
'internal_part',
'internal_part_name',
]
list_serializer_class = FilterableListSerializer
def skip_create_fields(self):
"""Return a list of fields to skip when creating a new object."""
@@ -710,7 +707,6 @@ class PurchaseOrderExtraLineSerializer(
"""Metaclass options."""
model = order.models.PurchaseOrderExtraLine
list_serializer_class = FilterableListSerializer
class PurchaseOrderLineItemReceiveSerializer(serializers.Serializer):
@@ -985,7 +981,6 @@ class SalesOrderSerializer(
])
read_only_fields = ['status', 'creation_date', 'shipment_date']
extra_kwargs = {'order_currency': {'required': False}}
list_serializer_class = FilterableListSerializer
def skip_create_fields(self):
"""Skip these fields when instantiating a new object."""
@@ -1086,7 +1081,6 @@ class SalesOrderLineItemSerializer(
'building',
'on_order',
]
list_serializer_class = FilterableListSerializer
@staticmethod
def annotate_queryset(queryset):
@@ -1244,7 +1238,6 @@ class SalesOrderShipmentSerializer(
'link',
'notes',
]
list_serializer_class = FilterableListSerializer
@staticmethod
def annotate_queryset(queryset):
@@ -1298,7 +1291,6 @@ class SalesOrderAllocationSerializer(PathScopedMixin, InvenTreeModelSerializer):
'shipment_detail',
]
read_only_fields = ['line', '']
list_serializer_class = FilterableListSerializer
part = serializers.PrimaryKeyRelatedField(source='item.part', read_only=True)
order = serializers.PrimaryKeyRelatedField(
@@ -1823,7 +1815,6 @@ class ReturnOrderSerializer(
'total_price',
])
read_only_fields = ['creation_date']
list_serializer_class = FilterableListSerializer
def skip_create_fields(self):
"""Skip these fields when instantiating a new object."""
@@ -2022,7 +2013,6 @@ class ReturnOrderLineItemSerializer(
'target_date',
'link',
]
list_serializer_class = FilterableListSerializer
order_detail = can_filter(
ReturnOrderSerializer(
@@ -2060,7 +2050,6 @@ class ReturnOrderExtraLineSerializer(
"""Metaclass options."""
model = order.models.ReturnOrderExtraLine
list_serializer_class = FilterableListSerializer
order_detail = can_filter(
ReturnOrderSerializer(

View File

@@ -92,7 +92,6 @@ class CategorySerializer(
'parent_default_location',
]
read_only_fields = ['level', 'pathstring']
list_serializer_class = FilterableListSerializer
@staticmethod
def annotate_queryset(queryset):
@@ -353,7 +352,6 @@ class PartBriefSerializer(
'pricing_max',
]
read_only_fields = ['barcode_hash']
list_serializer_class = FilterableListSerializer
category_default_location = serializers.IntegerField(
read_only=True, allow_null=True
@@ -418,7 +416,6 @@ class PartParameterSerializer(
'updated_by_detail',
]
read_only_fields = ['updated', 'updated_by']
list_serializer_class = FilterableListSerializer
def save(self):
"""Save the PartParameter instance."""
@@ -719,7 +716,6 @@ class PartSerializer(
'tags',
]
read_only_fields = ['barcode_hash', 'creation_date', 'creation_user']
list_serializer_class = FilterableListSerializer
tags = TagListSerializerField(required=False)
@@ -1674,7 +1670,6 @@ class BomItemSerializer(
# Annotate the total potential quantity we can build
'can_build',
]
list_serializer_class = FilterableListSerializer
quantity = InvenTree.serializers.InvenTreeDecimalField(required=True)

View File

@@ -34,7 +34,6 @@ from importer.registry import register_importer
from InvenTree.mixins import DataImportExportSerializerMixin
from InvenTree.serializers import (
CfListField,
FilterableListSerializer,
InvenTreeCurrencySerializer,
InvenTreeDecimalField,
InvenTreeModelSerializer,
@@ -224,7 +223,6 @@ class StockItemTestResultSerializer(
'template_detail',
]
read_only_fields = ['pk', 'user', 'date']
list_serializer_class = FilterableListSerializer
user_detail = can_filter(
UserSerializer(source='user', read_only=True, allow_null=True)
@@ -403,7 +401,6 @@ class StockItemSerializer(
"""
Fields used when creating a stock item
"""
list_serializer_class = FilterableListSerializer
part = serializers.PrimaryKeyRelatedField(
queryset=part_models.Part.objects.all(),
@@ -1160,7 +1157,6 @@ class LocationSerializer(
'tags',
]
read_only_fields = ['barcode_hash', 'icon', 'level', 'pathstring']
list_serializer_class = FilterableListSerializer
@staticmethod
def annotate_queryset(queryset):
@@ -1237,7 +1233,6 @@ class StockTrackingSerializer(
'user_detail',
]
read_only_fields = ['date', 'user', 'label', 'tracking_type']
list_serializer_class = FilterableListSerializer
label = serializers.CharField(read_only=True)

View File

@@ -247,7 +247,6 @@ class GroupSerializer(PathScopedMixin, InvenTreeModelSerializer):
model = Group
fields = ['pk', 'name', 'permissions', 'roles', 'users']
list_serializer_class = FilterableListSerializer
permissions = can_filter(
CfSerializerMethodField(allow_null=True, read_only=True),