diff --git a/InvenTree/common/models.py b/InvenTree/common/models.py index a9150a8e6d..2beeb26f1d 100644 --- a/InvenTree/common/models.py +++ b/InvenTree/common/models.py @@ -1428,6 +1428,13 @@ class InvenTreeUserSetting(BaseInvenTreeSetting): 'default': True, 'validator': bool, }, + + 'SEARCH_HIDE_INACTIVE_PARTS': { + 'name': _("Hide Inactive Parts"), + 'description': _('Excluded inactive parts from search preview window'), + 'default': False, + 'validator': bool, + }, 'SEARCH_PREVIEW_SHOW_CATEGORIES': { 'name': _('Search Categories'), @@ -1443,6 +1450,13 @@ class InvenTreeUserSetting(BaseInvenTreeSetting): 'validator': bool, }, + 'SEARCH_PREVIEW_HIDE_UNAVAILABLE_STOCK': { + 'name': _('Hide Unavailable Stock Items'), + 'description': _('Exclude stock items which are not available from the search preview window'), + 'validator': bool, + 'default': False, + }, + 'SEARCH_PREVIEW_SHOW_LOCATIONS': { 'name': _('Search Locations'), 'description': _('Display stock locations in search preview window'), @@ -1479,7 +1493,7 @@ class InvenTreeUserSetting(BaseInvenTreeSetting): }, 'SEARCH_PREVIEW_EXCLUDE_INACTIVE_SALES_ORDERS': { - 'name': 'Exclude Inactive Sales Orders', + 'name': _('Exclude Inactive Sales Orders'), 'description': _('Exclude inactive sales orders from search preview window'), 'validator': bool, 'default': True, @@ -1492,13 +1506,6 @@ class InvenTreeUserSetting(BaseInvenTreeSetting): 'validator': [int, MinValueValidator(1)] }, - 'SEARCH_HIDE_INACTIVE_PARTS': { - 'name': _("Hide Inactive Parts"), - 'description': _('Hide inactive parts in search preview window'), - 'default': False, - 'validator': bool, - }, - 'PART_SHOW_QUANTITY_IN_FORMS': { 'name': _('Show Quantity in Forms'), 'description': _('Display available part quantity in some forms'), diff --git a/InvenTree/templates/InvenTree/settings/user_search.html b/InvenTree/templates/InvenTree/settings/user_search.html index f54c5fd2ef..f18fb5816c 100644 --- a/InvenTree/templates/InvenTree/settings/user_search.html +++ b/InvenTree/templates/InvenTree/settings/user_search.html @@ -18,6 +18,7 @@ {% include "InvenTree/settings/setting.html" with key="SEARCH_HIDE_INACTIVE_PARTS" user_setting=True icon='fa-eye-slash' %} {% include "InvenTree/settings/setting.html" with key="SEARCH_PREVIEW_SHOW_CATEGORIES" user_setting=True icon='fa-sitemap' %} {% include "InvenTree/settings/setting.html" with key="SEARCH_PREVIEW_SHOW_STOCK" user_setting=True icon='fa-boxes' %} + {% include "InvenTree/settings/setting.html" with key="SEARCH_PREVIEW_HIDE_UNAVAILABLE_STOCK" user_setting=True icon='fa-eye-slash' %} {% include "InvenTree/settings/setting.html" with key="SEARCH_PREVIEW_SHOW_LOCATIONS" user_setting=True icon='fa-sitemap' %} {% include "InvenTree/settings/setting.html" with key="SEARCH_PREVIEW_SHOW_COMPANIES" user_setting=True icon='fa-building' %} {% include "InvenTree/settings/setting.html" with key="SEARCH_PREVIEW_SHOW_PURCHASE_ORDERS" user_setting=True icon='fa-shopping-cart' %} diff --git a/InvenTree/templates/js/translated/search.js b/InvenTree/templates/js/translated/search.js index 5900a9b28d..9758ee2ff9 100644 --- a/InvenTree/templates/js/translated/search.js +++ b/InvenTree/templates/js/translated/search.js @@ -122,14 +122,22 @@ function updateSearch() { if (user_settings.SEARCH_PREVIEW_SHOW_STOCK) { // Search for matching stock items + + var filters = { + part_detail: true, + location_detail: true, + }; + + if (user_settings.SEARCH_PREVIEW_HIDE_UNAVAILABLE_STOCK) { + // Only show 'in stock' items in the preview windoww + filters.in_stock = true; + } + addSearchQuery( 'stock', '{% trans "Stock Items" %}', '{% url "api-stock-list" %}', - { - part_detail: true, - location_detail: true, - }, + filters, renderStockItem, { url: '/stock/item',