From 17d0a015f2a7d257cff656c17dfb94c568872386 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Mon, 11 May 2020 23:32:40 +1000 Subject: [PATCH] Add API endpoint for StockItem attachment items --- InvenTree/part/api.py | 1 + InvenTree/stock/api.py | 26 ++++++++++++++++++++++++++ InvenTree/stock/serializers.py | 15 +++++++++++++++ 3 files changed, 42 insertions(+) diff --git a/InvenTree/part/api.py b/InvenTree/part/api.py index f53be800b5..a0ee9dcd0b 100644 --- a/InvenTree/part/api.py +++ b/InvenTree/part/api.py @@ -639,6 +639,7 @@ class BomItemValidate(generics.UpdateAPIView): return Response(serializer.data) + part_api_urls = [ url(r'^tree/?', PartCategoryTree.as_view(), name='api-part-tree'), diff --git a/InvenTree/stock/api.py b/InvenTree/stock/api.py index 6b7c15f980..03333569ef 100644 --- a/InvenTree/stock/api.py +++ b/InvenTree/stock/api.py @@ -12,6 +12,7 @@ from django.db.models import Q from .models import StockLocation, StockItem from .models import StockItemTracking +from .models import StockItemAttachment from part.models import Part, PartCategory from part.serializers import PartBriefSerializer @@ -22,6 +23,7 @@ from company.serializers import SupplierPartSerializer from .serializers import StockItemSerializer from .serializers import LocationSerializer, LocationBriefSerializer from .serializers import StockTrackingSerializer +from .serializers import StockItemAttachmentSerializer from InvenTree.views import TreeSerializer from InvenTree.helpers import str2bool, isNull @@ -624,6 +626,25 @@ class StockList(generics.ListCreateAPIView): ] +class StockAttachmentList(generics.ListCreateAPIView): + """ + API endpoint for listing (and creating) a StockItemAttachment (file upload) + """ + + queryset = StockItemAttachment.objects.all() + serializer_class = StockItemAttachmentSerializer + + filter_backends = [ + DjangoFilterBackend, + filters.OrderingFilter, + filters.SearchFilter, + ] + + filter_fields = [ + 'stock_item', + ] + + class StockTrackingList(generics.ListCreateAPIView): """ API endpoint for list view of StockItemTracking objects. @@ -692,6 +713,11 @@ stock_api_urls = [ url(r'remove/?', StockRemove.as_view(), name='api-stock-remove'), url(r'transfer/?', StockTransfer.as_view(), name='api-stock-transfer'), + # Base URL for StockItemAttachment API endpoints + url(r'^attachment/', include([ + url(r'^$', StockAttachmentList.as_view(), name='api-stock-attachment-list'), + ])), + url(r'track/?', StockTrackingList.as_view(), name='api-stock-track'), url(r'^tree/?', StockCategoryTree.as_view(), name='api-stock-tree'), diff --git a/InvenTree/stock/serializers.py b/InvenTree/stock/serializers.py index e04e2a149b..7e9a59470b 100644 --- a/InvenTree/stock/serializers.py +++ b/InvenTree/stock/serializers.py @@ -6,6 +6,7 @@ from rest_framework import serializers from .models import StockItem, StockLocation from .models import StockItemTracking +from .models import StockItemAttachment from django.db.models import Sum, Count from django.db.models.functions import Coalesce @@ -189,6 +190,20 @@ class LocationSerializer(InvenTreeModelSerializer): ] +class StockItemAttachmentSerializer(InvenTreeModelSerializer): + """ Serializer for StockItemAttachment model """ + + class Meta: + model = StockItemAttachment + + fields = [ + 'pk', + 'stock_item', + 'attachment', + 'comment' + ] + + class StockTrackingSerializer(InvenTreeModelSerializer): """ Serializer for StockItemTracking model """