mirror of
https://github.com/inventree/InvenTree.git
synced 2026-09-01 17:51:23 +00:00
Remove legacy "notes" field from older models
This commit is contained in:
@@ -27,7 +27,6 @@ from stdimage.models import StdImageField
|
|||||||
|
|
||||||
import common.settings
|
import common.settings
|
||||||
import InvenTree.exceptions
|
import InvenTree.exceptions
|
||||||
import InvenTree.fields
|
|
||||||
import InvenTree.format
|
import InvenTree.format
|
||||||
import InvenTree.helpers
|
import InvenTree.helpers
|
||||||
import InvenTree.helpers_model
|
import InvenTree.helpers_model
|
||||||
@@ -664,16 +663,15 @@ class InvenTreeNoteMixin(InvenTreePermissionCheckMixin):
|
|||||||
'common.Note', content_type_field='model_type', object_id_field='model_id'
|
'common.Note', content_type_field='model_type', object_id_field='model_id'
|
||||||
)
|
)
|
||||||
|
|
||||||
# TODO: Un-comment this once the InvenTreeNotesMixin class is removed
|
@property
|
||||||
# @property
|
def notes(self) -> QuerySet:
|
||||||
# def notes(self) -> QuerySet:
|
"""Return a queryset containing all notes for this model."""
|
||||||
# """Return a queryset containing all notes for this model."""
|
# Check the query cache for pre-fetched parameters
|
||||||
# # Check the query cache for pre-fetched parameters
|
if cache := getattr(self, '_prefetched_objects_cache', None):
|
||||||
# if cache := getattr(self, '_prefetched_objects_cache', None):
|
if 'notes_list' in cache:
|
||||||
# if 'notes_list' in cache:
|
return cache['notes_list']
|
||||||
# return cache['notes_list']
|
|
||||||
|
|
||||||
# return self.notes_list.all()
|
return self.notes_list.all()
|
||||||
|
|
||||||
def delete(self, *args, **kwargs):
|
def delete(self, *args, **kwargs):
|
||||||
"""Handle the deletion of a model instance.
|
"""Handle the deletion of a model instance.
|
||||||
@@ -1284,53 +1282,6 @@ class PathStringMixin(models.Model):
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
class InvenTreeNotesMixin(models.Model):
|
|
||||||
"""A mixin class for adding notes functionality to a model class.
|
|
||||||
|
|
||||||
The following fields are added to any model which implements this mixin:
|
|
||||||
|
|
||||||
- notes : A text field for storing notes
|
|
||||||
"""
|
|
||||||
|
|
||||||
# TODO: THIS MIXIN IS TO BE REMOVED IN FAVOUR OF THE GENERIC RELATIONSHIP TO THE Note MODEL
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
"""Metaclass options for this mixin.
|
|
||||||
|
|
||||||
Note: abstract must be true, as this is only a mixin, not a separate table
|
|
||||||
"""
|
|
||||||
|
|
||||||
abstract = True
|
|
||||||
|
|
||||||
def delete(self, *args, **kwargs):
|
|
||||||
"""Custom delete method for InvenTreeNotesMixin.
|
|
||||||
|
|
||||||
- Before deleting the object, check if there are any uploaded images associated with it.
|
|
||||||
- If so, delete the notes first
|
|
||||||
"""
|
|
||||||
from common.models import NotesImage
|
|
||||||
|
|
||||||
images = NotesImage.objects.filter(
|
|
||||||
model_type=self.__class__.__name__.lower(), model_id=self.pk
|
|
||||||
)
|
|
||||||
|
|
||||||
if images.exists():
|
|
||||||
logger.info(
|
|
||||||
'Deleting %s uploaded images associated with %s <%s>',
|
|
||||||
images.count(),
|
|
||||||
self.__class__.__name__,
|
|
||||||
self.pk,
|
|
||||||
)
|
|
||||||
|
|
||||||
images.delete()
|
|
||||||
|
|
||||||
super().delete(*args, **kwargs)
|
|
||||||
|
|
||||||
notes = InvenTree.fields.InvenTreeNotesField(
|
|
||||||
verbose_name=_('Notes'), help_text=_('Markdown notes (optional)')
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class InvenTreeBarcodeMixin(models.Model):
|
class InvenTreeBarcodeMixin(models.Model):
|
||||||
"""A mixin class for adding barcode functionality to a model class.
|
"""A mixin class for adding barcode functionality to a model class.
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
# Generated by Django 5.2.14 on 2026-05-25 12:36
|
||||||
|
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
("build", "0058_buildline_consumed"),
|
||||||
|
("common", "0046_remove_notesimage_model_id_and_more")
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="build",
|
||||||
|
name="notes",
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -80,7 +80,6 @@ class Build(
|
|||||||
InvenTree.models.InvenTreeAttachmentMixin,
|
InvenTree.models.InvenTreeAttachmentMixin,
|
||||||
InvenTree.models.InvenTreeBarcodeMixin,
|
InvenTree.models.InvenTreeBarcodeMixin,
|
||||||
InvenTree.models.InvenTreeNoteMixin,
|
InvenTree.models.InvenTreeNoteMixin,
|
||||||
InvenTree.models.InvenTreeNotesMixin,
|
|
||||||
InvenTree.models.ReferenceIndexingMixin,
|
InvenTree.models.ReferenceIndexingMixin,
|
||||||
StateTransitionMixin,
|
StateTransitionMixin,
|
||||||
StatusCodeMixin,
|
StatusCodeMixin,
|
||||||
|
|||||||
@@ -34,7 +34,6 @@ from InvenTree.serializers import (
|
|||||||
FilterableSerializerMixin,
|
FilterableSerializerMixin,
|
||||||
InvenTreeDecimalField,
|
InvenTreeDecimalField,
|
||||||
InvenTreeModelSerializer,
|
InvenTreeModelSerializer,
|
||||||
NotesFieldMixin,
|
|
||||||
OptionalField,
|
OptionalField,
|
||||||
)
|
)
|
||||||
from stock.generators import generate_batch_code
|
from stock.generators import generate_batch_code
|
||||||
@@ -53,7 +52,6 @@ from .status_codes import BuildStatus
|
|||||||
|
|
||||||
class BuildSerializer(
|
class BuildSerializer(
|
||||||
FilterableSerializerMixin,
|
FilterableSerializerMixin,
|
||||||
NotesFieldMixin,
|
|
||||||
DataImportExportSerializerMixin,
|
DataImportExportSerializerMixin,
|
||||||
InvenTreeCustomStatusSerializerMixin,
|
InvenTreeCustomStatusSerializerMixin,
|
||||||
InvenTreeModelSerializer,
|
InvenTreeModelSerializer,
|
||||||
@@ -91,7 +89,6 @@ class BuildSerializer(
|
|||||||
'status_custom_key',
|
'status_custom_key',
|
||||||
'target_date',
|
'target_date',
|
||||||
'take_from',
|
'take_from',
|
||||||
'notes',
|
|
||||||
'link',
|
'link',
|
||||||
'issued_by',
|
'issued_by',
|
||||||
'issued_by_detail',
|
'issued_by_detail',
|
||||||
@@ -1503,12 +1500,9 @@ class BuildLineSerializer(
|
|||||||
# Defer expensive fields which we do not need for this serializer
|
# Defer expensive fields which we do not need for this serializer
|
||||||
|
|
||||||
queryset = queryset.defer(
|
queryset = queryset.defer(
|
||||||
'build__notes',
|
|
||||||
'build__metadata',
|
'build__metadata',
|
||||||
'bom_item__metadata',
|
'bom_item__metadata',
|
||||||
'bom_item__part__notes',
|
|
||||||
'bom_item__part__metadata',
|
'bom_item__part__metadata',
|
||||||
'bom_item__sub_part__notes',
|
|
||||||
'bom_item__sub_part__metadata',
|
'bom_item__sub_part__metadata',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
+26
@@ -0,0 +1,26 @@
|
|||||||
|
# Generated by Django 5.2.14 on 2026-05-25 12:36
|
||||||
|
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
("company", "0079_auto_20260212_1054"),
|
||||||
|
("common", "0046_remove_notesimage_model_id_and_more")
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="company",
|
||||||
|
name="notes",
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="manufacturerpart",
|
||||||
|
name="notes",
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="supplierpart",
|
||||||
|
name="notes",
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -80,7 +80,6 @@ class Company(
|
|||||||
InvenTree.models.InvenTreeAttachmentMixin,
|
InvenTree.models.InvenTreeAttachmentMixin,
|
||||||
InvenTree.models.InvenTreeParameterMixin,
|
InvenTree.models.InvenTreeParameterMixin,
|
||||||
InvenTree.models.InvenTreeNoteMixin,
|
InvenTree.models.InvenTreeNoteMixin,
|
||||||
InvenTree.models.InvenTreeNotesMixin,
|
|
||||||
report.mixins.InvenTreeReportMixin,
|
report.mixins.InvenTreeReportMixin,
|
||||||
InvenTree.models.InvenTreeImageMixin,
|
InvenTree.models.InvenTreeImageMixin,
|
||||||
InvenTree.models.InvenTreeMetadataModel,
|
InvenTree.models.InvenTreeMetadataModel,
|
||||||
@@ -488,7 +487,6 @@ class ManufacturerPart(
|
|||||||
InvenTree.models.InvenTreeParameterMixin,
|
InvenTree.models.InvenTreeParameterMixin,
|
||||||
InvenTree.models.InvenTreeBarcodeMixin,
|
InvenTree.models.InvenTreeBarcodeMixin,
|
||||||
InvenTree.models.InvenTreeNoteMixin,
|
InvenTree.models.InvenTreeNoteMixin,
|
||||||
InvenTree.models.InvenTreeNotesMixin,
|
|
||||||
InvenTree.models.InvenTreeMetadataModel,
|
InvenTree.models.InvenTreeMetadataModel,
|
||||||
):
|
):
|
||||||
"""Represents a unique part as provided by a Manufacturer Each ManufacturerPart is identified by a MPN (Manufacturer Part Number) Each ManufacturerPart is also linked to a Part object. A Part may be available from multiple manufacturers.
|
"""Represents a unique part as provided by a Manufacturer Each ManufacturerPart is identified by a MPN (Manufacturer Part Number) Each ManufacturerPart is also linked to a Part object. A Part may be available from multiple manufacturers.
|
||||||
@@ -606,7 +604,6 @@ class SupplierPart(
|
|||||||
InvenTree.models.MetadataMixin,
|
InvenTree.models.MetadataMixin,
|
||||||
InvenTree.models.InvenTreeBarcodeMixin,
|
InvenTree.models.InvenTreeBarcodeMixin,
|
||||||
InvenTree.models.InvenTreeNoteMixin,
|
InvenTree.models.InvenTreeNoteMixin,
|
||||||
InvenTree.models.InvenTreeNotesMixin,
|
|
||||||
common.models.MetaMixin,
|
common.models.MetaMixin,
|
||||||
InvenTree.models.InvenTreeModel,
|
InvenTree.models.InvenTreeModel,
|
||||||
):
|
):
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ from InvenTree.serializers import (
|
|||||||
InvenTreeModelSerializer,
|
InvenTreeModelSerializer,
|
||||||
InvenTreeMoneySerializer,
|
InvenTreeMoneySerializer,
|
||||||
InvenTreeTagModelSerializer,
|
InvenTreeTagModelSerializer,
|
||||||
NotesFieldMixin,
|
|
||||||
OptionalField,
|
OptionalField,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -106,10 +105,7 @@ class AddressBriefSerializer(InvenTreeModelSerializer):
|
|||||||
|
|
||||||
@register_importer()
|
@register_importer()
|
||||||
class CompanySerializer(
|
class CompanySerializer(
|
||||||
FilterableSerializerMixin,
|
FilterableSerializerMixin, DataImportExportSerializerMixin, InvenTreeModelSerializer
|
||||||
DataImportExportSerializerMixin,
|
|
||||||
NotesFieldMixin,
|
|
||||||
InvenTreeModelSerializer,
|
|
||||||
):
|
):
|
||||||
"""Serializer for Company object (full detail)."""
|
"""Serializer for Company object (full detail)."""
|
||||||
|
|
||||||
@@ -137,7 +133,6 @@ class CompanySerializer(
|
|||||||
'is_customer',
|
'is_customer',
|
||||||
'is_manufacturer',
|
'is_manufacturer',
|
||||||
'is_supplier',
|
'is_supplier',
|
||||||
'notes',
|
|
||||||
'parts_supplied',
|
'parts_supplied',
|
||||||
'parts_manufactured',
|
'parts_manufactured',
|
||||||
'primary_address',
|
'primary_address',
|
||||||
@@ -208,7 +203,6 @@ class ManufacturerPartSerializer(
|
|||||||
FilterableSerializerMixin,
|
FilterableSerializerMixin,
|
||||||
DataImportExportSerializerMixin,
|
DataImportExportSerializerMixin,
|
||||||
InvenTreeTagModelSerializer,
|
InvenTreeTagModelSerializer,
|
||||||
NotesFieldMixin,
|
|
||||||
):
|
):
|
||||||
"""Serializer for ManufacturerPart object."""
|
"""Serializer for ManufacturerPart object."""
|
||||||
|
|
||||||
@@ -227,7 +221,6 @@ class ManufacturerPartSerializer(
|
|||||||
'MPN',
|
'MPN',
|
||||||
'link',
|
'link',
|
||||||
'barcode_hash',
|
'barcode_hash',
|
||||||
'notes',
|
|
||||||
'tags',
|
'tags',
|
||||||
'parameters',
|
'parameters',
|
||||||
]
|
]
|
||||||
@@ -309,7 +302,6 @@ class SupplierPartSerializer(
|
|||||||
FilterableSerializerMixin,
|
FilterableSerializerMixin,
|
||||||
DataImportExportSerializerMixin,
|
DataImportExportSerializerMixin,
|
||||||
InvenTreeTagModelSerializer,
|
InvenTreeTagModelSerializer,
|
||||||
NotesFieldMixin,
|
|
||||||
):
|
):
|
||||||
"""Serializer for SupplierPart object."""
|
"""Serializer for SupplierPart object."""
|
||||||
|
|
||||||
@@ -354,7 +346,6 @@ class SupplierPartSerializer(
|
|||||||
'supplier',
|
'supplier',
|
||||||
'supplier_detail',
|
'supplier_detail',
|
||||||
'updated',
|
'updated',
|
||||||
'notes',
|
|
||||||
'part_detail',
|
'part_detail',
|
||||||
'tags',
|
'tags',
|
||||||
'price_breaks',
|
'price_breaks',
|
||||||
|
|||||||
+34
@@ -0,0 +1,34 @@
|
|||||||
|
# Generated by Django 5.2.14 on 2026-05-25 12:36
|
||||||
|
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
("order", "0119_transferorderlineitem_line_int"),
|
||||||
|
("common", "0046_remove_notesimage_model_id_and_more")
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="purchaseorder",
|
||||||
|
name="notes",
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="returnorder",
|
||||||
|
name="notes",
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="salesorder",
|
||||||
|
name="notes",
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="salesordershipment",
|
||||||
|
name="notes",
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="transferorder",
|
||||||
|
name="notes",
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -300,7 +300,6 @@ class Order(
|
|||||||
InvenTree.models.InvenTreeAttachmentMixin,
|
InvenTree.models.InvenTreeAttachmentMixin,
|
||||||
InvenTree.models.InvenTreeBarcodeMixin,
|
InvenTree.models.InvenTreeBarcodeMixin,
|
||||||
InvenTree.models.InvenTreeNoteMixin,
|
InvenTree.models.InvenTreeNoteMixin,
|
||||||
InvenTree.models.InvenTreeNotesMixin,
|
|
||||||
report.mixins.InvenTreeReportMixin,
|
report.mixins.InvenTreeReportMixin,
|
||||||
InvenTree.models.MetadataMixin,
|
InvenTree.models.MetadataMixin,
|
||||||
InvenTree.models.ReferenceIndexingMixin,
|
InvenTree.models.ReferenceIndexingMixin,
|
||||||
@@ -2331,7 +2330,6 @@ class SalesOrderShipment(
|
|||||||
InvenTree.models.InvenTreeAttachmentMixin,
|
InvenTree.models.InvenTreeAttachmentMixin,
|
||||||
InvenTree.models.InvenTreeBarcodeMixin,
|
InvenTree.models.InvenTreeBarcodeMixin,
|
||||||
InvenTree.models.InvenTreeNoteMixin,
|
InvenTree.models.InvenTreeNoteMixin,
|
||||||
InvenTree.models.InvenTreeNotesMixin,
|
|
||||||
report.mixins.InvenTreeReportMixin,
|
report.mixins.InvenTreeReportMixin,
|
||||||
InvenTree.models.MetadataMixin,
|
InvenTree.models.MetadataMixin,
|
||||||
InvenTree.models.InvenTreeModel,
|
InvenTree.models.InvenTreeModel,
|
||||||
|
|||||||
@@ -36,7 +36,6 @@ from InvenTree.serializers import (
|
|||||||
InvenTreeDecimalField,
|
InvenTreeDecimalField,
|
||||||
InvenTreeModelSerializer,
|
InvenTreeModelSerializer,
|
||||||
InvenTreeMoneySerializer,
|
InvenTreeMoneySerializer,
|
||||||
NotesFieldMixin,
|
|
||||||
OptionalField,
|
OptionalField,
|
||||||
)
|
)
|
||||||
from order.status_codes import (
|
from order.status_codes import (
|
||||||
@@ -104,9 +103,9 @@ class AbstractOrderSerializer(
|
|||||||
):
|
):
|
||||||
"""Abstract serializer class which provides fields common to all order types."""
|
"""Abstract serializer class which provides fields common to all order types."""
|
||||||
|
|
||||||
export_exclude_fields = ['notes', 'duplicate']
|
export_exclude_fields = ['duplicate']
|
||||||
|
|
||||||
import_exclude_fields = ['notes', 'duplicate']
|
import_exclude_fields = ['duplicate']
|
||||||
|
|
||||||
# Number of line items in this order
|
# Number of line items in this order
|
||||||
line_items = serializers.IntegerField(
|
line_items = serializers.IntegerField(
|
||||||
@@ -224,7 +223,6 @@ class AbstractOrderSerializer(
|
|||||||
'status',
|
'status',
|
||||||
'status_text',
|
'status_text',
|
||||||
'status_custom_key',
|
'status_custom_key',
|
||||||
'notes',
|
|
||||||
'barcode_hash',
|
'barcode_hash',
|
||||||
'overdue',
|
'overdue',
|
||||||
'duplicate',
|
'duplicate',
|
||||||
@@ -373,7 +371,6 @@ class AbstractExtraLineMeta:
|
|||||||
|
|
||||||
@register_importer()
|
@register_importer()
|
||||||
class PurchaseOrderSerializer(
|
class PurchaseOrderSerializer(
|
||||||
NotesFieldMixin,
|
|
||||||
TotalPriceMixin,
|
TotalPriceMixin,
|
||||||
InvenTreeCustomStatusSerializerMixin,
|
InvenTreeCustomStatusSerializerMixin,
|
||||||
AbstractOrderSerializer,
|
AbstractOrderSerializer,
|
||||||
@@ -1060,7 +1057,6 @@ class PurchaseOrderReceiveSerializer(serializers.Serializer):
|
|||||||
|
|
||||||
@register_importer()
|
@register_importer()
|
||||||
class SalesOrderSerializer(
|
class SalesOrderSerializer(
|
||||||
NotesFieldMixin,
|
|
||||||
TotalPriceMixin,
|
TotalPriceMixin,
|
||||||
InvenTreeCustomStatusSerializerMixin,
|
InvenTreeCustomStatusSerializerMixin,
|
||||||
AbstractOrderSerializer,
|
AbstractOrderSerializer,
|
||||||
@@ -1360,10 +1356,7 @@ class SalesOrderLineItemSerializer(
|
|||||||
|
|
||||||
@register_importer()
|
@register_importer()
|
||||||
class SalesOrderShipmentSerializer(
|
class SalesOrderShipmentSerializer(
|
||||||
DataImportExportSerializerMixin,
|
DataImportExportSerializerMixin, FilterableSerializerMixin, InvenTreeModelSerializer
|
||||||
FilterableSerializerMixin,
|
|
||||||
NotesFieldMixin,
|
|
||||||
InvenTreeModelSerializer,
|
|
||||||
):
|
):
|
||||||
"""Serializer for the SalesOrderShipment class."""
|
"""Serializer for the SalesOrderShipment class."""
|
||||||
|
|
||||||
@@ -2015,7 +2008,6 @@ class SalesOrderExtraLineSerializer(
|
|||||||
|
|
||||||
@register_importer()
|
@register_importer()
|
||||||
class ReturnOrderSerializer(
|
class ReturnOrderSerializer(
|
||||||
NotesFieldMixin,
|
|
||||||
InvenTreeCustomStatusSerializerMixin,
|
InvenTreeCustomStatusSerializerMixin,
|
||||||
AbstractOrderSerializer,
|
AbstractOrderSerializer,
|
||||||
TotalPriceMixin,
|
TotalPriceMixin,
|
||||||
@@ -2303,7 +2295,6 @@ class ReturnOrderExtraLineSerializer(
|
|||||||
|
|
||||||
@register_importer()
|
@register_importer()
|
||||||
class TransferOrderSerializer(
|
class TransferOrderSerializer(
|
||||||
NotesFieldMixin,
|
|
||||||
InvenTreeCustomStatusSerializerMixin,
|
InvenTreeCustomStatusSerializerMixin,
|
||||||
AbstractOrderSerializer,
|
AbstractOrderSerializer,
|
||||||
InvenTreeModelSerializer,
|
InvenTreeModelSerializer,
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
# Generated by Django 5.2.14 on 2026-05-25 12:36
|
||||||
|
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
("part", "0150_part_maximum_stock"),
|
||||||
|
("common", "0046_remove_notesimage_model_id_and_more")
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="part",
|
||||||
|
name="notes",
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -466,7 +466,6 @@ class Part(
|
|||||||
InvenTree.models.InvenTreeAttachmentMixin,
|
InvenTree.models.InvenTreeAttachmentMixin,
|
||||||
InvenTree.models.InvenTreeBarcodeMixin,
|
InvenTree.models.InvenTreeBarcodeMixin,
|
||||||
InvenTree.models.InvenTreeNoteMixin,
|
InvenTree.models.InvenTreeNoteMixin,
|
||||||
InvenTree.models.InvenTreeNotesMixin,
|
|
||||||
report.mixins.InvenTreeReportMixin,
|
report.mixins.InvenTreeReportMixin,
|
||||||
InvenTree.models.InvenTreeImageMixin,
|
InvenTree.models.InvenTreeImageMixin,
|
||||||
InvenTree.models.MetadataMixin,
|
InvenTree.models.MetadataMixin,
|
||||||
|
|||||||
@@ -577,7 +577,6 @@ class DefaultLocationSerializer(InvenTree.serializers.InvenTreeModelSerializer):
|
|||||||
class PartSerializer(
|
class PartSerializer(
|
||||||
InvenTree.serializers.FilterableSerializerMixin,
|
InvenTree.serializers.FilterableSerializerMixin,
|
||||||
DataImportExportSerializerMixin,
|
DataImportExportSerializerMixin,
|
||||||
InvenTree.serializers.NotesFieldMixin,
|
|
||||||
InvenTree.serializers.InvenTreeTaggitSerializer,
|
InvenTree.serializers.InvenTreeTaggitSerializer,
|
||||||
InvenTree.serializers.InvenTreeModelSerializer,
|
InvenTree.serializers.InvenTreeModelSerializer,
|
||||||
):
|
):
|
||||||
@@ -619,7 +618,6 @@ class PartSerializer(
|
|||||||
'minimum_stock',
|
'minimum_stock',
|
||||||
'maximum_stock',
|
'maximum_stock',
|
||||||
'name',
|
'name',
|
||||||
'notes',
|
|
||||||
'parameters',
|
'parameters',
|
||||||
'pk',
|
'pk',
|
||||||
'purchaseable',
|
'purchaseable',
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
# Generated by Django 5.2.14 on 2026-05-25 12:36
|
||||||
|
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
("stock", "0119_alter_stockitemtestresult_date"),
|
||||||
|
("common", "0046_remove_notesimage_model_id_and_more")
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="stockitem",
|
||||||
|
name="notes",
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -404,7 +404,6 @@ class StockItem(
|
|||||||
InvenTree.models.InvenTreeAttachmentMixin,
|
InvenTree.models.InvenTreeAttachmentMixin,
|
||||||
InvenTree.models.InvenTreeBarcodeMixin,
|
InvenTree.models.InvenTreeBarcodeMixin,
|
||||||
InvenTree.models.InvenTreeNoteMixin,
|
InvenTree.models.InvenTreeNoteMixin,
|
||||||
InvenTree.models.InvenTreeNotesMixin,
|
|
||||||
StatusCodeMixin,
|
StatusCodeMixin,
|
||||||
report.mixins.InvenTreeReportMixin,
|
report.mixins.InvenTreeReportMixin,
|
||||||
common.models.MetaMixin,
|
common.models.MetaMixin,
|
||||||
|
|||||||
@@ -356,7 +356,6 @@ class StockItemSerializer(
|
|||||||
'in_stock',
|
'in_stock',
|
||||||
'is_building',
|
'is_building',
|
||||||
'link',
|
'link',
|
||||||
'notes',
|
|
||||||
'owner',
|
'owner',
|
||||||
'packaging',
|
'packaging',
|
||||||
'parent',
|
'parent',
|
||||||
|
|||||||
Reference in New Issue
Block a user