From 8c92c2c2a1f6bac3910d36421ba843f0079d642e Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Wed, 15 May 2019 07:23:02 +1000 Subject: [PATCH] Display overage values in BOM table --- InvenTree/build/models.py | 2 +- InvenTree/part/param_todo.py_todo | 89 ------------------------ InvenTree/part/serializers.py | 4 +- InvenTree/static/script/inventree/bom.js | 9 +++ 4 files changed, 11 insertions(+), 93 deletions(-) delete mode 100644 InvenTree/part/param_todo.py_todo diff --git a/InvenTree/build/models.py b/InvenTree/build/models.py index 823a19ba61..1a0aba0470 100644 --- a/InvenTree/build/models.py +++ b/InvenTree/build/models.py @@ -261,7 +261,7 @@ class Build(models.Model): try: item = BomItem.objects.get(part=self.part.id, sub_part=part.id) - return item.quantity * self.quantity + return item.get_required_quantity(self.quantity) except BomItem.DoesNotExist: return 0 diff --git a/InvenTree/part/param_todo.py_todo b/InvenTree/part/param_todo.py_todo deleted file mode 100644 index e597bedf57..0000000000 --- a/InvenTree/part/param_todo.py_todo +++ /dev/null @@ -1,89 +0,0 @@ -""" -TODO - Implement part parameters, and templates - -See code below -""" - - - -class PartParameterTemplate(models.Model): - """ A PartParameterTemplate pre-defines a parameter field, - ready to be copied for use with a given Part. - A PartParameterTemplate can be optionally associated with a PartCategory - """ - name = models.CharField(max_length=20, unique=True) - units = models.CharField(max_length=10, blank=True) - - # Parameter format - PARAM_NUMERIC = 10 - PARAM_TEXT = 20 - PARAM_BOOL = 30 - - PARAM_TYPE_CODES = { - PARAM_NUMERIC: _("Numeric"), - PARAM_TEXT: _("Text"), - PARAM_BOOL: _("Bool") - } - - format = models.PositiveIntegerField( - default=PARAM_NUMERIC, - choices=PARAM_TYPE_CODES.items(), - validators=[MinValueValidator(0)]) - - def __str__(self): - return "{name} ({units})".format( - name=self.name, - units=self.units) - - class Meta: - verbose_name = "Parameter Template" - verbose_name_plural = "Parameter Templates" - - -class CategoryParameterLink(models.Model): - """ Links a PartParameterTemplate to a PartCategory - """ - category = models.ForeignKey(PartCategory, on_delete=models.CASCADE) - template = models.ForeignKey(PartParameterTemplate, on_delete=models.CASCADE) - - def __str__(self): - return "{name} - {cat}".format( - name=self.template.name, - cat=self.category) - - class Meta: - verbose_name = "Category Parameter" - verbose_name_plural = "Category Parameters" - unique_together = ('category', 'template') - - -class PartParameter(models.Model): - """ PartParameter is associated with a single part - """ - - part = models.ForeignKey(Part, on_delete=models.CASCADE, related_name='parameters') - template = models.ForeignKey(PartParameterTemplate) - - # Value data - value = models.CharField(max_length=50, blank=True) - min_value = models.CharField(max_length=50, blank=True) - max_value = models.CharField(max_length=50, blank=True) - - def __str__(self): - return "{name} : {val}{units}".format( - name=self.template.name, - val=self.value, - units=self.template.units) - - @property - def units(self): - return self.template.units - - @property - def name(self): - return self.template.name - - class Meta: - verbose_name = "Part Parameter" - verbose_name_plural = "Part Parameters" - unique_together = ('part', 'template') diff --git a/InvenTree/part/serializers.py b/InvenTree/part/serializers.py index 37ccb639a0..87ca59c13b 100644 --- a/InvenTree/part/serializers.py +++ b/InvenTree/part/serializers.py @@ -104,8 +104,6 @@ class PartStarSerializer(InvenTreeModelSerializer): class BomItemSerializer(InvenTreeModelSerializer): """ Serializer for BomItem object """ - # url = serializers.CharField(source='get_absolute_url', read_only=True) - part_detail = PartBriefSerializer(source='part', many=False, read_only=True) sub_part_detail = PartBriefSerializer(source='sub_part', many=False, read_only=True) @@ -113,12 +111,12 @@ class BomItemSerializer(InvenTreeModelSerializer): model = BomItem fields = [ 'pk', - # 'url', 'part', 'part_detail', 'sub_part', 'sub_part_detail', 'quantity', + 'overage', 'note', ] diff --git a/InvenTree/static/script/inventree/bom.js b/InvenTree/static/script/inventree/bom.js index 46bdc249ef..6ff81de4fc 100644 --- a/InvenTree/static/script/inventree/bom.js +++ b/InvenTree/static/script/inventree/bom.js @@ -113,6 +113,15 @@ function loadBomTable(table, options) { title: 'Required', searchable: false, sortable: true, + formatter: function(value, row, index, field) { + var text = value; + + if (row.overage) { + text += " (+" + row.overage + ") "; + } + + return text; + } } );