From b4d66c6797650fb63579cbf56b62a122938f98f8 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Sun, 5 Apr 2020 15:29:31 +1000 Subject: [PATCH 1/5] Add 'building' count to Part detail API --- InvenTree/part/serializers.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/InvenTree/part/serializers.py b/InvenTree/part/serializers.py index a48aaaa54d..fe7483b399 100644 --- a/InvenTree/part/serializers.py +++ b/InvenTree/part/serializers.py @@ -83,7 +83,11 @@ class PartSerializer(InvenTreeModelSerializer): thumbnail = serializers.CharField(source='get_thumbnail_url', read_only=True) category_name = serializers.CharField(source='category_path', read_only=True) - allocated_stock = serializers.IntegerField(source='allocation_count', read_only=True) + allocated_stock = serializers.FloatField(source='allocation_count', read_only=True) + + on_order = serializers.FloatField(read_only=True) + + building = serializers.FloatField(source='quantity_being_built', read_only=False) @staticmethod def setup_eager_loading(queryset): @@ -114,6 +118,7 @@ class PartSerializer(InvenTreeModelSerializer): 'total_stock', 'allocated_stock', 'on_order', + 'building', 'units', 'trackable', 'assembly', From 1f172b3a57f14da275a5ae3d6dac3ebd356fd348 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Sun, 5 Apr 2020 15:39:55 +1000 Subject: [PATCH 2/5] Add 'bom_items' and 'used_in' to Part detail API --- InvenTree/part/serializers.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/InvenTree/part/serializers.py b/InvenTree/part/serializers.py index fe7483b399..3183a7caf9 100644 --- a/InvenTree/part/serializers.py +++ b/InvenTree/part/serializers.py @@ -78,16 +78,15 @@ class PartSerializer(InvenTreeModelSerializer): Used when displaying all details of a single component. """ - url = serializers.CharField(source='get_absolute_url', read_only=True) - image = serializers.CharField(source='get_image_url', read_only=True) - thumbnail = serializers.CharField(source='get_thumbnail_url', read_only=True) - category_name = serializers.CharField(source='category_path', read_only=True) - allocated_stock = serializers.FloatField(source='allocation_count', read_only=True) - - on_order = serializers.FloatField(read_only=True) - + bom_items = serializers.IntegerField(source='bom_count', read_only=True) building = serializers.FloatField(source='quantity_being_built', read_only=False) + category_name = serializers.CharField(source='category_path', read_only=True) + image = serializers.CharField(source='get_image_url', read_only=True) + on_order = serializers.FloatField(read_only=True) + thumbnail = serializers.CharField(source='get_thumbnail_url', read_only=True) + url = serializers.CharField(source='get_absolute_url', read_only=True) + used_in = serializers.IntegerField(source='used_in_count', read_only=True) @staticmethod def setup_eager_loading(queryset): @@ -103,6 +102,7 @@ class PartSerializer(InvenTreeModelSerializer): fields = [ 'pk', 'url', # Link to the part detail page + 'bom_items', 'category', 'category_name', 'image', @@ -120,6 +120,7 @@ class PartSerializer(InvenTreeModelSerializer): 'on_order', 'building', 'units', + 'used_in', 'trackable', 'assembly', 'component', From 91b5911ff2bb17fe8ac85b1b939db599bb90d8ae Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Sun, 5 Apr 2020 15:46:18 +1000 Subject: [PATCH 3/5] Add 'notes' field to Part detail API --- InvenTree/part/serializers.py | 36 +++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/InvenTree/part/serializers.py b/InvenTree/part/serializers.py index 3183a7caf9..cd3a8c9017 100644 --- a/InvenTree/part/serializers.py +++ b/InvenTree/part/serializers.py @@ -100,34 +100,34 @@ class PartSerializer(InvenTreeModelSerializer): model = Part partial = True fields = [ - 'pk', - 'url', # Link to the part detail page + 'active', + 'allocated_stock', + 'assembly', 'bom_items', + 'building', 'category', 'category_name', - 'image', - 'thumbnail', + 'component', + 'description', 'full_name', - 'name', + 'image', 'IPN', 'is_template', - 'variant_of', - 'description', 'keywords', - 'URL', - 'total_stock', - 'allocated_stock', + 'name', + 'notes', 'on_order', - 'building', - 'units', - 'used_in', - 'trackable', - 'assembly', - 'component', - 'trackable', + 'pk', 'purchaseable', 'salable', - 'active', + 'thumbnail', + 'trackable', + 'total_stock', + 'units', + 'used_in', + 'URL', + 'url', # Link to the part detail page + 'variant_of', 'virtual', ] From 511cdef3237281652fa22ea6ae3cd3564d318103 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Sun, 5 Apr 2020 15:59:48 +1000 Subject: [PATCH 4/5] Peppy fix --- InvenTree/part/serializers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/InvenTree/part/serializers.py b/InvenTree/part/serializers.py index cd3a8c9017..3df21f2dbc 100644 --- a/InvenTree/part/serializers.py +++ b/InvenTree/part/serializers.py @@ -104,7 +104,7 @@ class PartSerializer(InvenTreeModelSerializer): 'allocated_stock', 'assembly', 'bom_items', - 'building', + 'building', 'category', 'category_name', 'component', From d739c2dea8c098668083e0cc34abde409203a258 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Sun, 5 Apr 2020 19:18:32 +1000 Subject: [PATCH 5/5] "URL" is renamed to "link" in the URL --- InvenTree/part/api.py | 6 ++++++ InvenTree/part/serializers.py | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/InvenTree/part/api.py b/InvenTree/part/api.py index ec599de446..e032c73eeb 100644 --- a/InvenTree/part/api.py +++ b/InvenTree/part/api.py @@ -243,6 +243,12 @@ class PartList(generics.ListCreateAPIView): else: item['category__name'] = None + # Rename "URL" to "link" to distinguish from lower-case "url", + # which is the web address of the item itself + if 'URL' in item.keys(): + item['link'] = item['URL'] + del item['URL'] + return Response(data) def get_queryset(self): diff --git a/InvenTree/part/serializers.py b/InvenTree/part/serializers.py index 3df21f2dbc..9e97cad84f 100644 --- a/InvenTree/part/serializers.py +++ b/InvenTree/part/serializers.py @@ -86,6 +86,7 @@ class PartSerializer(InvenTreeModelSerializer): on_order = serializers.FloatField(read_only=True) thumbnail = serializers.CharField(source='get_thumbnail_url', read_only=True) url = serializers.CharField(source='get_absolute_url', read_only=True) + link = serializers.CharField(source='URL') used_in = serializers.IntegerField(source='used_in_count', read_only=True) @staticmethod @@ -114,6 +115,7 @@ class PartSerializer(InvenTreeModelSerializer): 'IPN', 'is_template', 'keywords', + 'link', 'name', 'notes', 'on_order', @@ -125,7 +127,6 @@ class PartSerializer(InvenTreeModelSerializer): 'total_stock', 'units', 'used_in', - 'URL', 'url', # Link to the part detail page 'variant_of', 'virtual',