Merge pull request #701 from SchrodingersGat/and-yet-more-improvements

And yet more improvements
This commit is contained in:
Oliver 2020-04-06 22:50:33 +10:00 committed by GitHub
commit b319041dfa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 22 additions and 1 deletions

View File

@ -71,6 +71,11 @@ class StockDetail(generics.RetrieveUpdateDestroyAPIView):
except AttributeError:
pass
try:
kwargs['supplier_detail'] = str2bool(self.request.GET.get('supplier_detail', False))
except AttributeError:
pass
kwargs['context'] = self.get_serializer_context()
return self.serializer_class(*args, **kwargs)

View File

@ -410,9 +410,13 @@ class StockItem(MPTTModel):
return True
@property
def tracking_info_count(self):
return self.tracking_info.count()
@property
def has_tracking_info(self):
return self.tracking_info.count() > 0
return self.tracking_info_count > 0
def addTransactionNote(self, title, user, notes='', url='', system=True):
""" Generation a stock transaction note for this item.

View File

@ -8,6 +8,7 @@ from .models import StockItem, StockLocation
from .models import StockItemTracking
from part.serializers import PartBriefSerializer
from company.serializers import SupplierPartSerializer
from InvenTree.serializers import UserSerializerBrief, InvenTreeModelSerializer
@ -61,13 +62,17 @@ class StockItemSerializer(InvenTreeModelSerializer):
part_image = serializers.CharField(source='part__image', read_only=True)
tracking_items = serializers.IntegerField(source='tracking_info_count', read_only=True)
part_detail = PartBriefSerializer(source='part', many=False, read_only=True)
location_detail = LocationBriefSerializer(source='location', many=False, read_only=True)
supplier_detail = SupplierPartSerializer(source='supplier_part', many=False, read_only=True)
def __init__(self, *args, **kwargs):
part_detail = kwargs.pop('part_detail', False)
location_detail = kwargs.pop('location_detail', False)
supplier_detail = kwargs.pop('supplier_detail', False)
super(StockItemSerializer, self).__init__(*args, **kwargs)
@ -77,6 +82,9 @@ class StockItemSerializer(InvenTreeModelSerializer):
if location_detail is not True:
self.fields.pop('location_detail')
if supplier_detail is not True:
self.fields.pop('supplier_detail')
class Meta:
model = StockItem
fields = [
@ -94,8 +102,10 @@ class StockItemSerializer(InvenTreeModelSerializer):
'quantity',
'serial',
'supplier_part',
'supplier_detail',
'status',
'status_text',
'tracking_items',
'url',
]

View File

@ -15,6 +15,7 @@
<div class='modal-form-content'>
<div>
<table class='table table-striped table-condensed'>
<col width='25'>
<tr>
<td></td>
<td>{% trans "Instance Name" %}</td>

View File

@ -3,6 +3,7 @@
{% load i18n %}
<table class='table table-striped table-condensed'>
<col width='25'>
<tr>
<td colspan='2'><b>{% trans "Parts" %}</b></td>
</tr>