From f724f4a8458d98764f4b612758c19c5c30f4072e Mon Sep 17 00:00:00 2001 From: Oliver Walters <oliver.henry.walters@gmail.com> Date: Tue, 29 Mar 2022 23:38:01 +1100 Subject: [PATCH] Add search preview for purchase orders and sales orders --- .../js/translated/model_renderers.js | 17 ++++++-- InvenTree/templates/js/translated/search.js | 43 ++++++++++++++++++- 2 files changed, 55 insertions(+), 5 deletions(-) diff --git a/InvenTree/templates/js/translated/model_renderers.js b/InvenTree/templates/js/translated/model_renderers.js index 8924687d3c..7be6c954c2 100644 --- a/InvenTree/templates/js/translated/model_renderers.js +++ b/InvenTree/templates/js/translated/model_renderers.js @@ -228,14 +228,12 @@ function renderOwner(name, data, parameters={}, options={}) { // Renderer for "PurchaseOrder" model // eslint-disable-next-line no-unused-vars function renderPurchaseOrder(name, data, parameters={}, options={}) { - var html = ''; var prefix = global_settings.PURCHASEORDER_REFERENCE_PREFIX; + var html = `<span>${prefix}${data.reference}</span>`; var thumbnail = null; - html += `<span>${prefix}${data.reference}</span>`; - if (data.supplier_detail) { thumbnail = data.supplier_detail.thumbnail || data.supplier_detail.image; @@ -262,7 +260,18 @@ function renderPurchaseOrder(name, data, parameters={}, options={}) { // Renderer for "SalesOrder" model // eslint-disable-next-line no-unused-vars function renderSalesOrder(name, data, parameters={}, options={}) { - var html = `<span>${data.reference}</span>`; + + var prefix = global_settings.SALESORDER_REFERENCE_PREFIX; + var html = `<span>${prefix}${data.reference}</span>`; + + var thumbnail = null; + + if (data.customer_detail) { + thumbnail = data.customer_detail.thumbnail || data.customer_detail.image; + + html += ' - ' + select2Thumbnail(thumbnail); + html += `<span>${data.customer_detail.name}</span>`; + } if (data.description) { html += ` - <em>${data.description}</em>`; diff --git a/InvenTree/templates/js/translated/search.js b/InvenTree/templates/js/translated/search.js index 29b27e4a3f..facfb884ff 100644 --- a/InvenTree/templates/js/translated/search.js +++ b/InvenTree/templates/js/translated/search.js @@ -79,12 +79,19 @@ function updateSearch() { $('#offcanvas-search').find('#search-pending').show(); if (user_settings.SEARCH_PREVIEW_SHOW_PARTS) { + + var params = {}; + + if (user_settings.SEARCH_HIDE_INACTIVE_PARTS) { + params.active = false; + } + // Search for matching parts addSearchQuery( 'part', '{% trans "Parts" %}', '{% url "api-part-list" %}', - {}, + params, renderPart, { url: '/part', @@ -150,6 +157,40 @@ function updateSearch() { } ); } + + if (user_settings.SEARCH_PREVIEW_SHOW_PURCHASE_ORDERS) { + // Search for matching purchase orders + addSearchQuery( + 'purchaseorder', + '{% trans "Purchase Orders" %}', + '{% url "api-po-list" %}', + { + supplier_detail: true, + outstanding: true, + }, + renderPurchaseOrder, + { + url: '/order/purchase-order', + } + ); + } + + if (user_settings.SEARCH_PREVIEW_SHOW_SALES_ORDERS) { + // Search for matching sales orders + addSearchQuery( + 'salesorder', + '{% trans "Sales Orders" %}', + '{% url "api-so-list" %}', + { + customer_detail: true, + outstanding: true, + }, + renderSalesOrder, + { + url: '/order/sales-order', + } + ); + } // Wait until all the pending queries are completed $.when.apply($, searchQueries).done(function() {