From 193d6b334c7f70e7222bf8e725b37d3717e63c1c Mon Sep 17 00:00:00 2001 From: Oliver <oliver.henry.walters@gmail.com> Date: Wed, 3 Nov 2021 23:29:36 +1100 Subject: [PATCH] Add option to display "starred categories" on the index page --- InvenTree/common/models.py | 6 ++++++ InvenTree/templates/InvenTree/index.html | 13 ++++++++++++- .../templates/InvenTree/settings/user_homepage.html | 1 + InvenTree/templates/js/dynamic/inventree.js | 7 ++++++- InvenTree/templates/js/translated/part.js | 6 +++--- 5 files changed, 28 insertions(+), 5 deletions(-) diff --git a/InvenTree/common/models.py b/InvenTree/common/models.py index 125941be14..bbc8a6721a 100644 --- a/InvenTree/common/models.py +++ b/InvenTree/common/models.py @@ -879,6 +879,12 @@ class InvenTreeUserSetting(BaseInvenTreeSetting): 'default': True, 'validator': bool, }, + 'HOMEPAGE_CATEGORY_STARRED': { + 'name': _('Show subscribed categories'), + 'description': _('Show subscribed part categories on the homepage'), + 'default': True, + 'validator': bool, + }, 'HOMEPAGE_PART_LATEST': { 'name': _('Show latest parts'), 'description': _('Show latest parts on the homepage'), diff --git a/InvenTree/templates/InvenTree/index.html b/InvenTree/templates/InvenTree/index.html index 2c407fdcd9..b87ec6d0dc 100644 --- a/InvenTree/templates/InvenTree/index.html +++ b/InvenTree/templates/InvenTree/index.html @@ -76,6 +76,7 @@ function addHeaderAction(label, title, icon, options) { } {% settings_value 'HOMEPAGE_PART_STARRED' user=request.user as setting_part_starred %} +{% settings_value 'HOMEPAGE_CATEGORY_STARRED' user=request.user as setting_category_starred %} {% settings_value 'HOMEPAGE_PART_LATEST' user=request.user as setting_part_latest %} {% settings_value 'HOMEPAGE_BOM_VALIDATION' user=request.user as setting_bom_validation %} {% to_list setting_part_starred setting_part_latest setting_bom_validation as settings_list_part %} @@ -87,12 +88,22 @@ addHeaderTitle('{% trans "Parts" %}'); addHeaderAction('starred-parts', '{% trans "Subscribed Parts" %}', 'fa-bell'); loadSimplePartTable("#table-starred-parts", "{% url 'api-part-list' %}", { params: { - "starred": true, + starred: true, }, name: 'starred_parts', }); {% endif %} +{% if setting_category_starred %} +addHeaderAction('starred-categories', '{% trans "Subscribed Categories" %}', 'fa-bell'); +loadPartCategoryTable($('#table-starred-categories'), { + params: { + starred: true, + }, + name: 'starred_categories' +}); +{% endif %} + {% if setting_part_latest %} addHeaderAction('latest-parts', '{% trans "Latest Parts" %}', 'fa-newspaper'); loadSimplePartTable("#table-latest-parts", "{% url 'api-part-list' %}", { diff --git a/InvenTree/templates/InvenTree/settings/user_homepage.html b/InvenTree/templates/InvenTree/settings/user_homepage.html index 8219187044..54e3bdcefd 100644 --- a/InvenTree/templates/InvenTree/settings/user_homepage.html +++ b/InvenTree/templates/InvenTree/settings/user_homepage.html @@ -15,6 +15,7 @@ <table class='table table-striped table-condensed'> <tbody> {% include "InvenTree/settings/setting.html" with key="HOMEPAGE_PART_STARRED" icon='fa-bell' user_setting=True %} + {% include "InvenTree/settings/setting.html" with key="HOMEPAGE_CATEGORY_STARRED" icon='fa-bell' user_setting=True %} {% include "InvenTree/settings/setting.html" with key="HOMEPAGE_PART_LATEST" icon='fa-history' user_setting=True %} {% include "InvenTree/settings/setting.html" with key="PART_RECENT_COUNT" icon="fa-clock" user_setting=True %} {% include "InvenTree/settings/setting.html" with key="HOMEPAGE_BOM_VALIDATION" user_setting=True %} diff --git a/InvenTree/templates/js/dynamic/inventree.js b/InvenTree/templates/js/dynamic/inventree.js index 0172e47706..1774ba6f3d 100644 --- a/InvenTree/templates/js/dynamic/inventree.js +++ b/InvenTree/templates/js/dynamic/inventree.js @@ -169,7 +169,12 @@ function inventreeDocReady() { html += '</span>'; if (user_settings.SEARCH_SHOW_STOCK_LEVELS) { - html += partStockLabel(item.data); + html += partStockLabel( + item.data, + { + classes: 'badge-right', + } + ); } html += '</a>'; diff --git a/InvenTree/templates/js/translated/part.js b/InvenTree/templates/js/translated/part.js index adc10566d7..b87e90dcc8 100644 --- a/InvenTree/templates/js/translated/part.js +++ b/InvenTree/templates/js/translated/part.js @@ -420,12 +420,12 @@ function toggleStar(options) { } -function partStockLabel(part) { +function partStockLabel(part, options={}) { if (part.in_stock) { - return `<span class='badge rounded-pill bg-success'>{% trans "Stock" %}: ${part.in_stock}</span>`; + return `<span class='badge rounded-pill bg-success ${options.classes}'>{% trans "Stock" %}: ${part.in_stock}</span>`; } else { - return `<span class='badge rounded-pill bg-danger'>{% trans "No Stock" %}</span>`; + return `<span class='badge rounded-pill bg-danger ${options.classes}'>{% trans "No Stock" %}</span>`; } }