From 463192e0b98498872506cec84dd1ddc2d2772c71 Mon Sep 17 00:00:00 2001 From: Oliver Date: Tue, 7 Dec 2021 10:33:09 +1100 Subject: [PATCH 1/3] Improved table filtering for "purchase order" table (as seen from "part" view) --- InvenTree/order/api.py | 29 +++++++++++++++---- .../templates/js/translated/table_filters.js | 12 ++++++-- 2 files changed, 34 insertions(+), 7 deletions(-) diff --git a/InvenTree/order/api.py b/InvenTree/order/api.py index 98b9bbe934..96b886e15c 100644 --- a/InvenTree/order/api.py +++ b/InvenTree/order/api.py @@ -277,13 +277,31 @@ class POLineItemFilter(rest_filters.FilterSet): 'part' ] - completed = rest_filters.BooleanFilter(label='completed', method='filter_completed') + pending = rest_filters.BooleanFilter(label='pending', method='filter_pending') - def filter_completed(self, queryset, name, value): + def filter_pending(self, queryset, name, value): + """ + Filter by "pending" status (order status = pending) """ - Filter by lines which are "completed" (or "not" completed) - A line is completed when received >= quantity + value = str2bool(value) + + if value: + queryset = queryset.filter(order__status__in=PurchaseOrderStatus.OPEN) + else: + queryset = queryset.exclude(order__status__in=PurchaseOrderStatus.OPEN) + + return queryset + + order_status = rest_filters.NumberFilter(label='order_status', field_name='order__status') + + received = rest_filters.BooleanFilter(label='received', method='filter_received') + + def filter_received(self, queryset, name, value): + """ + Filter by lines which are "received" (or "not" received) + + A line is considered "received" when received >= quantity """ value = str2bool(value) @@ -293,7 +311,8 @@ class POLineItemFilter(rest_filters.FilterSet): if value: queryset = queryset.filter(q) else: - queryset = queryset.exclude(q) + # Only count "pending" orders + queryset = queryset.exclude(q).filter(order__status__in=PurchaseOrderStatus.OPEN) return queryset diff --git a/InvenTree/templates/js/translated/table_filters.js b/InvenTree/templates/js/translated/table_filters.js index b7ba79e498..76c129abdc 100644 --- a/InvenTree/templates/js/translated/table_filters.js +++ b/InvenTree/templates/js/translated/table_filters.js @@ -308,9 +308,17 @@ function getAvailableTableFilters(tableKey) { // Filters for PurchaseOrderLineItem table if (tableKey == 'purchaseorderlineitem') { return { - completed: { + pending: { type: 'bool', - title: '{% trans "Completed" %}', + title: '{% trans "Pending" %}', + }, + received: { + type: 'bool', + title: '{% trans "Received" %}', + }, + order_status: { + title: '{% trans "Order status" %}', + options: purchaseOrderCodes, }, }; } From 1a85e4f21ddc556627b6a930ba6b189307fcab9b Mon Sep 17 00:00:00 2001 From: Oliver Date: Tue, 7 Dec 2021 10:51:40 +1100 Subject: [PATCH 2/3] Translateable string fixeas --- InvenTree/barcodes/api.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/InvenTree/barcodes/api.py b/InvenTree/barcodes/api.py index 38041096ab..4b853ab438 100644 --- a/InvenTree/barcodes/api.py +++ b/InvenTree/barcodes/api.py @@ -188,21 +188,21 @@ class BarcodeAssign(APIView): if plugin.getStockItem() is not None: match_found = True - response['error'] = _('Barcode already matches StockItem object') + response['error'] = _('Barcode already matches Stock Item') if plugin.getStockLocation() is not None: match_found = True - response['error'] = _('Barcode already matches StockLocation object') + response['error'] = _('Barcode already matches Stock Location') if plugin.getPart() is not None: match_found = True - response['error'] = _('Barcode already matches Part object') + response['error'] = _('Barcode already matches Part') if not match_found: item = plugin.getStockItemByHash() if item is not None: - response['error'] = _('Barcode hash already matches StockItem object') + response['error'] = _('Barcode hash already matches Stock Item') match_found = True else: @@ -214,13 +214,13 @@ class BarcodeAssign(APIView): # Lookup stock item by hash try: item = StockItem.objects.get(uid=hash) - response['error'] = _('Barcode hash already matches StockItem object') + response['error'] = _('Barcode hash already matches Stock Item') match_found = True except StockItem.DoesNotExist: pass if not match_found: - response['success'] = _('Barcode associated with StockItem') + response['success'] = _('Barcode associated with Stock Item') # Save the barcode hash item.uid = response['hash'] From c143826e9bc4b021ebddf24e843d6fe540a751e8 Mon Sep 17 00:00:00 2001 From: Weng Tad Date: Tue, 7 Dec 2021 13:59:51 +0800 Subject: [PATCH 3/3] fix: stock tracking table aligment Fixes #2428 --- InvenTree/InvenTree/static/css/inventree.css | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/InvenTree/InvenTree/static/css/inventree.css b/InvenTree/InvenTree/static/css/inventree.css index a61696f547..98aead45ee 100644 --- a/InvenTree/InvenTree/static/css/inventree.css +++ b/InvenTree/InvenTree/static/css/inventree.css @@ -438,6 +438,12 @@ width: 30%; } +/* tracking table column size */ +#track-table .table-condensed th { + inline-size: 30%; + overflow-wrap: break-word; +} + .panel-heading .badge { float: right; }