mirror of
https://github.com/inventree/InvenTree.git
synced 2025-10-24 09:57:40 +00:00
fix list serializer
This commit is contained in:
@@ -1354,8 +1354,8 @@ class BuildLineSerializer(
|
|||||||
'part_detail',
|
'part_detail',
|
||||||
'build_detail',
|
'build_detail',
|
||||||
]
|
]
|
||||||
|
|
||||||
read_only_fields = ['build', 'bom_item', 'allocations']
|
read_only_fields = ['build', 'bom_item', 'allocations']
|
||||||
|
list_serializer_class = FilterableListSerializer
|
||||||
|
|
||||||
# Build info fields
|
# Build info fields
|
||||||
build_reference = serializers.CharField(
|
build_reference = serializers.CharField(
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ from InvenTree.mixins import DataImportExportSerializerMixin
|
|||||||
from InvenTree.ready import isGeneratingSchema
|
from InvenTree.ready import isGeneratingSchema
|
||||||
from InvenTree.serializers import (
|
from InvenTree.serializers import (
|
||||||
CfCharField,
|
CfCharField,
|
||||||
|
FilterableListSerializer,
|
||||||
InvenTreeCurrencySerializer,
|
InvenTreeCurrencySerializer,
|
||||||
InvenTreeDecimalField,
|
InvenTreeDecimalField,
|
||||||
InvenTreeImageSerializerField,
|
InvenTreeImageSerializerField,
|
||||||
@@ -276,6 +277,7 @@ class ManufacturerPartSerializer(
|
|||||||
'notes',
|
'notes',
|
||||||
'tags',
|
'tags',
|
||||||
]
|
]
|
||||||
|
list_serializer_class = FilterableListSerializer
|
||||||
|
|
||||||
tags = TagListSerializerField(required=False)
|
tags = TagListSerializerField(required=False)
|
||||||
|
|
||||||
@@ -331,7 +333,10 @@ class ManufacturerPartParameterSerializer(
|
|||||||
|
|
||||||
@register_importer()
|
@register_importer()
|
||||||
class SupplierPartSerializer(
|
class SupplierPartSerializer(
|
||||||
DataImportExportSerializerMixin, InvenTreeTagModelSerializer, NotesFieldMixin
|
PathScopedMixin,
|
||||||
|
DataImportExportSerializerMixin,
|
||||||
|
InvenTreeTagModelSerializer,
|
||||||
|
NotesFieldMixin,
|
||||||
):
|
):
|
||||||
"""Serializer for SupplierPart object."""
|
"""Serializer for SupplierPart object."""
|
||||||
|
|
||||||
@@ -377,12 +382,12 @@ class SupplierPartSerializer(
|
|||||||
'notes',
|
'notes',
|
||||||
'tags',
|
'tags',
|
||||||
]
|
]
|
||||||
|
|
||||||
read_only_fields = [
|
read_only_fields = [
|
||||||
'availability_updated',
|
'availability_updated',
|
||||||
'barcode_hash',
|
'barcode_hash',
|
||||||
'pack_quantity_native',
|
'pack_quantity_native',
|
||||||
]
|
]
|
||||||
|
list_serializer_class = FilterableListSerializer
|
||||||
|
|
||||||
tags = TagListSerializerField(required=False)
|
tags = TagListSerializerField(required=False)
|
||||||
|
|
||||||
@@ -547,6 +552,7 @@ class SupplierPriceBreakSerializer(
|
|||||||
'supplier_detail',
|
'supplier_detail',
|
||||||
'updated',
|
'updated',
|
||||||
]
|
]
|
||||||
|
list_serializer_class = FilterableListSerializer
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def annotate_queryset(queryset):
|
def annotate_queryset(queryset):
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ from InvenTree.helpers import (
|
|||||||
)
|
)
|
||||||
from InvenTree.mixins import DataImportExportSerializerMixin
|
from InvenTree.mixins import DataImportExportSerializerMixin
|
||||||
from InvenTree.serializers import (
|
from InvenTree.serializers import (
|
||||||
|
FilterableListSerializer,
|
||||||
InvenTreeCurrencySerializer,
|
InvenTreeCurrencySerializer,
|
||||||
InvenTreeDecimalField,
|
InvenTreeDecimalField,
|
||||||
InvenTreeModelSerializer,
|
InvenTreeModelSerializer,
|
||||||
@@ -316,7 +317,6 @@ class PurchaseOrderSerializer(
|
|||||||
"""Metaclass options."""
|
"""Metaclass options."""
|
||||||
|
|
||||||
model = order.models.PurchaseOrder
|
model = order.models.PurchaseOrder
|
||||||
|
|
||||||
fields = AbstractOrderSerializer.order_fields([
|
fields = AbstractOrderSerializer.order_fields([
|
||||||
'complete_date',
|
'complete_date',
|
||||||
'supplier',
|
'supplier',
|
||||||
@@ -327,13 +327,12 @@ class PurchaseOrderSerializer(
|
|||||||
'order_currency',
|
'order_currency',
|
||||||
'destination',
|
'destination',
|
||||||
])
|
])
|
||||||
|
|
||||||
read_only_fields = ['issue_date', 'complete_date', 'creation_date']
|
read_only_fields = ['issue_date', 'complete_date', 'creation_date']
|
||||||
|
|
||||||
extra_kwargs = {
|
extra_kwargs = {
|
||||||
'supplier': {'required': True},
|
'supplier': {'required': True},
|
||||||
'order_currency': {'required': False},
|
'order_currency': {'required': False},
|
||||||
}
|
}
|
||||||
|
list_serializer_class = FilterableListSerializer
|
||||||
|
|
||||||
def skip_create_fields(self):
|
def skip_create_fields(self):
|
||||||
"""Skip these fields when instantiating a new object."""
|
"""Skip these fields when instantiating a new object."""
|
||||||
@@ -474,7 +473,6 @@ class PurchaseOrderLineItemSerializer(
|
|||||||
"""Metaclass options."""
|
"""Metaclass options."""
|
||||||
|
|
||||||
model = order.models.PurchaseOrderLineItem
|
model = order.models.PurchaseOrderLineItem
|
||||||
|
|
||||||
fields = [
|
fields = [
|
||||||
'pk',
|
'pk',
|
||||||
'part',
|
'part',
|
||||||
@@ -504,6 +502,7 @@ class PurchaseOrderLineItemSerializer(
|
|||||||
'internal_part',
|
'internal_part',
|
||||||
'internal_part_name',
|
'internal_part_name',
|
||||||
]
|
]
|
||||||
|
list_serializer_class = FilterableListSerializer
|
||||||
|
|
||||||
def skip_create_fields(self):
|
def skip_create_fields(self):
|
||||||
"""Return a list of fields to skip when creating a new object."""
|
"""Return a list of fields to skip when creating a new object."""
|
||||||
@@ -711,6 +710,7 @@ class PurchaseOrderExtraLineSerializer(
|
|||||||
"""Metaclass options."""
|
"""Metaclass options."""
|
||||||
|
|
||||||
model = order.models.PurchaseOrderExtraLine
|
model = order.models.PurchaseOrderExtraLine
|
||||||
|
list_serializer_class = FilterableListSerializer
|
||||||
|
|
||||||
|
|
||||||
class PurchaseOrderLineItemReceiveSerializer(serializers.Serializer):
|
class PurchaseOrderLineItemReceiveSerializer(serializers.Serializer):
|
||||||
@@ -973,7 +973,6 @@ class SalesOrderSerializer(
|
|||||||
"""Metaclass options."""
|
"""Metaclass options."""
|
||||||
|
|
||||||
model = order.models.SalesOrder
|
model = order.models.SalesOrder
|
||||||
|
|
||||||
fields = AbstractOrderSerializer.order_fields([
|
fields = AbstractOrderSerializer.order_fields([
|
||||||
'customer',
|
'customer',
|
||||||
'customer_detail',
|
'customer_detail',
|
||||||
@@ -984,10 +983,9 @@ class SalesOrderSerializer(
|
|||||||
'shipments_count',
|
'shipments_count',
|
||||||
'completed_shipments_count',
|
'completed_shipments_count',
|
||||||
])
|
])
|
||||||
|
|
||||||
read_only_fields = ['status', 'creation_date', 'shipment_date']
|
read_only_fields = ['status', 'creation_date', 'shipment_date']
|
||||||
|
|
||||||
extra_kwargs = {'order_currency': {'required': False}}
|
extra_kwargs = {'order_currency': {'required': False}}
|
||||||
|
list_serializer_class = FilterableListSerializer
|
||||||
|
|
||||||
def skip_create_fields(self):
|
def skip_create_fields(self):
|
||||||
"""Skip these fields when instantiating a new object."""
|
"""Skip these fields when instantiating a new object."""
|
||||||
@@ -1065,7 +1063,6 @@ class SalesOrderLineItemSerializer(
|
|||||||
"""Metaclass options."""
|
"""Metaclass options."""
|
||||||
|
|
||||||
model = order.models.SalesOrderLineItem
|
model = order.models.SalesOrderLineItem
|
||||||
|
|
||||||
fields = [
|
fields = [
|
||||||
'pk',
|
'pk',
|
||||||
'allocated',
|
'allocated',
|
||||||
@@ -1089,6 +1086,7 @@ class SalesOrderLineItemSerializer(
|
|||||||
'building',
|
'building',
|
||||||
'on_order',
|
'on_order',
|
||||||
]
|
]
|
||||||
|
list_serializer_class = FilterableListSerializer
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def annotate_queryset(queryset):
|
def annotate_queryset(queryset):
|
||||||
@@ -1231,7 +1229,6 @@ class SalesOrderShipmentSerializer(
|
|||||||
"""Metaclass options."""
|
"""Metaclass options."""
|
||||||
|
|
||||||
model = order.models.SalesOrderShipment
|
model = order.models.SalesOrderShipment
|
||||||
|
|
||||||
fields = [
|
fields = [
|
||||||
'pk',
|
'pk',
|
||||||
'order',
|
'order',
|
||||||
@@ -1247,6 +1244,7 @@ class SalesOrderShipmentSerializer(
|
|||||||
'link',
|
'link',
|
||||||
'notes',
|
'notes',
|
||||||
]
|
]
|
||||||
|
list_serializer_class = FilterableListSerializer
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def annotate_queryset(queryset):
|
def annotate_queryset(queryset):
|
||||||
@@ -1280,7 +1278,6 @@ class SalesOrderAllocationSerializer(PathScopedMixin, InvenTreeModelSerializer):
|
|||||||
"""Metaclass options."""
|
"""Metaclass options."""
|
||||||
|
|
||||||
model = order.models.SalesOrderAllocation
|
model = order.models.SalesOrderAllocation
|
||||||
|
|
||||||
fields = [
|
fields = [
|
||||||
'pk',
|
'pk',
|
||||||
'item',
|
'item',
|
||||||
@@ -1300,8 +1297,8 @@ class SalesOrderAllocationSerializer(PathScopedMixin, InvenTreeModelSerializer):
|
|||||||
'location_detail',
|
'location_detail',
|
||||||
'shipment_detail',
|
'shipment_detail',
|
||||||
]
|
]
|
||||||
|
|
||||||
read_only_fields = ['line', '']
|
read_only_fields = ['line', '']
|
||||||
|
list_serializer_class = FilterableListSerializer
|
||||||
|
|
||||||
part = serializers.PrimaryKeyRelatedField(source='item.part', read_only=True)
|
part = serializers.PrimaryKeyRelatedField(source='item.part', read_only=True)
|
||||||
order = serializers.PrimaryKeyRelatedField(
|
order = serializers.PrimaryKeyRelatedField(
|
||||||
@@ -1817,7 +1814,6 @@ class ReturnOrderSerializer(
|
|||||||
"""Metaclass options."""
|
"""Metaclass options."""
|
||||||
|
|
||||||
model = order.models.ReturnOrder
|
model = order.models.ReturnOrder
|
||||||
|
|
||||||
fields = AbstractOrderSerializer.order_fields([
|
fields = AbstractOrderSerializer.order_fields([
|
||||||
'complete_date',
|
'complete_date',
|
||||||
'customer',
|
'customer',
|
||||||
@@ -1826,8 +1822,8 @@ class ReturnOrderSerializer(
|
|||||||
'order_currency',
|
'order_currency',
|
||||||
'total_price',
|
'total_price',
|
||||||
])
|
])
|
||||||
|
|
||||||
read_only_fields = ['creation_date']
|
read_only_fields = ['creation_date']
|
||||||
|
list_serializer_class = FilterableListSerializer
|
||||||
|
|
||||||
def skip_create_fields(self):
|
def skip_create_fields(self):
|
||||||
"""Skip these fields when instantiating a new object."""
|
"""Skip these fields when instantiating a new object."""
|
||||||
@@ -2008,7 +2004,6 @@ class ReturnOrderLineItemSerializer(
|
|||||||
"""Metaclass options."""
|
"""Metaclass options."""
|
||||||
|
|
||||||
model = order.models.ReturnOrderLineItem
|
model = order.models.ReturnOrderLineItem
|
||||||
|
|
||||||
fields = [
|
fields = [
|
||||||
'pk',
|
'pk',
|
||||||
'order',
|
'order',
|
||||||
@@ -2027,6 +2022,7 @@ class ReturnOrderLineItemSerializer(
|
|||||||
'target_date',
|
'target_date',
|
||||||
'link',
|
'link',
|
||||||
]
|
]
|
||||||
|
list_serializer_class = FilterableListSerializer
|
||||||
|
|
||||||
order_detail = can_filter(
|
order_detail = can_filter(
|
||||||
ReturnOrderSerializer(
|
ReturnOrderSerializer(
|
||||||
@@ -2064,6 +2060,7 @@ class ReturnOrderExtraLineSerializer(
|
|||||||
"""Metaclass options."""
|
"""Metaclass options."""
|
||||||
|
|
||||||
model = order.models.ReturnOrderExtraLine
|
model = order.models.ReturnOrderExtraLine
|
||||||
|
list_serializer_class = FilterableListSerializer
|
||||||
|
|
||||||
order_detail = can_filter(
|
order_detail = can_filter(
|
||||||
ReturnOrderSerializer(
|
ReturnOrderSerializer(
|
||||||
|
|||||||
@@ -92,6 +92,7 @@ class CategorySerializer(
|
|||||||
'parent_default_location',
|
'parent_default_location',
|
||||||
]
|
]
|
||||||
read_only_fields = ['level', 'pathstring']
|
read_only_fields = ['level', 'pathstring']
|
||||||
|
list_serializer_class = FilterableListSerializer
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def annotate_queryset(queryset):
|
def annotate_queryset(queryset):
|
||||||
@@ -351,8 +352,8 @@ class PartBriefSerializer(
|
|||||||
'pricing_min',
|
'pricing_min',
|
||||||
'pricing_max',
|
'pricing_max',
|
||||||
]
|
]
|
||||||
|
|
||||||
read_only_fields = ['barcode_hash']
|
read_only_fields = ['barcode_hash']
|
||||||
|
list_serializer_class = FilterableListSerializer
|
||||||
|
|
||||||
category_default_location = serializers.IntegerField(
|
category_default_location = serializers.IntegerField(
|
||||||
read_only=True, allow_null=True
|
read_only=True, allow_null=True
|
||||||
@@ -718,7 +719,7 @@ class PartSerializer(
|
|||||||
'tags',
|
'tags',
|
||||||
]
|
]
|
||||||
read_only_fields = ['barcode_hash', 'creation_date', 'creation_user']
|
read_only_fields = ['barcode_hash', 'creation_date', 'creation_user']
|
||||||
# list_serializer_class = FilterableListSerializer
|
list_serializer_class = FilterableListSerializer
|
||||||
|
|
||||||
tags = TagListSerializerField(required=False)
|
tags = TagListSerializerField(required=False)
|
||||||
|
|
||||||
|
|||||||
@@ -385,11 +385,6 @@ class StockItemSerializer(
|
|||||||
'part_detail',
|
'part_detail',
|
||||||
'location_detail',
|
'location_detail',
|
||||||
]
|
]
|
||||||
|
|
||||||
"""
|
|
||||||
These fields are read-only in this context.
|
|
||||||
They can be updated by accessing the appropriate API endpoints
|
|
||||||
"""
|
|
||||||
read_only_fields = [
|
read_only_fields = [
|
||||||
'allocated',
|
'allocated',
|
||||||
'barcode_hash',
|
'barcode_hash',
|
||||||
@@ -397,14 +392,18 @@ class StockItemSerializer(
|
|||||||
'stocktake_user',
|
'stocktake_user',
|
||||||
'updated',
|
'updated',
|
||||||
]
|
]
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Fields used when creating a stock item
|
These fields are read-only in this context.
|
||||||
|
They can be updated by accessing the appropriate API endpoints
|
||||||
"""
|
"""
|
||||||
extra_kwargs = {
|
extra_kwargs = {
|
||||||
'use_pack_size': {'write_only': True},
|
'use_pack_size': {'write_only': True},
|
||||||
'serial_numbers': {'write_only': True},
|
'serial_numbers': {'write_only': True},
|
||||||
}
|
}
|
||||||
|
"""
|
||||||
|
Fields used when creating a stock item
|
||||||
|
"""
|
||||||
|
list_serializer_class = FilterableListSerializer
|
||||||
|
|
||||||
part = serializers.PrimaryKeyRelatedField(
|
part = serializers.PrimaryKeyRelatedField(
|
||||||
queryset=part_models.Part.objects.all(),
|
queryset=part_models.Part.objects.all(),
|
||||||
@@ -1160,8 +1159,8 @@ class LocationSerializer(
|
|||||||
'location_type_detail',
|
'location_type_detail',
|
||||||
'tags',
|
'tags',
|
||||||
]
|
]
|
||||||
|
|
||||||
read_only_fields = ['barcode_hash', 'icon', 'level', 'pathstring']
|
read_only_fields = ['barcode_hash', 'icon', 'level', 'pathstring']
|
||||||
|
list_serializer_class = FilterableListSerializer
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def annotate_queryset(queryset):
|
def annotate_queryset(queryset):
|
||||||
@@ -1237,8 +1236,8 @@ class StockTrackingSerializer(
|
|||||||
'user',
|
'user',
|
||||||
'user_detail',
|
'user_detail',
|
||||||
]
|
]
|
||||||
|
|
||||||
read_only_fields = ['date', 'user', 'label', 'tracking_type']
|
read_only_fields = ['date', 'user', 'label', 'tracking_type']
|
||||||
|
list_serializer_class = FilterableListSerializer
|
||||||
|
|
||||||
label = serializers.CharField(read_only=True)
|
label = serializers.CharField(read_only=True)
|
||||||
|
|
||||||
|
|||||||
@@ -247,6 +247,7 @@ class GroupSerializer(PathScopedMixin, InvenTreeModelSerializer):
|
|||||||
|
|
||||||
model = Group
|
model = Group
|
||||||
fields = ['pk', 'name', 'permissions', 'roles', 'users']
|
fields = ['pk', 'name', 'permissions', 'roles', 'users']
|
||||||
|
list_serializer_class = FilterableListSerializer
|
||||||
|
|
||||||
permissions = can_filter(
|
permissions = can_filter(
|
||||||
CfSerializerMethodField(allow_null=True, read_only=True),
|
CfSerializerMethodField(allow_null=True, read_only=True),
|
||||||
|
|||||||
Reference in New Issue
Block a user