From 6f4178acdb5cc9c54d5f0106dbc45b63af433347 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Tue, 2 Mar 2021 12:38:37 +1100 Subject: [PATCH] Improve server-side pagination for POLineItem --- InvenTree/order/api.py | 16 ++++++++++++++++ .../templates/order/purchase_order_detail.html | 12 ++++++++++-- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/InvenTree/order/api.py b/InvenTree/order/api.py index 33937acc94..95644199c5 100644 --- a/InvenTree/order/api.py +++ b/InvenTree/order/api.py @@ -200,6 +200,22 @@ class POLineItemList(generics.ListCreateAPIView): filter_backends = [ DjangoFilterBackend, + filters.SearchFilter, + filters.OrderingFilter + ] + + ordering_fields = [ + 'part__part__name', + 'part__MPN', + 'part__SKU', + 'reference', + 'quantity', + 'received', + ] + + search_Fields = [ + 'part__part__name', + 'part__part__description', ] filter_fields = [ diff --git a/InvenTree/order/templates/order/purchase_order_detail.html b/InvenTree/order/templates/order/purchase_order_detail.html index 268e83ef4e..b22d045258 100644 --- a/InvenTree/order/templates/order/purchase_order_detail.html +++ b/InvenTree/order/templates/order/purchase_order_detail.html @@ -135,6 +135,7 @@ function setupCallbacks() { $("#po-table").inventreeTable({ onPostBody: setupCallbacks, name: 'purchaseorder', + sidePagination: 'server', formatNoMatches: function() { return "{% trans 'No line items found' %}"; }, queryParams: { order: {{ order.id }}, @@ -151,6 +152,7 @@ $("#po-table").inventreeTable({ { field: 'part', sortable: true, + sortName: 'part__part__name', title: '{% trans "Part" %}', switchable: false, formatter: function(value, row, index, field) { @@ -162,18 +164,24 @@ $("#po-table").inventreeTable({ }, }, { - sortable: true, field: 'part_detail.description', title: '{% trans "Description" %}', }, { sortable: true, + sortName: 'part__SKU', field: 'supplier_part_detail.SKU', - title: '{% trans "Order Code" %}', + title: '{% trans "SKU" %}', formatter: function(value, row, index, field) { return renderLink(value, `/supplier-part/${row.part}/`); }, }, + { + sortable: true, + sortName: 'part__MPN', + field: 'supplier_part_detail.MPN', + title: '{% trans "MPN" %}', + }, { sortable: true, field: 'reference',