Add 'expired' flag to StockItem serializer

This commit is contained in:
Oliver Walters 2021-01-04 00:20:19 +11:00
parent 1a930f7f80
commit 39b9dcfec9

View File

@ -11,6 +11,9 @@ from .models import StockItemTestResult
from django.db.models.functions import Coalesce
from django.db.models import Case, When, Value
from django.db.models import BooleanField
from sql_util.utils import SubquerySum, SubqueryCount
from decimal import Decimal
@ -106,6 +109,16 @@ class StockItemSerializer(InvenTreeModelSerializer):
tracking_items=SubqueryCount('tracking_info')
)
# Add flag to indicate if the StockItem has expired
queryset = queryset.annotate(
expired=Case(
When(
StockItem.EXPIRED_FILTER, then=Value(True, output_field=BooleanField()),
),
default=Value(False, output_field=BooleanField())
)
)
return queryset
status_text = serializers.CharField(source='get_status_display', read_only=True)
@ -122,6 +135,8 @@ class StockItemSerializer(InvenTreeModelSerializer):
allocated = serializers.FloatField(source='allocation_count', required=False)
expired = serializers.BooleanField()
serial = serializers.CharField(required=False)
required_tests = serializers.IntegerField(source='required_test_count', read_only=True, required=False)
@ -155,6 +170,8 @@ class StockItemSerializer(InvenTreeModelSerializer):
'belongs_to',
'build',
'customer',
'expired',
'expiry_date',
'in_stock',
'is_building',
'link',