2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-12-17 17:58:22 +00:00

[PUI] Supplier part badges (#8625)

* API fixes for SupplierPart

- Move API filtering into SupplierPartFilter class
- Correct field annotation for detail view

* Add "in stock" and "no stock" badges to SupplierPart detail

* Update details

* Annotate 'on_order' quantity for SupplierPart

* Add "has_stock" filter to SupplierPart API

* Improve API query efficiency

* Add 'has_stock' filter to table

* Update <SupplierPartDetail>

* Bump API version
This commit is contained in:
Oliver
2024-12-03 15:21:06 +11:00
committed by GitHub
parent 9ab18f1da7
commit 1a8b030819
7 changed files with 137 additions and 36 deletions

View File

@@ -9,6 +9,7 @@ from rest_framework import serializers
from sql_util.utils import SubqueryCount
from taggit.serializers import TagListSerializerField
import company.filters
import part.filters
import part.serializers as part_serializers
from importer.mixins import DataImportExportSerializerMixin
@@ -323,6 +324,7 @@ class SupplierPartSerializer(
'availability_updated',
'description',
'in_stock',
'on_order',
'link',
'active',
'manufacturer',
@@ -396,6 +398,8 @@ class SupplierPartSerializer(
# Annotated field showing total in-stock quantity
in_stock = serializers.FloatField(read_only=True, label=_('In Stock'))
on_order = serializers.FloatField(read_only=True, label=_('On Order'))
available = serializers.FloatField(required=False, label=_('Available'))
pack_quantity_native = serializers.FloatField(read_only=True)
@@ -442,6 +446,10 @@ class SupplierPartSerializer(
"""
queryset = queryset.annotate(in_stock=part.filters.annotate_total_stock())
queryset = queryset.annotate(
on_order=company.filters.annotate_on_order_quantity()
)
return queryset
def update(self, supplier_part, data):