From e21a5e62b8fa49e99e11226152bed393f89abba9 Mon Sep 17 00:00:00 2001 From: Oliver Date: Thu, 1 Jun 2023 07:20:11 +1000 Subject: [PATCH] Parameter types (#4935) * Add fields to PartParameterTemplateModel - checkbox: Is the field a 'checkbox' - choices: List of valid options * Update javascript * Adds unit test for PartParameterTemplate - Checkbox cannot have units - Checkbox cannot have choices - Choices must be unique * Improve API filtering - Add "has_choices" filter - Add "has_units" filter * Prune dead code * Update js functions for creating / editing parameters * Update part parameter form - Rebuild the "data" field based on the selected template - Supports "string" / "boolean" / "select" * Adjust data input based on parameter type - Choice displays available options - Checkbox displays boolean switch - Otherwise displays text input - Adds more unit testing - Updates to forms.js for improved functionality * Calculate numeric value for boolean parameters * Update docs * Bump API version --- InvenTree/InvenTree/api_version.py | 5 +- InvenTree/part/api.py | 58 ++++-- .../migrations/0112_auto_20230531_1205.py | 23 +++ InvenTree/part/models.py | 79 ++++++- InvenTree/part/serializers.py | 2 + InvenTree/part/templates/part/detail.html | 38 +--- InvenTree/part/test_param.py | 62 +++++- .../InvenTree/settings/settings_staff_js.html | 6 +- InvenTree/templates/js/translated/forms.js | 46 ++++- InvenTree/templates/js/translated/helpers.js | 39 +++- InvenTree/templates/js/translated/modals.js | 30 +-- InvenTree/templates/js/translated/part.js | 192 +++++++++++++++++- .../templates/js/translated/table_filters.js | 23 ++- .../images/part/parameter_template_edit.png | Bin 0 -> 82423 bytes .../images/part/part_parameters_example.png | Bin 19496 -> 85614 bytes docs/docs/part/parameter.md | 28 ++- 16 files changed, 519 insertions(+), 112 deletions(-) create mode 100644 InvenTree/part/migrations/0112_auto_20230531_1205.py create mode 100644 docs/docs/assets/images/part/parameter_template_edit.png diff --git a/InvenTree/InvenTree/api_version.py b/InvenTree/InvenTree/api_version.py index b112c93fa9..6fecce5ace 100644 --- a/InvenTree/InvenTree/api_version.py +++ b/InvenTree/InvenTree/api_version.py @@ -2,11 +2,14 @@ # InvenTree API version -INVENTREE_API_VERSION = 117 +INVENTREE_API_VERSION = 118 """ Increment this API version number whenever there is a significant change to the API that any clients need to know about +v118 -> 2023-06-01 : https://github.com/inventree/InvenTree/pull/4935 + - Adds extra fields for the PartParameterTemplate model + v117 -> 2023-05-22 : https://github.com/inventree/InvenTree/pull/4854 - Part.units model now supports physical units (e.g. "kg", "m", "mm", etc) - Replaces SupplierPart "pack_size" field with "pack_quantity" diff --git a/InvenTree/part/api.py b/InvenTree/part/api.py index b9a5b4575c..269666e4c0 100644 --- a/InvenTree/part/api.py +++ b/InvenTree/part/api.py @@ -1349,8 +1349,35 @@ class PartParameterTemplateFilter(rest_filters.FilterSet): # Simple filter fields fields = [ 'units', + 'checkbox', ] + has_choices = rest_filters.BooleanFilter( + method='filter_has_choices', + label='Has Choice', + ) + + def filter_has_choices(self, queryset, name, value): + """Filter queryset to include only PartParameterTemplates with choices.""" + + if str2bool(value): + return queryset.exclude(Q(choices=None) | Q(choices='')) + else: + return queryset.filter(Q(choices=None) | Q(choices='')) + + has_units = rest_filters.BooleanFilter( + method='filter_has_units', + label='Has Units', + ) + + def filter_has_units(self, queryset, name, value): + """Filter queryset to include only PartParameterTemplates with units.""" + + if str2bool(value): + return queryset.exclude(Q(units=None) | Q(units='')) + else: + return queryset.filter(Q(units=None) | Q(units='')) + class PartParameterTemplateList(ListCreateAPI): """API endpoint for accessing a list of PartParameterTemplate objects. @@ -1377,6 +1404,7 @@ class PartParameterTemplateList(ListCreateAPI): ordering_fields = [ 'name', 'units', + 'checkbox', ] def filter_queryset(self, queryset): @@ -1580,45 +1608,33 @@ class BomFilter(rest_filters.FilterSet): def filter_available_stock(self, queryset, name, value): """Filter the queryset based on whether each line item has any available stock""" - value = str2bool(value) - - if value: - queryset = queryset.filter(available_stock__gt=0) + if str2bool(value): + return queryset.filter(available_stock__gt=0) else: - queryset = queryset.filter(available_stock=0) - - return queryset + return queryset.filter(available_stock=0) on_order = rest_filters.BooleanFilter(label="On order", method="filter_on_order") def filter_on_order(self, queryset, name, value): """Filter the queryset based on whether each line item has any stock on order""" - value = str2bool(value) - - if value: - queryset = queryset.filter(on_order__gt=0) + if str2bool(value): + return queryset.filter(on_order__gt=0) else: - queryset = queryset.filter(on_order=0) - - return queryset + return queryset.filter(on_order=0) has_pricing = rest_filters.BooleanFilter(label="Has Pricing", method="filter_has_pricing") def filter_has_pricing(self, queryset, name, value): """Filter the queryset based on whether pricing information is available for the sub_part""" - value = str2bool(value) - q_a = Q(sub_part__pricing_data=None) q_b = Q(sub_part__pricing_data__overall_min=None, sub_part__pricing_data__overall_max=None) - if value: - queryset = queryset.exclude(q_a | q_b) + if str2bool(value): + return queryset.exclude(q_a | q_b) else: - queryset = queryset.filter(q_a | q_b) - - return queryset + return queryset.filter(q_a | q_b) class BomMixin: diff --git a/InvenTree/part/migrations/0112_auto_20230531_1205.py b/InvenTree/part/migrations/0112_auto_20230531_1205.py new file mode 100644 index 0000000000..612761a358 --- /dev/null +++ b/InvenTree/part/migrations/0112_auto_20230531_1205.py @@ -0,0 +1,23 @@ +# Generated by Django 3.2.19 on 2023-05-31 12:05 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('part', '0111_auto_20230521_1350'), + ] + + operations = [ + migrations.AddField( + model_name='partparametertemplate', + name='checkbox', + field=models.BooleanField(default=False, help_text='Is this parameter a checkbox?', verbose_name='Checkbox'), + ), + migrations.AddField( + model_name='partparametertemplate', + name='choices', + field=models.CharField(blank=True, help_text='Valid choices for this parameter (comma-separated)', max_length=5000, verbose_name='Choices'), + ), + ] diff --git a/InvenTree/part/models.py b/InvenTree/part/models.py index 8e8b7569ef..8e925166bd 100644 --- a/InvenTree/part/models.py +++ b/InvenTree/part/models.py @@ -46,7 +46,8 @@ from common.settings import currency_code_default from company.models import SupplierPart from InvenTree import helpers, validators from InvenTree.fields import InvenTreeURLField -from InvenTree.helpers import decimal2money, decimal2string, normalize +from InvenTree.helpers import (decimal2money, decimal2string, normalize, + str2bool) from InvenTree.models import (DataImportMixin, InvenTreeAttachment, InvenTreeBarcodeMixin, InvenTreeNotesMixin, InvenTreeTree, MetadataMixin) @@ -3307,6 +3308,8 @@ class PartParameterTemplate(MetadataMixin, models.Model): name: The name (key) of the Parameter [string] units: The units of the Parameter [string] description: Description of the parameter [string] + checkbox: Boolean flag to indicate whether the parameter is a checkbox [bool] + choices: List of valid choices for the parameter [string] """ @staticmethod @@ -3321,6 +3324,47 @@ class PartParameterTemplate(MetadataMixin, models.Model): s += " ({units})".format(units=self.units) return s + def clean(self): + """Custom cleaning step for this model: + + - A 'checkbox' field cannot have 'choices' set + - A 'checkbox' field cannot have 'units' set + """ + + super().clean() + + # Check that checkbox parameters do not have units or choices + if self.checkbox: + if self.units: + raise ValidationError({ + 'units': _('Checkbox parameters cannot have units') + }) + + if self.choices: + raise ValidationError({ + 'choices': _('Checkbox parameters cannot have choices') + }) + + # Check that 'choices' are in fact valid + self.choices = self.choices.strip() + + if self.choices: + choice_set = set() + + for choice in self.choices.split(','): + choice = choice.strip() + + # Ignore empty choices + if not choice: + continue + + if choice in choice_set: + raise ValidationError({ + 'choices': _('Choices must be unique') + }) + + choice_set.add(choice) + def validate_unique(self, exclude=None): """Ensure that PartParameterTemplates cannot be created with the same name. @@ -3337,6 +3381,14 @@ class PartParameterTemplate(MetadataMixin, models.Model): except PartParameterTemplate.DoesNotExist: pass + def get_choices(self): + """Return a list of choices for this parameter template""" + + if not self.choices: + return [] + + return [x.strip() for x in self.choices.split(',') if x.strip()] + name = models.CharField( max_length=100, verbose_name=_('Name'), @@ -3360,6 +3412,19 @@ class PartParameterTemplate(MetadataMixin, models.Model): blank=True, ) + checkbox = models.BooleanField( + default=False, + verbose_name=_('Checkbox'), + help_text=_('Is this parameter a checkbox?') + ) + + choices = models.CharField( + max_length=5000, + verbose_name=_('Choices'), + help_text=_('Valid choices for this parameter (comma-separated)'), + blank=True, + ) + @receiver(post_save, sender=PartParameterTemplate, dispatch_uid='post_save_part_parameter_template') def post_save_part_parameter_template(sender, instance, created, **kwargs): @@ -3412,6 +3477,11 @@ class PartParameter(models.Model): # Validate the PartParameter before saving self.calculate_numeric_value() + # Convert 'boolean' values to 'True' / 'False' + if self.template.checkbox: + self.data = str2bool(self.data) + self.data_numeric = 1 if self.data else 0 + super().save(*args, **kwargs) def clean(self): @@ -3428,6 +3498,13 @@ class PartParameter(models.Model): 'data': e.message }) + # Validate the parameter data against the template choices + if choices := self.template.get_choices(): + if self.data not in choices: + raise ValidationError({ + 'data': _('Invalid choice for parameter value') + }) + def calculate_numeric_value(self): """Calculate a numeric value for the parameter data. diff --git a/InvenTree/part/serializers.py b/InvenTree/part/serializers.py index 98f97906c4..97a1de33a0 100644 --- a/InvenTree/part/serializers.py +++ b/InvenTree/part/serializers.py @@ -216,6 +216,8 @@ class PartParameterTemplateSerializer(InvenTree.serializers.InvenTreeModelSerial 'name', 'units', 'description', + 'checkbox', + 'choices', ] diff --git a/InvenTree/part/templates/part/detail.html b/InvenTree/part/templates/part/detail.html index 562641d01a..447c83ee01 100644 --- a/InvenTree/part/templates/part/detail.html +++ b/InvenTree/part/templates/part/detail.html @@ -846,47 +846,13 @@ } ); - $('#param-table').inventreeTable({ - }); - {% if roles.part.add %} $('#param-create').click(function() { - - constructForm('{% url "api-part-parameter-list" %}', { - method: 'POST', - fields: { - part: { - value: {{ part.pk }}, - hidden: true, - }, - template: { - filters: { - ordering: 'name', - }, - }, - data: {}, - }, - title: '{% trans "Add Parameter" %}', - refreshTable: '#parameter-table', + createPartParameter({{ part.pk }}, { + refreshTable: '#parameter-table' }); }); {% endif %} - - $('.param-edit').click(function() { - var button = $(this); - - launchModalForm(button.attr('url'), { - reload: true, - }); - }); - - $('.param-delete').click(function() { - var button = $(this); - - launchModalForm(button.attr('url'), { - reload: true, - }); - }); }); onPanelLoad("part-attachments", function() { diff --git a/InvenTree/part/test_param.py b/InvenTree/part/test_param.py index 88161b221d..91537cbfa3 100644 --- a/InvenTree/part/test_param.py +++ b/InvenTree/part/test_param.py @@ -102,6 +102,29 @@ class ParameterTests(TestCase): 'params' ] + def test_choice_validation(self): + """Test that parameter choices are correctly validated""" + + template = PartParameterTemplate.objects.create( + name='My Template', + description='A template with choices', + choices='red, blue, green' + ) + + pass_values = ['red', 'blue', 'green'] + fail_values = ['rod', 'bleu', 'grene'] + + part = Part.objects.all().first() + + for value in pass_values: + param = PartParameter(part=part, template=template, data=value) + param.full_clean() + + for value in fail_values: + param = PartParameter(part=part, template=template, data=value) + with self.assertRaises(django_exceptions.ValidationError): + param.full_clean() + def test_unit_validation(self): """Test validation of 'units' field for PartParameterTemplate""" @@ -116,7 +139,7 @@ class ParameterTests(TestCase): with self.assertRaises(django_exceptions.ValidationError): tmp.full_clean() - def test_param_validation(self): + def test_param_unit_validation(self): """Test that parameters are correctly validated against template units""" template = PartParameterTemplate.objects.create( @@ -137,7 +160,7 @@ class ParameterTests(TestCase): with self.assertRaises(django_exceptions.ValidationError): param.full_clean() - def test_param_conversion(self): + def test_param_unit_conversion(self): """Test that parameters are correctly converted to template units""" template = PartParameterTemplate.objects.create( @@ -202,6 +225,41 @@ class PartParameterTest(InvenTreeAPITestCase): self.assertEqual(len(response.data), 4) + def test_param_template_validation(self): + """Test that part parameter template validation routines work correctly.""" + + # Checkbox parameter cannot have "units" specified + with self.assertRaises(django_exceptions.ValidationError): + template = PartParameterTemplate( + name='test', + description='My description', + units='mm', + checkbox=True + ) + + template.clean() + + # Checkbox parameter cannot have "choices" specified + with self.assertRaises(django_exceptions.ValidationError): + template = PartParameterTemplate( + name='test', + description='My description', + choices='a,b,c', + checkbox=True + ) + + template.clean() + + # Choices must be 'unique' + with self.assertRaises(django_exceptions.ValidationError): + template = PartParameterTemplate( + name='test', + description='My description', + choices='a,a,b', + ) + + template.clean() + def test_create_param(self): """Test that we can create a param via the API.""" url = reverse('api-part-parameter-list') diff --git a/InvenTree/templates/InvenTree/settings/settings_staff_js.html b/InvenTree/templates/InvenTree/settings/settings_staff_js.html index 98d13c5a38..7bb5d1da82 100644 --- a/InvenTree/templates/InvenTree/settings/settings_staff_js.html +++ b/InvenTree/templates/InvenTree/settings/settings_staff_js.html @@ -309,11 +309,7 @@ onPanelLoad('part-parameters', function() { $("#new-param").click(function() { constructForm('{% url "api-part-parameter-template-list" %}', { - fields: { - name: {}, - units: {}, - description: {}, - }, + fields: partParameterTemplateFields(), method: 'POST', title: '{% trans "Create Part Parameter Template" %}', refreshTable: '#param-table', diff --git a/InvenTree/templates/js/translated/forms.js b/InvenTree/templates/js/translated/forms.js index f273bcfb9f..1380ecb15a 100644 --- a/InvenTree/templates/js/translated/forms.js +++ b/InvenTree/templates/js/translated/forms.js @@ -18,6 +18,7 @@ showApiError, showMessage, showModalSpinner, + toBool, */ /* exported @@ -990,15 +991,17 @@ function updateFieldValue(name, value, field, options) { return; } + if (field.type == null) { + field.type = guessFieldType(el); + } + switch (field.type) { case 'decimal': // Strip trailing zeros el.val(formatDecimal(value)); break; case 'boolean': - if (value == true || value.toString().toLowerCase() == 'true') { - el.prop('checked'); - } + el.prop('checked', toBool(value)); break; case 'related field': // Clear? @@ -1068,6 +1071,34 @@ function validateFormField(name, options) { } +/* + * Introspect the HTML element to guess the field type + */ +function guessFieldType(element) { + + if (!element.exists) { + console.error(`Could not find element '${element}' for guessFieldType`); + return null; + } + + switch (element.attr('type')) { + case 'number': + return 'decimal'; + case 'checkbox': + return 'boolean'; + case 'date': + return 'date'; + case 'datetime': + return 'datetime'; + case 'text': + return 'string'; + default: + // Unknown field type + return null; + } +} + + /* * Extract and field value before sending back to the server * @@ -1088,9 +1119,16 @@ function getFormFieldValue(name, field={}, options={}) { var value = null; + let guessed_type = guessFieldType(el); + + // If field type is not specified, try to guess it + if (field.type == null || guessed_type == 'boolean') { + field.type = guessed_type; + } + switch (field.type) { case 'boolean': - value = el.is(':checked'); + value = toBool(el.prop("checked")); break; case 'date': case 'datetime': diff --git a/InvenTree/templates/js/translated/helpers.js b/InvenTree/templates/js/translated/helpers.js index 621639b702..7d8e4400b0 100644 --- a/InvenTree/templates/js/translated/helpers.js +++ b/InvenTree/templates/js/translated/helpers.js @@ -40,15 +40,42 @@ */ -function yesNoLabel(value, options={}) { - var text = ''; - var color = ''; +/* + * Convert a value (which may be a string) to a boolean value + * + * @param {string} value: Input value + * @returns {boolean} true or false + */ +function toBool(value) { - if (value) { - text = '{% trans "YES" %}'; + if (typeof value == 'string') { + + if (value.length == 0) { + return false; + } + + value = value.toLowerCase(); + + if (['true', 't', 'yes', 'y', '1', 'on', 'ok'].includes(value)) { + return true; + } else { + return false; + } + } else { + return value == true; + } +} + + +function yesNoLabel(value, options={}) { + let text = ''; + let color = ''; + + if (toBool(value)) { + text = options.pass || '{% trans "YES" %}'; color = 'bg-success'; } else { - text = '{% trans "NO" %}'; + text = options.fail || '{% trans "NO" %}'; color = 'bg-warning'; } diff --git a/InvenTree/templates/js/translated/modals.js b/InvenTree/templates/js/translated/modals.js index 1ee77b4f86..c02a0ac252 100644 --- a/InvenTree/templates/js/translated/modals.js +++ b/InvenTree/templates/js/translated/modals.js @@ -874,8 +874,8 @@ function insertActionButton(modal, options) { } } +/* Attach a provided list of buttons */ function attachButtons(modal, buttons) { - /* Attach a provided list of buttons */ for (var i = 0; i < buttons.length; i++) { insertActionButton(modal, buttons[i]); @@ -883,14 +883,14 @@ function attachButtons(modal, buttons) { } +/* Attach a 'callback' function to a given field in the modal form. + * When the value of that field is changed, the callback function is performed. + * + * options: + * - field: The name of the field to attach to + * - action: A function to perform + */ function attachFieldCallback(modal, callback) { - /* Attach a 'callback' function to a given field in the modal form. - * When the value of that field is changed, the callback function is performed. - * - * options: - * - field: The name of the field to attach to - * - action: A function to perform - */ // Find the field input in the form var field = getFieldByName(modal, callback.field); @@ -907,8 +907,8 @@ function attachFieldCallback(modal, callback) { } +/* Attach a provided list of callback functions */ function attachCallbacks(modal, callbacks) { - /* Attach a provided list of callback functions */ for (var i = 0; i < callbacks.length; i++) { attachFieldCallback(modal, callbacks[i]); @@ -916,13 +916,13 @@ function attachCallbacks(modal, callbacks) { } +/* Update a modal form after data are received from the server. + * Manages POST requests until the form is successfully submitted. + * + * The server should respond with a JSON object containing a boolean value 'form_valid' + * Form submission repeats (after user interaction) until 'form_valid' = true + */ function handleModalForm(url, options) { - /* Update a modal form after data are received from the server. - * Manages POST requests until the form is successfully submitted. - * - * The server should respond with a JSON object containing a boolean value 'form_valid' - * Form submission repeats (after user interaction) until 'form_valid' = true - */ var modal = options.modal || '#modal-form'; diff --git a/InvenTree/templates/js/translated/part.js b/InvenTree/templates/js/translated/part.js index 5a709de6db..92ed5ce5e1 100644 --- a/InvenTree/templates/js/translated/part.js +++ b/InvenTree/templates/js/translated/part.js @@ -6,6 +6,7 @@ Chart, constructForm, constructFormBody, + constructInput, convertCurrency, formatCurrency, formatDecimal, @@ -14,6 +15,7 @@ getFormFieldValue, getTableData, global_settings, + guessFieldType, handleFormErrors, handleFormSuccess, imageHoverIcon, @@ -42,6 +44,7 @@ showMessage, showModalSpinner, thumbnailImage, + updateFieldValue, withTitle, wrapButtons, yesNoLabel, @@ -1281,6 +1284,137 @@ function loadSimplePartTable(table, url, options={}) { } +/* + * Construct a set of fields for the PartParameter model. + * Note that the 'data' field changes based on the seleted parameter template + */ +function partParameterFields(options={}) { + + let fields = { + part: { + hidden: true, // Part is set by the parent form + }, + template: { + filters: { + ordering: 'name', + }, + onEdit: function(value, name, field, opts) { + // Callback function when the parameter template is selected. + // We rebuild the 'data' field based on the template selection + + let checkbox = false; + let choices = []; + + if (value) { + // Request the parameter template data + inventreeGet(`{% url "api-part-parameter-template-list" %}${value}/`, {}, { + async: false, + success: function(response) { + if (response.checkbox) { + // Checkbox input + checkbox = true; + } else if (response.choices) { + // Select input + response.choices.split(',').forEach(function(choice) { + choice = choice.trim(); + choices.push({ + value: choice, + display_name: choice, + }); + }); + } + } + }); + } + + // Find the current field element + let el = $(opts.modal).find('#id_data'); + + // Extract the current value from the field + let val = getFormFieldValue('data', {}, opts); + + // Rebuild the field + let parameters = {}; + + if (checkbox) { + parameters.type = 'boolean'; + } else if (choices.length > 0) { + parameters.type = 'choice'; + parameters.choices = choices; + } else { + parameters.type = 'string'; + } + + let existing_field_type = guessFieldType(el); + + // If the field type has changed, we need to replace the field + if (existing_field_type != parameters.type) { + // Construct the new field + let new_field = constructInput('data', parameters, opts); + + if (guessFieldType(el) == 'boolean') { + // Boolean fields are wrapped in a parent element + el.parent().replaceWith(new_field); + } else { + el.replaceWith(new_field); + } + } + + // Update the field parameters in the form options + opts.fields.data.type = parameters.type; + updateFieldValue('data', val, parameters, opts); + } + }, + data: {}, + }; + + if (options.part) { + fields.part.value = options.part; + } + + return fields; +} + + +/* + * Launch a modal form for creating a new PartParameter object + */ +function createPartParameter(part_id, options={}) { + + options.fields = partParameterFields({ + part: part_id, + }); + + options.processBeforeUpload = function(data) { + // Convert data to string + data.data = data.data.toString(); + return data; + } + + options.method = 'POST'; + options.title = '{% trans "Add Parameter" %}'; + + constructForm('{% url "api-part-parameter-list" %}', options); +} + + +/* + * Launch a modal form for editing a PartParameter object + */ +function editPartParameter(param_id, options={}) { + options.fields = partParameterFields(); + options.title = '{% trans "Edit Parameter" %}'; + + options.processBeforeUpload = function(data) { + // Convert data to string + data.data = data.data.toString(); + return data; + } + + constructForm(`{% url "api-part-parameter-list" %}${param_id}/`, options); +} + + function loadPartParameterTable(table, options) { var params = options.params || {}; @@ -1331,6 +1465,15 @@ function loadPartParameterTable(table, options) { switchable: false, sortable: true, formatter: function(value, row) { + let template = row.template_detail; + + if (template.checkbox) { + return yesNoLabel(value, { + pass: '{% trans "True" %}', + fail: '{% trans "False" %}', + }); + } + if (row.data_numeric && row.template_detail.units) { return `${row.data}`; } else { @@ -1368,12 +1511,8 @@ function loadPartParameterTable(table, options) { $(table).find('.button-parameter-edit').click(function() { var pk = $(this).attr('pk'); - constructForm(`{% url "api-part-parameter-list" %}${pk}/`, { - fields: { - data: {}, - }, - title: '{% trans "Edit Parameter" %}', - refreshTable: table, + editPartParameter(pk, { + refreshTable: table }); }); @@ -1391,6 +1530,24 @@ function loadPartParameterTable(table, options) { } +/* + * Return a list of fields for a part parameter template + */ +function partParameterTemplateFields() { + return { + name: {}, + description: {}, + units: { + icon: 'fa-ruler', + }, + choices: { + icon: 'fa-th-list', + }, + checkbox: {}, + }; +} + + /* * Construct a table showing a list of part parameter templates */ @@ -1410,6 +1567,8 @@ function loadPartParameterTemplateTable(table, options={}) { url: '{% url "api-part-parameter-template-list" %}', original: params, queryParams: filters, + sortable: true, + sidePagination: 'server', name: 'part-parameter-templates', formatNoMatches: function() { return '{% trans "No part parameter templates found" %}'; @@ -1438,6 +1597,21 @@ function loadPartParameterTemplateTable(table, options={}) { sortable: false, switchable: true, }, + { + field: 'checkbox', + title: '{% trans "Checkbox" %}', + sortable: false, + switchable: true, + formatter: function(value) { + return yesNoLabel(value); + } + }, + { + field: 'choices', + title: '{% trans "Choices" %}', + sortable: false, + switchable: true, + }, { formatter: function(value, row, index, field) { @@ -1459,11 +1633,7 @@ function loadPartParameterTemplateTable(table, options={}) { constructForm( `/api/part/parameter/template/${pk}/`, { - fields: { - name: {}, - units: {}, - description: {}, - }, + fields: partParameterTemplateFields(), title: '{% trans "Edit Part Parameter Template" %}', refreshTable: table, } diff --git a/InvenTree/templates/js/translated/table_filters.js b/InvenTree/templates/js/translated/table_filters.js index c9a7473ccf..2ff3569bdf 100644 --- a/InvenTree/templates/js/translated/table_filters.js +++ b/InvenTree/templates/js/translated/table_filters.js @@ -709,9 +709,28 @@ function getCompanyFilters() { } +// Return a dictionary of filters for the "PartParameter" table +function getPartParameterFilters() { + return {}; +} + + // Return a dictionary of filters for the "part parameter template" table function getPartParameterTemplateFilters() { - return {}; + return { + checkbox: { + type: 'bool', + title: '{% trans "Checkbox" %}', + }, + has_choices: { + type: 'bool', + title: '{% trans "Has Choices" %}', + }, + has_units: { + type: 'bool', + title: '{% trans "Has Units" %}', + } + }; } @@ -747,6 +766,8 @@ function getAvailableTableFilters(tableKey) { return getStockLocationFilters(); case 'parameters': return getParametricPartTableFilters(); + case 'part-parameters': + return getPartParameterFilters(); case 'part-parameter-templates': return getPartParameterTemplateFilters(); case 'parts': diff --git a/docs/docs/assets/images/part/parameter_template_edit.png b/docs/docs/assets/images/part/parameter_template_edit.png new file mode 100644 index 0000000000000000000000000000000000000000..c91cca4c1e092455cf5a9001b2b0f3ad5a1ddb5a GIT binary patch literal 82423 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 F{|mYF#ryyO literal 0 HcmV?d00001 diff --git a/docs/docs/assets/images/part/part_parameters_example.png b/docs/docs/assets/images/part/part_parameters_example.png index 933278b852f74affcd177165de8e8341d84a06cb..b50aa2834da1a54075708f58ea8539d258ac10f5 100644 GIT binary patch literal 85614 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

B#L6B#z{kz%u0-Or!%x-xaftPBq8tdV8; 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 I^A5lL2c_@&%K!iX literal 19496 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 V&B8Y`#aP8J=@^{P{oN|)e*vgTHHH8H diff --git a/docs/docs/part/parameter.md b/docs/docs/part/parameter.md index bffa321843..2bb87c8273 100644 --- a/docs/docs/part/parameter.md +++ b/docs/docs/part/parameter.md @@ -10,25 +10,41 @@ Part parameters are located in the "Parameters" tab, on each part detail page. There is no limit for the number of part parameters and they are fully customizable through the use of [parameters templates](#parameter-templates). Here is an example of parameters for a capacitor: + {% with id="part_parameters_example", url="part/part_parameters_example.png", description="Part Parameters Example List" %} {% include 'img.html' %} {% endwith %} ## Parameter Templates -Parameter templates are used to define the different types of parameters which are available for use. These are edited via the [settings interface](../settings/global.md). +Parameter templates are used to define the different types of parameters which are available for use. The following attributes are defined for a parameter template: + +| Attribute | Description | +| --- | --- | +| Name | The name of the parameter template (*must be unique*) | +| Description | Optional description for the template | +| Units | Optional units field (*must be a valid [physical unit](#parameter-units)*) | +| Choices | A comma-separated list of valid choices for parameter values linked to this template. | +| Checkbox | If set, parameters linked to this template can only be assigned values *true* or *false* | ### Create Template +Parameter templates are created and edited via the [settings interface](../settings/global.md). + To create a template: - Navigate to the "Settings" page -- Click on the "Parts" tab -- Scroll down to the "Part Parameter Templates" section +- Click on the "Part Parameters" tab - Click on the "New Parameter" button - Fill out the `Create Part Parameter Template` form: `Name` (required) and `Units` (optional) fields - Click on the "Submit" button. +An existing template can be edited by clicking on the "Edit" button associated with that template: + +{% with id="part_parameter_template", url="part/parameter_template_edit.png", description="Edit Parameter Template" %} +{% include 'img.html' %} +{% endwith %} + ### Create Parameter After [creating a template](#create-template) or using the existing templates, you can add parameters to any part. @@ -51,12 +67,6 @@ To access a category's parametric table, click on the "Parameters" tab within th {% include 'img.html' %} {% endwith %} -Below is an example of capacitor parametric table filtered with `Package Type = 0402`: - -{% with id="parametric_table_example", url="part/parametric_table_example.png", description="Parametric Table Example" %} -{% include 'img.html' %} -{% endwith %} - ### Sorting by Parameter Value The parametric parts table allows the returned parts to be sorted by particular parameter values. Click on the header of a particular parameter column to sort results by that parameter: