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: except AttributeError:
pass pass
try:
kwargs['supplier_detail'] = str2bool(self.request.GET.get('supplier_detail', False))
except AttributeError:
pass
kwargs['context'] = self.get_serializer_context() kwargs['context'] = self.get_serializer_context()
return self.serializer_class(*args, **kwargs) return self.serializer_class(*args, **kwargs)

View File

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

View File

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

View File

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

View File

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