From bad246bca6f0cbc666a9d47e0d5b6d1afee1f94a Mon Sep 17 00:00:00 2001 From: Oliver Date: Thu, 26 Aug 2021 08:24:31 +1000 Subject: [PATCH] Fixes for ordering of stock table --- .../order/purchase_order_detail.html | 2 +- InvenTree/stock/api.py | 14 +++++++++++-- InvenTree/templates/js/translated/stock.js | 20 +++++++++++++++---- 3 files changed, 29 insertions(+), 7 deletions(-) diff --git a/InvenTree/order/templates/order/purchase_order_detail.html b/InvenTree/order/templates/order/purchase_order_detail.html index df22e60a20..ef7a8e8703 100644 --- a/InvenTree/order/templates/order/purchase_order_detail.html +++ b/InvenTree/order/templates/order/purchase_order_detail.html @@ -383,7 +383,7 @@ $("#po-table").inventreeTable({ } }, { - sortable: true, + sortable: false, field: 'received', switchable: false, title: '{% trans "Received" %}', diff --git a/InvenTree/stock/api.py b/InvenTree/stock/api.py index cf58c7d4d9..7ff5c55bbe 100644 --- a/InvenTree/stock/api.py +++ b/InvenTree/stock/api.py @@ -43,6 +43,7 @@ from .serializers import StockItemTestResultSerializer from InvenTree.views import TreeSerializer from InvenTree.helpers import str2bool, isNull from InvenTree.api import AttachmentMixin +from InvenTree.filters import InvenTreeOrderingFilter from decimal import Decimal, InvalidOperation @@ -882,10 +883,16 @@ class StockList(generics.ListCreateAPIView): filter_backends = [ DjangoFilterBackend, filters.SearchFilter, - filters.OrderingFilter, + InvenTreeOrderingFilter, ] + ordering_field_aliases = { + 'SKU': 'supplier_part__SKU', + } + ordering_fields = [ + 'batch', + 'location', 'part__name', 'part__IPN', 'updated', @@ -893,10 +900,13 @@ class StockList(generics.ListCreateAPIView): 'expiry_date', 'quantity', 'status', + 'SKU', ] ordering = [ - 'part__name' + 'part__name', + 'quantity', + 'location', ] search_fields = [ diff --git a/InvenTree/templates/js/translated/stock.js b/InvenTree/templates/js/translated/stock.js index 585cac1310..99c3824cac 100644 --- a/InvenTree/templates/js/translated/stock.js +++ b/InvenTree/templates/js/translated/stock.js @@ -921,8 +921,10 @@ function loadStockTable(table, options) { return renderLink(text, link); } - }, - { + }); + + col = { + field: 'supplier_part', title: '{% trans "Supplier Part" %}', visible: params['supplier_part_detail'] || false, @@ -944,15 +946,25 @@ function loadStockTable(table, options) { return renderLink(text, link); } - }); + }; + + if (!options.params.ordering) { + col.sortable = true; + col.sortName = 'SKU'; + } + + columns.push(col); col = { field: 'purchase_price_string', title: '{% trans "Purchase Price" %}', }; + if (!options.params.ordering) { - col['sortable'] = true; + col.sortable = true; + col.sortName = 'purchase_price'; }; + columns.push(col); columns.push({