From 5582c8ba4388a7e50715bda301249cdd439d8096 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Mon, 16 May 2022 21:29:49 +1000 Subject: [PATCH] Add metadata endpoints for SalesOrder and PurchaseOrder models --- InvenTree/order/api.py | 34 ++++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/InvenTree/order/api.py b/InvenTree/order/api.py index 7c8a93125f..2f307fd1a1 100644 --- a/InvenTree/order/api.py +++ b/InvenTree/order/api.py @@ -27,6 +27,8 @@ import order.serializers as serializers from part.models import Part from users.models import Owner +from plugin.serializers import MetadataSerializer + class GeneralExtraLineList: """ @@ -347,6 +349,15 @@ class PurchaseOrderIssue(PurchaseOrderContextMixin, generics.CreateAPIView): serializer_class = serializers.PurchaseOrderIssueSerializer +class PurchaseOrderMetadata(generics.RetrieveUpdateAPIView): + """API endpoint for viewing / updating PurchaseOrder metadata""" + + def get_serializer(self, *args, **kwargs): + return MetadataSerializer(models.PurchaseOrder, *args, **kwargs) + + queryset = models.PurchaseOrder.objects.all() + + class PurchaseOrderReceive(PurchaseOrderContextMixin, generics.CreateAPIView): """ API endpoint to receive stock items against a purchase order. @@ -916,6 +927,15 @@ class SalesOrderComplete(SalesOrderContextMixin, generics.CreateAPIView): serializer_class = serializers.SalesOrderCompleteSerializer +class SalesOrderMetadata(generics.RetrieveUpdateAPIView): + """API endpoint for viewing / updating SalesOrder metadata""" + + def get_serializer(self, *args, **kwargs): + return MetadataSerializer(models.SalesOrder, *args, **kwargs) + + queryset = models.SalesOrder.objects.all() + + class SalesOrderAllocateSerials(SalesOrderContextMixin, generics.CreateAPIView): """ API endpoint to allocation stock items against a SalesOrder, @@ -1138,10 +1158,13 @@ order_api_urls = [ # Individual purchase order detail URLs re_path(r'^(?P\d+)/', include([ - re_path(r'^issue/', PurchaseOrderIssue.as_view(), name='api-po-issue'), - re_path(r'^receive/', PurchaseOrderReceive.as_view(), name='api-po-receive'), re_path(r'^cancel/', PurchaseOrderCancel.as_view(), name='api-po-cancel'), re_path(r'^complete/', PurchaseOrderComplete.as_view(), name='api-po-complete'), + re_path(r'^issue/', PurchaseOrderIssue.as_view(), name='api-po-issue'), + re_path(r'^metadata/', PurchaseOrderMetadata.as_view(), name='api-po-metadata'), + re_path(r'^receive/', PurchaseOrderReceive.as_view(), name='api-po-receive'), + + # PurchaseOrder detail API endpoint re_path(r'.*$', PurchaseOrderDetail.as_view(), name='api-po-detail'), ])), @@ -1178,10 +1201,13 @@ order_api_urls = [ # Sales order detail view re_path(r'^(?P\d+)/', include([ - re_path(r'^cancel/', SalesOrderCancel.as_view(), name='api-so-cancel'), - re_path(r'^complete/', SalesOrderComplete.as_view(), name='api-so-complete'), re_path(r'^allocate/', SalesOrderAllocate.as_view(), name='api-so-allocate'), re_path(r'^allocate-serials/', SalesOrderAllocateSerials.as_view(), name='api-so-allocate-serials'), + re_path(r'^cancel/', SalesOrderCancel.as_view(), name='api-so-cancel'), + re_path(r'^complete/', SalesOrderComplete.as_view(), name='api-so-complete'), + re_path(r'^metadata/', SalesOrderMetadata.as_view(), name='api-so-metadata'), + + # SalesOrder detail endpoint re_path(r'^.*$', SalesOrderDetail.as_view(), name='api-so-detail'), ])),