From 8f1af0f5f98ac5a3110905c9b85706781e4fe030 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Sun, 23 Aug 2020 09:07:15 +1000 Subject: [PATCH] Add "enabled" field to Label class - Only list labels which are enabled - Allows labels to be hidden / disabled without being deleted --- InvenTree/label/admin.py | 2 +- .../migrations/0002_stockitemlabel_enabled.py | 18 ++++++++++++++++++ InvenTree/label/models.py | 6 ++++++ InvenTree/stock/views.py | 3 ++- 4 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 InvenTree/label/migrations/0002_stockitemlabel_enabled.py diff --git a/InvenTree/label/admin.py b/InvenTree/label/admin.py index bc03e122b6..71399efabb 100644 --- a/InvenTree/label/admin.py +++ b/InvenTree/label/admin.py @@ -8,7 +8,7 @@ from .models import StockItemLabel class StockItemLabelAdmin(admin.ModelAdmin): - list_display = ('name', 'description', 'label') + list_display = ('name', 'description', 'label', 'filters', 'enabled') admin.site.register(StockItemLabel, StockItemLabelAdmin) diff --git a/InvenTree/label/migrations/0002_stockitemlabel_enabled.py b/InvenTree/label/migrations/0002_stockitemlabel_enabled.py new file mode 100644 index 0000000000..684299e184 --- /dev/null +++ b/InvenTree/label/migrations/0002_stockitemlabel_enabled.py @@ -0,0 +1,18 @@ +# Generated by Django 3.0.7 on 2020-08-22 23:04 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('label', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='stockitemlabel', + name='enabled', + field=models.BooleanField(default=True, help_text='Label template is enabled', verbose_name='Enabled'), + ), + ] diff --git a/InvenTree/label/models.py b/InvenTree/label/models.py index 7d481327a9..49b07572a8 100644 --- a/InvenTree/label/models.py +++ b/InvenTree/label/models.py @@ -70,6 +70,12 @@ class LabelTemplate(models.Model): validators=[validateFilterString] ) + enabled = models.BooleanField( + default=True, + help_text=_('Label template is enabled'), + verbose_name=_('Enabled') + ) + def get_record_data(self, items): """ Return a list of dict objects, one for each item. diff --git a/InvenTree/stock/views.py b/InvenTree/stock/views.py index 1c9b78a3f0..faad9db324 100644 --- a/InvenTree/stock/views.py +++ b/InvenTree/stock/views.py @@ -310,7 +310,8 @@ class StockItemSelectLabels(AjaxView): labels = [] - for label in StockItemLabel.objects.all(): + # Construct a list of StockItemLabel objects which are enabled, and the filters match the selected StockItem + for label in StockItemLabel.objects.filter(enabled=True): if label.matches_stock_item(item): labels.append(label)