From 9e77b9fc5677dd7d50607fb6a210337bc1b3f322 Mon Sep 17 00:00:00 2001 From: Oliver Date: Fri, 19 May 2023 13:24:55 +1000 Subject: [PATCH] Parameter filtering (#4823) * adds new field 'parameter type' to PartParameterTemplate model * Move part parameter settings onto their own page * Add "choices" and "regex" template types * Adds validation for PartParameter based on template type * javascript cleanup * Fix for serializers.py * Add unit testing for parameter validation * Add filters * Rename "type" field to "param_type" - Should have seen that one coming * Coerce 'boolean' value to True/False * table update * js linting * Add requirement for "pint" package * Add validator for physical unit types - Revert a previous migration which adds "parameter type" and "validator" fields - These will get implemented later, too much scope creep for this PR - Add unit test for validation of "units" field * Update PartParameter model - Add data_numeric field (will be used later) - Add MinLengthValidator to data field * Run validation for part parameter data - Ensure it can be converted to internal units * Update admin interface to display partparameter values inline for a part * Adds validation of part parameter data value - Also converts to base units, and stores as "numeric" value - Display "numeric" value in tables - Create new file conversion.py for data conversion * Update unit tests and fix some bugs * Update docstring * Add units to parameter columns in parameteric part table * Allow part list to be ordered by a particular parameter value - Annotate queryset with new "order_by_parameter" method - Skeleton method for future work * Bump API version * Adds unit testing for sorting parts by parameter value * Update historical data migrations - Turns out RunPython.noop is a thing? * Cache the unit registry - Creating the unit registry takes a significant amount of time - Construct when first called, and then cache for subsequent hits - Massive improvement in performance * Throw error on empty values when converting between units * Data migration for converting existing part parameter values * Handle more error cases * Show parameteric table on top-level part page too * Unit test for data migration * Update credits in docs * Improved error checking * WIP docs updates * Fix parameteric table filtering * remove zoom property * Fix for import path * Update parameter docs * Run background task to rebuild parameters when template changes * Make "data_numeric" field nullable - Defaulting to zero is not appropriate, as the actual value may be zero - Sorting still seems to work just fine * Fixes for unit test * More unit test fixes * Further fixes for unit tests --------- Co-authored-by: Matthias Mair --- InvenTree/InvenTree/api_version.py | 5 +- InvenTree/InvenTree/conversion.py | 81 ++++++ InvenTree/InvenTree/static/css/inventree.css | 1 - InvenTree/InvenTree/tasks.py | 1 + InvenTree/InvenTree/validators.py | 22 ++ .../migrations/0013_auto_20200425_0507.py | 6 +- .../build/migrations/0018_build_reference.py | 9 +- .../migrations/0029_auto_20210601_1525.py | 10 +- .../migrations/0032_auto_20211014_0632.py | 8 +- .../migrations/0036_auto_20220707_1101.py | 7 +- .../migrations/0052_auto_20211014_0631.py | 12 +- .../migrations/0058_auto_20211126_1210.py | 10 +- .../migrations/0074_auto_20220709_0108.py | 9 +- .../migrations/0079_auto_20230304_0904.py | 9 +- InvenTree/part/admin.py | 8 +- InvenTree/part/api.py | 58 +++- InvenTree/part/filters.py | 77 +++++- .../migrations/0039_auto_20200515_1127.py | 6 +- .../migrations/0083_auto_20220731_2357.py | 8 +- .../migrations/0102_auto_20230314_0112.py | 7 +- .../migrations/0108_auto_20230516_1334.py | 30 ++ .../migrations/0109_auto_20230517_1048.py | 147 ++++++++++ InvenTree/part/models.py | 101 ++++++- InvenTree/part/serializers.py | 3 +- InvenTree/part/tasks.py | 28 ++ InvenTree/part/templates/part/category.html | 20 +- .../part/templates/part/category_sidebar.html | 2 +- InvenTree/part/test_api.py | 85 ------ InvenTree/part/test_migrations.py | 72 +++++ InvenTree/part/test_param.py | 256 +++++++++++++++++- InvenTree/plugin/registry.py | 2 +- .../migrations/0061_auto_20210511_0911.py | 8 +- .../migrations/0064_auto_20210621_1724.py | 8 +- .../migrations/0069_auto_20211109_2347.py | 9 +- .../migrations/0071_auto_20211205_1733.py | 6 +- .../migrations/0081_auto_20220801_0044.py | 9 +- .../migrations/0094_auto_20230220_0025.py | 5 +- .../migrations/0096_auto_20230330_1121.py | 7 +- .../templates/InvenTree/settings/part.html | 15 - .../InvenTree/settings/part_parameters.html | 25 ++ .../InvenTree/settings/settings.html | 1 + .../InvenTree/settings/settings_staff_js.html | 87 +----- .../templates/InvenTree/settings/sidebar.html | 2 + InvenTree/templates/js/translated/part.js | 152 ++++++++++- .../templates/js/translated/status_codes.js | 1 - .../templates/js/translated/table_filters.js | 17 ++ .../assets/images/part/part_invalid_units.png | Bin 0 -> 53968 bytes .../assets/images/part/part_sort_by_param.png | Bin 0 -> 189995 bytes .../assets/images/part/part_sorting_units.png | Bin 0 -> 90876 bytes docs/docs/credits.md | 1 + docs/docs/part/parameter.md | 59 +++- requirements.in | 1 + requirements.txt | 2 + 53 files changed, 1148 insertions(+), 367 deletions(-) create mode 100644 InvenTree/InvenTree/conversion.py create mode 100644 InvenTree/part/migrations/0108_auto_20230516_1334.py create mode 100644 InvenTree/part/migrations/0109_auto_20230517_1048.py create mode 100644 InvenTree/templates/InvenTree/settings/part_parameters.html create mode 100644 docs/docs/assets/images/part/part_invalid_units.png create mode 100644 docs/docs/assets/images/part/part_sort_by_param.png create mode 100644 docs/docs/assets/images/part/part_sorting_units.png diff --git a/InvenTree/InvenTree/api_version.py b/InvenTree/InvenTree/api_version.py index 8e8855a837..9e22618957 100644 --- a/InvenTree/InvenTree/api_version.py +++ b/InvenTree/InvenTree/api_version.py @@ -2,11 +2,14 @@ # InvenTree API version -INVENTREE_API_VERSION = 115 +INVENTREE_API_VERSION = 116 """ Increment this API version number whenever there is a significant change to the API that any clients need to know about +v116 -> 2023-05-18 : https://github.com/inventree/InvenTree/pull/4823 + - Updates to part parameter implementation, to use physical units + v115 - > 2023-05-18 : https://github.com/inventree/InvenTree/pull/4846 - Adds ability to partially scrap a build output diff --git a/InvenTree/InvenTree/conversion.py b/InvenTree/InvenTree/conversion.py new file mode 100644 index 0000000000..29d9816950 --- /dev/null +++ b/InvenTree/InvenTree/conversion.py @@ -0,0 +1,81 @@ +"""Helper functions for converting between units.""" + +from django.core.exceptions import ValidationError +from django.utils.translation import gettext_lazy as _ + +import pint + +_unit_registry = None + + +def get_unit_registry(): + """Return a custom instance of the Pint UnitRegistry.""" + + global _unit_registry + + # Cache the unit registry for speedier access + if _unit_registry is None: + _unit_registry = pint.UnitRegistry() + + # TODO: Allow for custom units to be defined in the database + + return _unit_registry + + +def convert_physical_value(value: str, unit: str = None): + """Validate that the provided value is a valid physical quantity. + + Arguments: + value: Value to validate (str) + unit: Optional unit to convert to, and validate against + + Raises: + ValidationError: If the value is invalid + + Returns: + The converted quantity, in the specified units + """ + + # Ensure that the value is a string + value = str(value).strip() + + # Error on blank values + if not value: + raise ValidationError(_('No value provided')) + + ureg = get_unit_registry() + error = '' + + try: + # Convert to a quantity + val = ureg.Quantity(value) + + if unit: + + if val.units == ureg.dimensionless: + # If the provided value is dimensionless, assume that the unit is correct + val = ureg.Quantity(value, unit) + else: + # Convert to the provided unit (may raise an exception) + val = val.to(unit) + + # At this point we *should* have a valid pint value + # To double check, look at the maginitude + float(val.magnitude) + except ValueError: + error = _('Provided value is not a valid number') + except pint.errors.UndefinedUnitError: + error = _('Provided value has an invalid unit') + except pint.errors.DefinitionSyntaxError: + error = _('Provided value has an invalid unit') + except pint.errors.DimensionalityError: + error = _('Provided value could not be converted to the specified unit') + + if error: + if unit: + error += f' ({unit})' + + raise ValidationError(error) + + # Return the converted value + return val diff --git a/InvenTree/InvenTree/static/css/inventree.css b/InvenTree/InvenTree/static/css/inventree.css index 5cca13f86b..cac997df90 100644 --- a/InvenTree/InvenTree/static/css/inventree.css +++ b/InvenTree/InvenTree/static/css/inventree.css @@ -319,7 +319,6 @@ main { .filter-input { display: inline-block; *display: inline; - zoom: 1; } .filter-tag:hover { diff --git a/InvenTree/InvenTree/tasks.py b/InvenTree/InvenTree/tasks.py index 2677a3da5c..bfa5a6a38c 100644 --- a/InvenTree/InvenTree/tasks.py +++ b/InvenTree/InvenTree/tasks.py @@ -167,6 +167,7 @@ def offload_task(taskname, *args, force_async=False, force_sync=False, **kwargs) If workers are not running or force_sync flag is set then the task is ran synchronously. """ + try: import importlib diff --git a/InvenTree/InvenTree/validators.py b/InvenTree/InvenTree/validators.py index 0b8c263be2..1d38891da4 100644 --- a/InvenTree/InvenTree/validators.py +++ b/InvenTree/InvenTree/validators.py @@ -8,9 +8,31 @@ from django.core import validators from django.core.exceptions import FieldDoesNotExist, ValidationError from django.utils.translation import gettext_lazy as _ +import pint from jinja2 import Template from moneyed import CURRENCIES +import InvenTree.conversion + + +def validate_physical_units(unit): + """Ensure that a given unit is a valid physical unit.""" + + unit = unit.strip() + + # Ignore blank units + if not unit: + return + + ureg = InvenTree.conversion.get_unit_registry() + + try: + ureg(unit) + except AttributeError: + raise ValidationError(_('Invalid physical unit')) + except pint.errors.UndefinedUnitError: + raise ValidationError(_('Invalid physical unit')) + def validate_currency_code(code): """Check that a given code is a valid currency code.""" diff --git a/InvenTree/build/migrations/0013_auto_20200425_0507.py b/InvenTree/build/migrations/0013_auto_20200425_0507.py index 988bdcc9b8..4468b9aca5 100644 --- a/InvenTree/build/migrations/0013_auto_20200425_0507.py +++ b/InvenTree/build/migrations/0013_auto_20200425_0507.py @@ -11,10 +11,6 @@ def update_tree(apps, schema_editor): Build.objects.rebuild() -def nupdate_tree(apps, schema_editor): # pragma: no cover - pass - - class Migration(migrations.Migration): atomic = False @@ -53,5 +49,5 @@ class Migration(migrations.Migration): field=models.PositiveIntegerField(db_index=True, default=0, editable=False), preserve_default=False, ), - migrations.RunPython(update_tree, reverse_code=nupdate_tree), + migrations.RunPython(update_tree, reverse_code=migrations.RunPython.noop), ] diff --git a/InvenTree/build/migrations/0018_build_reference.py b/InvenTree/build/migrations/0018_build_reference.py index 5a6e489496..8fd790b753 100644 --- a/InvenTree/build/migrations/0018_build_reference.py +++ b/InvenTree/build/migrations/0018_build_reference.py @@ -23,13 +23,6 @@ def add_default_reference(apps, schema_editor): print(f"\nUpdated build reference for {count} existing BuildOrder objects") -def reverse_default_reference(apps, schema_editor): # pragma: no cover - """ - Do nothing! But we need to have a function here so the whole process is reversible. - """ - pass - - class Migration(migrations.Migration): atomic = False @@ -49,7 +42,7 @@ class Migration(migrations.Migration): # Auto-populate the new reference field for any existing build order objects migrations.RunPython( add_default_reference, - reverse_code=reverse_default_reference + reverse_code=migrations.RunPython.noop ), # Now that each build has a non-empty, unique reference, update the field requirements! diff --git a/InvenTree/build/migrations/0029_auto_20210601_1525.py b/InvenTree/build/migrations/0029_auto_20210601_1525.py index 5470416dcd..68b1f098e1 100644 --- a/InvenTree/build/migrations/0029_auto_20210601_1525.py +++ b/InvenTree/build/migrations/0029_auto_20210601_1525.py @@ -51,14 +51,6 @@ def assign_bom_items(apps, schema_editor): logger.info(f"Assigned BomItem for {count_valid}/{count_total} entries") -def unassign_bom_items(apps, schema_editor): # pragma: no cover - """ - Reverse migration does not do anything. - Function here to preserve ability to reverse migration - """ - pass - - class Migration(migrations.Migration): dependencies = [ @@ -66,5 +58,5 @@ class Migration(migrations.Migration): ] operations = [ - migrations.RunPython(assign_bom_items, reverse_code=unassign_bom_items), + migrations.RunPython(assign_bom_items, reverse_code=migrations.RunPython.noop), ] diff --git a/InvenTree/build/migrations/0032_auto_20211014_0632.py b/InvenTree/build/migrations/0032_auto_20211014_0632.py index 1ae56af4e6..52ce1d5f7d 100644 --- a/InvenTree/build/migrations/0032_auto_20211014_0632.py +++ b/InvenTree/build/migrations/0032_auto_20211014_0632.py @@ -31,12 +31,6 @@ def build_refs(apps, schema_editor): build.reference_int = ref build.save() -def unbuild_refs(apps, schema_editor): # pragma: no cover - """ - Provided only for reverse migration compatibility - """ - pass - class Migration(migrations.Migration): @@ -49,6 +43,6 @@ class Migration(migrations.Migration): operations = [ migrations.RunPython( build_refs, - reverse_code=unbuild_refs + reverse_code=migrations.RunPython.noop ) ] diff --git a/InvenTree/build/migrations/0036_auto_20220707_1101.py b/InvenTree/build/migrations/0036_auto_20220707_1101.py index 3fbe72cdaf..bf52780791 100644 --- a/InvenTree/build/migrations/0036_auto_20220707_1101.py +++ b/InvenTree/build/migrations/0036_auto_20220707_1101.py @@ -50,11 +50,6 @@ def update_build_reference(apps, schema_editor): print(f"Updated reference field for {n} BuildOrder objects") -def nupdate_build_reference(apps, schema_editor): - """Reverse migration code. Does nothing.""" - pass - - class Migration(migrations.Migration): dependencies = [ @@ -64,6 +59,6 @@ class Migration(migrations.Migration): operations = [ migrations.RunPython( update_build_reference, - reverse_code=nupdate_build_reference, + reverse_code=migrations.RunPython.noop, ) ] diff --git a/InvenTree/order/migrations/0052_auto_20211014_0631.py b/InvenTree/order/migrations/0052_auto_20211014_0631.py index 36e2d882ac..9f6589bc3f 100644 --- a/InvenTree/order/migrations/0052_auto_20211014_0631.py +++ b/InvenTree/order/migrations/0052_auto_20211014_0631.py @@ -52,13 +52,6 @@ def build_refs(apps, schema_editor): order.save() -def unbuild_refs(apps, schema_editor): # pragma: no cover - """ - Provided only for reverse migration compatibility - """ - pass - - class Migration(migrations.Migration): dependencies = [ @@ -67,8 +60,5 @@ class Migration(migrations.Migration): operations = [ - migrations.RunPython( - build_refs, - reverse_code=unbuild_refs - ) + migrations.RunPython(build_refs, reverse_code=migrations.RunPython.noop) ] diff --git a/InvenTree/order/migrations/0058_auto_20211126_1210.py b/InvenTree/order/migrations/0058_auto_20211126_1210.py index 6ba2430af9..1377a9a0b9 100644 --- a/InvenTree/order/migrations/0058_auto_20211126_1210.py +++ b/InvenTree/order/migrations/0058_auto_20211126_1210.py @@ -40,14 +40,6 @@ def calculate_shipped_quantity(apps, schema_editor): item.save() -def reverse_calculate_shipped_quantity(apps, schema_editor): # pragma: no cover - """ - Provided only for reverse migration compatibility. - This function does nothing. - """ - pass - - class Migration(migrations.Migration): dependencies = [ @@ -57,6 +49,6 @@ class Migration(migrations.Migration): operations = [ migrations.RunPython( calculate_shipped_quantity, - reverse_code=reverse_calculate_shipped_quantity + reverse_code=migrations.RunPython.noop ) ] diff --git a/InvenTree/order/migrations/0074_auto_20220709_0108.py b/InvenTree/order/migrations/0074_auto_20220709_0108.py index 8c7a546274..4d8e5014c8 100644 --- a/InvenTree/order/migrations/0074_auto_20220709_0108.py +++ b/InvenTree/order/migrations/0074_auto_20220709_0108.py @@ -84,11 +84,6 @@ def update_purchaseorder_reference(apps, schema_editor): print(f"Updated reference field for {n} PurchaseOrder objects") -def nop(apps, schema_editor): - """Empty function for reverse migration""" - pass - - class Migration(migrations.Migration): dependencies = [ @@ -98,10 +93,10 @@ class Migration(migrations.Migration): operations = [ migrations.RunPython( update_salesorder_reference, - reverse_code=nop, + reverse_code=migrations.RunPython.noop, ), migrations.RunPython( update_purchaseorder_reference, - reverse_code=nop, + reverse_code=migrations.RunPython.noop, ) ] diff --git a/InvenTree/order/migrations/0079_auto_20230304_0904.py b/InvenTree/order/migrations/0079_auto_20230304_0904.py index 85eb9f2b62..0d1dd8041c 100644 --- a/InvenTree/order/migrations/0079_auto_20230304_0904.py +++ b/InvenTree/order/migrations/0079_auto_20230304_0904.py @@ -108,11 +108,6 @@ def update_sales_order_price(apps, schema_editor): logger.info(f"'total_price' field could not be updated for {invalid_count} SalesOrder instances") -def reverse(apps, schema_editor): - """Reverse migration (does nothing)""" - pass - - class Migration(migrations.Migration): dependencies = [ @@ -122,10 +117,10 @@ class Migration(migrations.Migration): operations = [ migrations.RunPython( update_purchase_order_price, - reverse_code=reverse + reverse_code=migrations.RunPython.noop ), migrations.RunPython( update_sales_order_price, - reverse_code=reverse, + reverse_code=migrations.RunPython.noop, ) ] diff --git a/InvenTree/part/admin.py b/InvenTree/part/admin.py index dbe312a120..fb221b0724 100644 --- a/InvenTree/part/admin.py +++ b/InvenTree/part/admin.py @@ -122,9 +122,9 @@ class PartImportResource(InvenTreeResource): ] -class StocktakeInline(admin.TabularInline): - """Inline for part stocktake data""" - model = models.PartStocktake +class PartParameterInline(admin.TabularInline): + """Inline for part parameter data""" + model = models.PartParameter class PartAdmin(ImportExportModelAdmin): @@ -146,7 +146,7 @@ class PartAdmin(ImportExportModelAdmin): ] inlines = [ - StocktakeInline, + PartParameterInline, ] diff --git a/InvenTree/part/api.py b/InvenTree/part/api.py index c2afd23fbe..b9a390d9d5 100644 --- a/InvenTree/part/api.py +++ b/InvenTree/part/api.py @@ -1,6 +1,7 @@ """Provides a JSON API for the Part app.""" import functools +import re from django.db.models import Count, F, Q from django.http import JsonResponse @@ -14,6 +15,7 @@ from rest_framework.exceptions import ValidationError from rest_framework.response import Response import order.models +import part.filters from build.models import Build, BuildItem from InvenTree.api import (APIDownloadMixin, AttachmentMixin, ListCreateDestroyAPIView, MetadataView) @@ -1102,7 +1104,6 @@ class PartList(PartMixin, APIDownloadMixin, ListCreateAPI): # TODO: Querying bom_valid status may be quite expensive # TODO: (It needs to be profiled!) # TODO: It might be worth caching the bom_valid status to a database column - if bom_valid is not None: bom_valid = str2bool(bom_valid) @@ -1112,9 +1113,9 @@ class PartList(PartMixin, APIDownloadMixin, ListCreateAPI): pks = [] - for part in queryset: - if part.is_bom_valid() == bom_valid: - pks.append(part.pk) + for prt in queryset: + if prt.is_bom_valid() == bom_valid: + pks.append(prt.pk) queryset = queryset.filter(pk__in=pks) @@ -1217,6 +1218,34 @@ class PartList(PartMixin, APIDownloadMixin, ListCreateAPI): queryset = queryset.filter(pk__in=parts_needed_to_complete_builds) + queryset = self.filter_parameteric_data(queryset) + + return queryset + + def filter_parameteric_data(self, queryset): + """Filter queryset against part parameters. + + Here we can perfom a number of different functions: + + Ordering Based on Parameter Value: + - Used if the 'ordering' query param points to a parameter + - e.g. '&ordering=param_' where specifies the PartParameterTemplate + - Only parts which have a matching parameter are returned + - Queryset is ordered based on parameter value + """ + + # Extract "ordering" parameter from query args + ordering = self.request.query_params.get('ordering', None) + + if ordering: + # Ordering value must match required regex pattern + result = re.match(r'^\-?parameter_(\d+)$', ordering) + + if result: + template_id = result.group(1) + ascending = not ordering.startswith('-') + queryset = part.filters.order_by_parameter(queryset, template_id, ascending) + return queryset filter_backends = SEARCH_ORDER_FILTER_ALIAS @@ -1320,6 +1349,20 @@ class PartRelatedDetail(RetrieveUpdateDestroyAPI): serializer_class = part_serializers.PartRelationSerializer +class PartParameterTemplateFilter(rest_filters.FilterSet): + """FilterSet for PartParameterTemplate objects.""" + + class Meta: + """Metaclass options""" + + model = PartParameterTemplate + + # Simple filter fields + fields = [ + 'units', + ] + + class PartParameterTemplateList(ListCreateAPI): """API endpoint for accessing a list of PartParameterTemplate objects. @@ -1329,6 +1372,7 @@ class PartParameterTemplateList(ListCreateAPI): queryset = PartParameterTemplate.objects.all() serializer_class = part_serializers.PartParameterTemplateSerializer + filterset_class = PartParameterTemplateFilter filter_backends = SEARCH_ORDER_FILTER @@ -1338,6 +1382,12 @@ class PartParameterTemplateList(ListCreateAPI): search_fields = [ 'name', + 'description', + ] + + ordering_fields = [ + 'name', + 'units', ] def filter_queryset(self, queryset): diff --git a/InvenTree/part/filters.py b/InvenTree/part/filters.py index 026328f816..8b690f56cd 100644 --- a/InvenTree/part/filters.py +++ b/InvenTree/part/filters.py @@ -19,8 +19,9 @@ Relevant PRs: from decimal import Decimal from django.db import models -from django.db.models import (DecimalField, ExpressionWrapper, F, FloatField, - Func, IntegerField, OuterRef, Q, Subquery) +from django.db.models import (Case, DecimalField, Exists, ExpressionWrapper, F, + FloatField, Func, IntegerField, OuterRef, Q, + Subquery, Value, When) from django.db.models.functions import Coalesce from sql_util.utils import SubquerySum @@ -210,3 +211,75 @@ def annotate_category_parts(): 0, output_field=IntegerField() ) + + +def filter_by_parameter(queryset, template_id: int, value: str, func: str = ''): + """Filter the given queryset by a given template parameter + + Parts which do not have a value for the given parameter are excluded. + + Arguments: + queryset - A queryset of Part objects + template_id - The ID of the template parameter to filter by + value - The value of the parameter to filter by + func - The function to use for the filter (e.g. __gt, __lt, __contains) + + Returns: + A queryset of Part objects filtered by the given parameter + """ + + # TODO + + return queryset + + +def order_by_parameter(queryset, template_id: int, ascending=True): + """Order the given queryset by a given template parameter + + Parts which do not have a value for the given parameter are ordered last. + + Arguments: + queryset - A queryset of Part objects + template_id - The ID of the template parameter to order by + + Returns: + A queryset of Part objects ordered by the given parameter + """ + + template_filter = part.models.PartParameter.objects.filter( + template__id=template_id, + part_id=OuterRef('id'), + ) + + # Annotate the queryset with the parameter value, and whether it exists + queryset = queryset.annotate( + parameter_exists=Exists(template_filter) + ) + + # Annotate the text data value + queryset = queryset.annotate( + parameter_value=Case( + When( + parameter_exists=True, + then=Subquery(template_filter.values('data')[:1], output_field=models.CharField()), + ), + default=Value('', output_field=models.CharField()), + ), + parameter_value_numeric=Case( + When( + parameter_exists=True, + then=Subquery(template_filter.values('data_numeric')[:1], output_field=models.FloatField()), + ), + default=Value(0, output_field=models.FloatField()), + ) + ) + + prefix = '' if ascending else '-' + + # Return filtered queryset + + return queryset.order_by( + '-parameter_exists', + f'{prefix}parameter_value_numeric', + f'{prefix}parameter_value', + ) diff --git a/InvenTree/part/migrations/0039_auto_20200515_1127.py b/InvenTree/part/migrations/0039_auto_20200515_1127.py index 9f95f46e85..ec97498148 100644 --- a/InvenTree/part/migrations/0039_auto_20200515_1127.py +++ b/InvenTree/part/migrations/0039_auto_20200515_1127.py @@ -10,10 +10,6 @@ def update_tree(apps, schema_editor): Part.objects.rebuild() -def nupdate_tree(apps, schema_editor): # pragma: no cover - pass - - class Migration(migrations.Migration): atomic = False @@ -48,5 +44,5 @@ class Migration(migrations.Migration): preserve_default=False, ), - migrations.RunPython(update_tree, reverse_code=nupdate_tree) + migrations.RunPython(update_tree, reverse_code=migrations.RunPython.noop) ] diff --git a/InvenTree/part/migrations/0083_auto_20220731_2357.py b/InvenTree/part/migrations/0083_auto_20220731_2357.py index d332a8e7de..06980347e9 100644 --- a/InvenTree/part/migrations/0083_auto_20220731_2357.py +++ b/InvenTree/part/migrations/0083_auto_20220731_2357.py @@ -34,12 +34,6 @@ def update_pathstring(apps, schema_editor): print(f"\n--- Updated 'pathstring' for {n} PartCategory objects ---\n") -def nupdate_pathstring(apps, schema_editor): - """Empty function for reverse migration compatibility""" - - pass - - class Migration(migrations.Migration): dependencies = [ @@ -49,6 +43,6 @@ class Migration(migrations.Migration): operations = [ migrations.RunPython( update_pathstring, - reverse_code=nupdate_pathstring + reverse_code=migrations.RunPython.noop ) ] diff --git a/InvenTree/part/migrations/0102_auto_20230314_0112.py b/InvenTree/part/migrations/0102_auto_20230314_0112.py index f0fb735193..220e14c1e0 100644 --- a/InvenTree/part/migrations/0102_auto_20230314_0112.py +++ b/InvenTree/part/migrations/0102_auto_20230314_0112.py @@ -94,11 +94,6 @@ def update_bom_item(apps, schema_editor): logger.info(f"Updated 'validated' flag for {n} BomItem objects") -def meti_mob_etadpu(apps, schema_editor): - """Provided for reverse compatibility""" - pass - - class Migration(migrations.Migration): dependencies = [ @@ -108,6 +103,6 @@ class Migration(migrations.Migration): operations = [ migrations.RunPython( update_bom_item, - reverse_code=meti_mob_etadpu + reverse_code=migrations.RunPython.noop ) ] diff --git a/InvenTree/part/migrations/0108_auto_20230516_1334.py b/InvenTree/part/migrations/0108_auto_20230516_1334.py new file mode 100644 index 0000000000..1bbef6aa1b --- /dev/null +++ b/InvenTree/part/migrations/0108_auto_20230516_1334.py @@ -0,0 +1,30 @@ +# Generated by Django 3.2.19 on 2023-05-16 13:34 + +import InvenTree.validators +import django.core.validators +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('part', '0107_alter_part_tags'), + ] + + operations = [ + migrations.AddField( + model_name='partparameter', + name='data_numeric', + field=models.FloatField(default=None, null=True, blank=True), + ), + migrations.AlterField( + model_name='partparameter', + name='data', + field=models.CharField(help_text='Parameter Value', max_length=500, validators=[django.core.validators.MinLengthValidator(1)], verbose_name='Data'), + ), + migrations.AlterField( + model_name='partparametertemplate', + name='units', + field=models.CharField(blank=True, help_text='Physical units for this parameter', max_length=25, validators=[InvenTree.validators.validate_physical_units], verbose_name='Units'), + ), + ] diff --git a/InvenTree/part/migrations/0109_auto_20230517_1048.py b/InvenTree/part/migrations/0109_auto_20230517_1048.py new file mode 100644 index 0000000000..7f5c551830 --- /dev/null +++ b/InvenTree/part/migrations/0109_auto_20230517_1048.py @@ -0,0 +1,147 @@ +# Generated by Django 3.2.19 on 2023-05-17 10:48 + +import pint + +from django.core.exceptions import ValidationError +from django.db import migrations + +import InvenTree.conversion + + +def update_template_units(apps, schema_editor): + """Update the units for each parameter template: + + - Check if the units are valid + - Attempt to convert to valid units (if possible) + """ + + PartParameterTemplate = apps.get_model('part', 'PartParameterTemplate') + + n_templates = PartParameterTemplate.objects.count() + + ureg = InvenTree.conversion.get_unit_registry() + + n_converted = 0 + invalid_units = [] + + for template in PartParameterTemplate.objects.all(): + + # Skip empty units + if not template.units: + continue + + # Override '%' units (which are invalid) + if template.units == '%': + template.units = 'percent' + template.save() + n_converted += 1 + continue + + # Test if unit is 'valid' + try: + ureg.Unit(template.units) + continue + except pint.errors.UndefinedUnitError: + pass + + # Check a lower-case version + try: + ureg.Unit(template.units.lower()) + print(f"Found unit match: {template.units} -> {template.units.lower()}") + template.units = template.units.lower() + template.save() + n_converted += 1 + continue + except pint.errors.UndefinedUnitError: + pass + + found = False + + # Attempt to convert to a valid unit + # Look for capitalization issues (e.g. "Ohm" -> "ohm") + for unit in ureg: + if unit.lower() == template.units.lower(): + print(f"Found unit match: {template.units} -> {unit}") + template.units = str(unit) + template.save() + n_converted += 1 + found = True + break + + if not found: + print(f"warningCould not find unit match for {template.units}") + invalid_units.append(template.units) + + print(f"Updated units for {n_templates} parameter templates") + + if n_converted > 0: + print(f" - Converted {n_converted} units") + + if len(invalid_units) > 0: + print(f" - Found {len(invalid_units)} invalid units:") + + for unit in invalid_units: + print(f" - {unit}") + + + +def convert_to_numeric_value(value: str, units: str): + """Convert a value (with units) to a numeric value. + + Defaults to zero if the value cannot be converted. + """ + + # Default value is null + result = None + + if units: + try: + result = InvenTree.conversion.convert_physical_value(value, units) + result = float(result.magnitude) + except (ValidationError, ValueError): + pass + else: + try: + result = float(value) + except ValueError: + pass + + return result + + +def update_parameter_values(apps, schema_editor): + """Update the parameter values for all parts: + + - Calculate the 'data_numeric' value for each parameter + - If the template has invalid units, we'll ignore + """ + + PartParameter = apps.get_model('part', 'PartParameter') + + n_params = PartParameter.objects.count() + + # Convert each parameter value to a the specified units + for parameter in PartParameter.objects.all(): + parameter.data_numeric = convert_to_numeric_value(parameter.data, parameter.template.units) + parameter.save() + + if n_params > 0: + print(f"Updated {n_params} parameter values") + + +class Migration(migrations.Migration): + + dependencies = [ + ('part', '0108_auto_20230516_1334'), + ] + + operations = [ + migrations.RunPython( + update_template_units, + reverse_code=migrations.RunPython.noop + ), + migrations.RunPython( + update_parameter_values, + reverse_code=migrations.RunPython.noop + ) + ] diff --git a/InvenTree/part/models.py b/InvenTree/part/models.py index a9fd88fbee..4e0accdfdf 100644 --- a/InvenTree/part/models.py +++ b/InvenTree/part/models.py @@ -12,7 +12,7 @@ from decimal import Decimal, InvalidOperation from django.contrib.auth.models import User from django.core.exceptions import ValidationError -from django.core.validators import MinValueValidator +from django.core.validators import MinLengthValidator, MinValueValidator from django.db import models, transaction from django.db.models import ExpressionWrapper, F, Q, Sum, UniqueConstraint from django.db.models.functions import Coalesce @@ -35,6 +35,7 @@ from taggit.managers import TaggableManager import common.models import common.settings +import InvenTree.conversion import InvenTree.fields import InvenTree.ready import InvenTree.tasks @@ -982,7 +983,7 @@ class Part(InvenTreeBarcodeMixin, InvenTreeNotesMixin, MetadataMixin, MPTTModel) max_length=20, default="", blank=True, null=True, verbose_name=_('Units'), - help_text=_('Units of measure for this part') + help_text=_('Units of measure for this part'), ) assembly = models.BooleanField( @@ -3295,6 +3296,7 @@ class PartParameterTemplate(MetadataMixin, models.Model): Attributes: name: The name (key) of the Parameter [string] units: The units of the Parameter [string] + description: Description of the parameter [string] """ @staticmethod @@ -3332,7 +3334,14 @@ class PartParameterTemplate(MetadataMixin, models.Model): unique=True ) - units = models.CharField(max_length=25, verbose_name=_('Units'), help_text=_('Parameter Units'), blank=True) + units = models.CharField( + max_length=25, + verbose_name=_('Units'), help_text=_('Physical units for this parameter'), + blank=True, + validators=[ + validators.validate_physical_units, + ] + ) description = models.CharField( max_length=250, @@ -3342,6 +3351,23 @@ class PartParameterTemplate(MetadataMixin, models.Model): ) +@receiver(post_save, sender=PartParameterTemplate, dispatch_uid='post_save_part_parameter_template') +def post_save_part_parameter_template(sender, instance, created, **kwargs): + """Callback function when a PartParameterTemplate is created or saved""" + + import part.tasks as part_tasks + + if InvenTree.ready.canAppAccessDatabase() and not InvenTree.ready.isImportingData(): + + # Schedule a background task to rebuild the parameters against this template + if not created: + InvenTree.tasks.offload_task( + part_tasks.rebuild_parameters, + instance.pk, + force_async=True + ) + + class PartParameter(models.Model): """A PartParameter is a specific instance of a PartParameterTemplate. It assigns a particular parameter pair to a part. @@ -3363,18 +3389,79 @@ class PartParameter(models.Model): def __str__(self): """String representation of a PartParameter (used in the admin interface)""" - return "{part} : {param} = {data}{units}".format( + return "{part} : {param} = {data} ({units})".format( part=str(self.part.full_name), param=str(self.template.name), data=str(self.data), units=str(self.template.units) ) - part = models.ForeignKey(Part, on_delete=models.CASCADE, related_name='parameters', verbose_name=_('Part'), help_text=_('Parent Part')) + def save(self, *args, **kwargs): + """Custom save method for the PartParameter model.""" - template = models.ForeignKey(PartParameterTemplate, on_delete=models.CASCADE, related_name='instances', verbose_name=_('Template'), help_text=_('Parameter Template')) + # Validate the PartParameter before saving + self.calculate_numeric_value() - data = models.CharField(max_length=500, verbose_name=_('Data'), help_text=_('Parameter Value')) + super().save(*args, **kwargs) + + def clean(self): + """Validate the PartParameter before saving to the database.""" + + super().clean() + + # Validate the parameter data against the template units + if self.template.units: + try: + InvenTree.conversion.convert_physical_value(self.data, self.template.units) + except ValidationError as e: + raise ValidationError({ + 'data': e.message + }) + + def calculate_numeric_value(self): + """Calculate a numeric value for the parameter data. + + - If a 'units' field is provided, then the data will be converted to the base SI unit. + - Otherwise, we'll try to do a simple float cast + """ + + if self.template.units: + try: + converted = InvenTree.conversion.convert_physical_value(self.data, self.template.units) + self.data_numeric = float(converted.magnitude) + except (ValidationError, ValueError): + self.data_numeric = None + + # No units provided, so try to cast to a float + else: + try: + self.data_numeric = float(self.data) + except ValueError: + self.data_numeric = None + + part = models.ForeignKey( + Part, on_delete=models.CASCADE, related_name='parameters', + verbose_name=_('Part'), help_text=_('Parent Part') + ) + + template = models.ForeignKey( + PartParameterTemplate, on_delete=models.CASCADE, related_name='instances', + verbose_name=_('Template'), help_text=_('Parameter Template') + ) + + data = models.CharField( + max_length=500, + verbose_name=_('Data'), help_text=_('Parameter Value'), + validators=[ + MinLengthValidator(1), + ] + ) + + data_numeric = models.FloatField( + default=None, + null=True, + blank=True, + ) @classmethod def create(cls, part, template, data, save=False): diff --git a/InvenTree/part/serializers.py b/InvenTree/part/serializers.py index 4aee89f050..9d7b76275e 100644 --- a/InvenTree/part/serializers.py +++ b/InvenTree/part/serializers.py @@ -240,7 +240,8 @@ class PartParameterSerializer(InvenTreeModelSerializer): 'part', 'template', 'template_detail', - 'data' + 'data', + 'data_numeric', ] def __init__(self, *args, **kwargs): diff --git a/InvenTree/part/tasks.py b/InvenTree/part/tasks.py index 5e3d29d067..e089852906 100644 --- a/InvenTree/part/tasks.py +++ b/InvenTree/part/tasks.py @@ -428,3 +428,31 @@ def scheduled_stocktake_reports(): # Record the date of this report common.models.InvenTreeSetting.set_setting('STOCKTAKE_RECENT_REPORT', datetime.now().isoformat(), None) + + +def rebuild_parameters(template_id): + """Rebuild all parameters for a given template. + + This method is called when a base template is changed, + which may cause the base unit to be adjusted. + """ + + try: + template = part.models.PartParameterTemplate.objects.get(pk=template_id) + except part.models.PartParameterTemplate.DoesNotExist: + return + + parameters = part.models.PartParameter.objects.filter(template=template) + + n = 0 + + for parameter in parameters: + # Update the parameter if the numeric value has changed + value_old = parameter.data_numeric + parameter.calculate_numeric_value() + + if value_old != parameter.data_numeric: + parameter.save() + n += 1 + + logger.info(f"Rebuilt {n} parameters for template '{template.name}'") diff --git a/InvenTree/part/templates/part/category.html b/InvenTree/part/templates/part/category.html index 2c36111310..70c11b0dd6 100644 --- a/InvenTree/part/templates/part/category.html +++ b/InvenTree/part/templates/part/category.html @@ -284,15 +284,6 @@ ); }); - onPanelLoad('parameters', function() { - loadParametricPartTable( - "#parametric-part-table", - { - category: {{ category.pk }}, - } - ); - }); - $("#toggle-starred").click(function() { toggleStar({ url: '{% url "api-part-category-detail" category.pk %}', @@ -302,6 +293,17 @@ {% endif %} + onPanelLoad('parameters', function() { + loadParametricPartTable( + "#parametric-part-table", + { + {% if category %} + category: {{ category.pk }}, + {% endif %} + } + ); + }); + // Enable breadcrumb tree view enableBreadcrumbTree({ label: 'category', diff --git a/InvenTree/part/templates/part/category_sidebar.html b/InvenTree/part/templates/part/category_sidebar.html index 34c2c7bea9..898ddb81d8 100644 --- a/InvenTree/part/templates/part/category_sidebar.html +++ b/InvenTree/part/templates/part/category_sidebar.html @@ -16,6 +16,6 @@ {% if category %} {% trans "Stock Items" as text %} {% include "sidebar_item.html" with label='stock' text=text icon='fa-boxes' %} +{% endif %} {% trans "Parameters" as text %} {% include "sidebar_item.html" with label="parameters" text=text icon="fa-tasks" %} -{% endif %} diff --git a/InvenTree/part/test_api.py b/InvenTree/part/test_api.py index d26bbd1374..e2bfbb99ec 100644 --- a/InvenTree/part/test_api.py +++ b/InvenTree/part/test_api.py @@ -2699,91 +2699,6 @@ class BomItemTest(InvenTreeAPITestCase): self.assertEqual(response.data['available_variant_stock'], 1000) -class PartParameterTest(InvenTreeAPITestCase): - """Tests for the ParParameter API.""" - superuser = True - - fixtures = [ - 'category', - 'part', - 'location', - 'params', - ] - - def test_list_params(self): - """Test for listing part parameters.""" - url = reverse('api-part-parameter-list') - - response = self.get(url) - - self.assertEqual(len(response.data), 7) - - # Filter by part - response = self.get( - url, - { - 'part': 3, - } - ) - - self.assertEqual(len(response.data), 3) - - # Filter by template - response = self.get( - url, - { - 'template': 1, - } - ) - - self.assertEqual(len(response.data), 4) - - def test_create_param(self): - """Test that we can create a param via the API.""" - url = reverse('api-part-parameter-list') - - response = self.post( - url, - { - 'part': '2', - 'template': '3', - 'data': 70 - } - ) - - self.assertEqual(response.status_code, 201) - - response = self.get(url) - - self.assertEqual(len(response.data), 8) - - def test_param_detail(self): - """Tests for the PartParameter detail endpoint.""" - url = reverse('api-part-parameter-detail', kwargs={'pk': 5}) - - response = self.get(url) - - self.assertEqual(response.status_code, 200) - - data = response.data - - self.assertEqual(data['pk'], 5) - self.assertEqual(data['part'], 3) - self.assertEqual(data['data'], '12') - - # PATCH data back in - response = self.patch(url, {'data': '15'}) - - self.assertEqual(response.status_code, 200) - - # Check that the data changed! - response = self.get(url) - - data = response.data - - self.assertEqual(data['data'], '15') - - class PartAttachmentTest(InvenTreeAPITestCase): """Unit tests for the PartAttachment API endpoint""" diff --git a/InvenTree/part/test_migrations.py b/InvenTree/part/test_migrations.py index a20c14fa3e..cf51d67bee 100644 --- a/InvenTree/part/test_migrations.py +++ b/InvenTree/part/test_migrations.py @@ -82,3 +82,75 @@ class TestBomItemMigrations(MigratorTestCase): for bom_item in BomItem.objects.all(): self.assertFalse(bom_item.validated) + + +class TestParameterMigrations(MigratorTestCase): + """Unit test for part parameter migrations""" + + migrate_from = ('part', '0106_part_tags') + migrate_to = ('part', '0109_auto_20230517_1048') + + def prepare(self): + """Create some parts, and templates with parameters""" + + Part = self.old_state.apps.get_model('part', 'part') + PartParameter = self.old_state.apps.get_model('part', 'partparameter') + PartParameterTemlate = self.old_state.apps.get_model('part', 'partparametertemplate') + + # Create some parts + a = Part.objects.create( + name='Part A', description='My part A', + level=0, lft=0, rght=0, tree_id=0, + ) + + b = Part.objects.create( + name='Part B', description='My part B', + level=0, lft=0, rght=0, tree_id=0, + ) + + # Create some templates + t1 = PartParameterTemlate.objects.create(name='Template 1', units='mm') + t2 = PartParameterTemlate.objects.create(name='Template 2', units='AMPERE') + + # Create some parameter values + PartParameter.objects.create(part=a, template=t1, data='1.0') + PartParameter.objects.create(part=a, template=t2, data='-2mA',) + + PartParameter.objects.create(part=b, template=t1, data='1/10 inch') + PartParameter.objects.create(part=b, template=t2, data='abc') + + def test_data_migration(self): + """Test that the template units and values have been updated correctly""" + + Part = self.new_state.apps.get_model('part', 'part') + PartParameter = self.new_state.apps.get_model('part', 'partparameter') + PartParameterTemlate = self.new_state.apps.get_model('part', 'partparametertemplate') + + # Extract the parts + a = Part.objects.get(name='Part A') + b = Part.objects.get(name='Part B') + + # Check that the templates have been updated correctly + t1 = PartParameterTemlate.objects.get(name='Template 1') + self.assertEqual(t1.units, 'mm') + + t2 = PartParameterTemlate.objects.get(name='Template 2') + self.assertEqual(t2.units, 'ampere') + + # Check that the parameter values have been updated correctly + p1 = PartParameter.objects.get(part=a, template=t1) + self.assertEqual(p1.data, '1.0') + self.assertEqual(p1.data_numeric, 1.0) + + p2 = PartParameter.objects.get(part=a, template=t2) + self.assertEqual(p2.data, '-2mA') + self.assertEqual(p2.data_numeric, -0.002) + + p3 = PartParameter.objects.get(part=b, template=t1) + self.assertEqual(p3.data, '1/10 inch') + self.assertEqual(p3.data_numeric, 2.54) + + # This one has not converted correctly + p4 = PartParameter.objects.get(part=b, template=t2) + self.assertEqual(p4.data, 'abc') + self.assertEqual(p4.data_numeric, None) diff --git a/InvenTree/part/test_param.py b/InvenTree/part/test_param.py index 7844503d94..88161b221d 100644 --- a/InvenTree/part/test_param.py +++ b/InvenTree/part/test_param.py @@ -2,8 +2,11 @@ import django.core.exceptions as django_exceptions from django.test import TestCase, TransactionTestCase +from django.urls import reverse -from .models import (PartCategory, PartCategoryParameterTemplate, +from InvenTree.unit_test import InvenTreeAPITestCase + +from .models import (Part, PartCategory, PartCategoryParameterTemplate, PartParameter, PartParameterTemplate) @@ -23,7 +26,7 @@ class TestParams(TestCase): self.assertEqual(str(t1), 'Length (mm)') p1 = PartParameter.objects.get(pk=1) - self.assertEqual(str(p1), 'M2x4 LPHS : Length = 4mm') + self.assertEqual(str(p1), 'M2x4 LPHS : Length = 4 (mm)') c1 = PartCategoryParameterTemplate.objects.get(pk=1) self.assertEqual(str(c1), 'Mechanical | Length | 2.8') @@ -87,3 +90,252 @@ class TestCategoryTemplates(TransactionTestCase): n = PartCategoryParameterTemplate.objects.all().count() self.assertEqual(n, 3) + + +class ParameterTests(TestCase): + """Unit tests for parameter validation""" + + fixtures = [ + 'location', + 'category', + 'part', + 'params' + ] + + def test_unit_validation(self): + """Test validation of 'units' field for PartParameterTemplate""" + + # Test that valid units pass + for unit in [None, '', 'mm', 'A', 'm^2', 'Pa', 'V', 'C', 'F', 'uF', 'mF', 'millifarad']: + tmp = PartParameterTemplate(name='test', units=unit) + tmp.full_clean() + + # Test that invalid units fail + for unit in ['mmmmm', '-', 'x', int]: + tmp = PartParameterTemplate(name='test', units=unit) + with self.assertRaises(django_exceptions.ValidationError): + tmp.full_clean() + + def test_param_validation(self): + """Test that parameters are correctly validated against template units""" + + template = PartParameterTemplate.objects.create( + name='My Template', + units='m', + ) + + prt = Part.objects.get(pk=1) + + # Test that valid parameters pass + for value in ['1', '1m', 'm', '-4m', -2, '2.032mm', '99km', '-12 mile', 'foot', '3 yards']: + param = PartParameter(part=prt, template=template, data=value) + param.full_clean() + + # Test that invalid parameters fail + for value in ['3 Amps', '-3 zogs', '3.14F']: + param = PartParameter(part=prt, template=template, data=value) + with self.assertRaises(django_exceptions.ValidationError): + param.full_clean() + + def test_param_conversion(self): + """Test that parameters are correctly converted to template units""" + + template = PartParameterTemplate.objects.create( + name='My Template', + units='m', + ) + + tests = { + '1': 1.0, + '-1': -1.0, + '23m': 23.0, + '-89mm': -0.089, + '100 foot': 30.48, + '-17 yards': -15.54, + } + + prt = Part.objects.get(pk=1) + param = PartParameter(part=prt, template=template, data='1') + + for value, expected in tests.items(): + param.data = value + param.calculate_numeric_value() + self.assertAlmostEqual(param.data_numeric, expected, places=2) + + +class PartParameterTest(InvenTreeAPITestCase): + """Tests for the ParParameter API.""" + superuser = True + + fixtures = [ + 'category', + 'part', + 'location', + 'params', + ] + + def test_list_params(self): + """Test for listing part parameters.""" + url = reverse('api-part-parameter-list') + + response = self.get(url) + + self.assertEqual(len(response.data), 7) + + # Filter by part + response = self.get( + url, + { + 'part': 3, + } + ) + + self.assertEqual(len(response.data), 3) + + # Filter by template + response = self.get( + url, + { + 'template': 1, + } + ) + + self.assertEqual(len(response.data), 4) + + def test_create_param(self): + """Test that we can create a param via the API.""" + url = reverse('api-part-parameter-list') + + response = self.post( + url, + { + 'part': '2', + 'template': '3', + 'data': 70 + } + ) + + self.assertEqual(response.status_code, 201) + + response = self.get(url) + + self.assertEqual(len(response.data), 8) + + def test_param_detail(self): + """Tests for the PartParameter detail endpoint.""" + url = reverse('api-part-parameter-detail', kwargs={'pk': 5}) + + response = self.get(url) + + self.assertEqual(response.status_code, 200) + + data = response.data + + self.assertEqual(data['pk'], 5) + self.assertEqual(data['part'], 3) + self.assertEqual(data['data'], '12') + + # PATCH data back in + response = self.patch(url, {'data': '15'}) + + self.assertEqual(response.status_code, 200) + + # Check that the data changed! + response = self.get(url) + + data = response.data + + self.assertEqual(data['data'], '15') + + def test_order_parts_by_param(self): + """Test that we can order parts by a specified parameter.""" + + def get_param_value(response, template, index): + """Helper function to extract a parameter value from a response""" + params = response.data[index]['parameters'] + + for param in params: + if param['template'] == template: + return param['data'] + + # No match + return None + + # Create a new parameter template + template = PartParameterTemplate.objects.create( + name='Test Template', + description='My test template', + units='m' + ) + + # Create parameters for each existing part + params = [] + + parts = Part.objects.all().order_by('pk') + + for idx, part in enumerate(parts): + + # Skip parts every now and then + if idx % 10 == 7: + continue + + suffix = 'mm' if idx % 3 == 0 else 'm' + + params.append( + PartParameter.objects.create( + part=part, + template=template, + data=f'{idx}{suffix}' + ) + ) + + # Now, request parts, ordered by this parameter + url = reverse('api-part-list') + + response = self.get( + url, + { + 'ordering': 'parameter_{pk}'.format(pk=template.pk), + 'parameters': 'true', + }, + expected_code=200 + ) + + # All parts should be returned + self.assertEqual(len(response.data), len(parts)) + + # Check that the parts are ordered correctly (in increasing order) + expectation = { + 0: '0mm', + 1: '3mm', + 7: '4m', + 9: '8m', + -2: '13m', + -1: None, + } + + for idx, expected in expectation.items(): + actual = get_param_value(response, template.pk, idx) + self.assertEqual(actual, expected) + + # Next, check reverse ordering + response = self.get( + url, + { + 'ordering': '-parameter_{pk}'.format(pk=template.pk), + 'parameters': 'true', + }, + expected_code=200 + ) + + expectation = { + 0: '13m', + 1: '11m', + -3: '3mm', + -2: '0mm', + -1: None, + } + + for idx, expected in expectation.items(): + actual = get_param_value(response, template.pk, idx) + self.assertEqual(actual, expected) diff --git a/InvenTree/plugin/registry.py b/InvenTree/plugin/registry.py index 70ea74a189..83e6f3bdae 100644 --- a/InvenTree/plugin/registry.py +++ b/InvenTree/plugin/registry.py @@ -314,7 +314,7 @@ class PluginsRegistry: handle_error(error, do_raise=False, log_name='discovery') # Log collected plugins - logger.info(f'Collected {len(collected_plugins)} plugins!') + logger.info(f'Collected {len(collected_plugins)} plugins') logger.debug(", ".join([a.__module__ for a in collected_plugins])) return collected_plugins diff --git a/InvenTree/stock/migrations/0061_auto_20210511_0911.py b/InvenTree/stock/migrations/0061_auto_20210511_0911.py index b788d29eae..e26079cb6c 100644 --- a/InvenTree/stock/migrations/0061_auto_20210511_0911.py +++ b/InvenTree/stock/migrations/0061_auto_20210511_0911.py @@ -203,12 +203,6 @@ def update_history(apps, schema_editor): print(f"\n==========================\nUpdated {update_count} StockItemHistory entries") # pragma: no cover -def reverse_update(apps, schema_editor): - """ - """ - pass # pragma: no cover - - class Migration(migrations.Migration): dependencies = [ @@ -216,5 +210,5 @@ class Migration(migrations.Migration): ] operations = [ - migrations.RunPython(update_history, reverse_code=reverse_update) + migrations.RunPython(update_history, reverse_code=migrations.RunPython.noop) ] diff --git a/InvenTree/stock/migrations/0064_auto_20210621_1724.py b/InvenTree/stock/migrations/0064_auto_20210621_1724.py index f54fa6da83..32ccba7d51 100644 --- a/InvenTree/stock/migrations/0064_auto_20210621_1724.py +++ b/InvenTree/stock/migrations/0064_auto_20210621_1724.py @@ -60,12 +60,6 @@ def extract_purchase_price(apps, schema_editor): if update_count > 0: # pragma: no cover print(f"Updated pricing for {update_count} stock items") -def reverse_operation(apps, schema_editor): # pragma: no cover - """ - DO NOTHING! - """ - pass - class Migration(migrations.Migration): @@ -74,5 +68,5 @@ class Migration(migrations.Migration): ] operations = [ - migrations.RunPython(extract_purchase_price, reverse_code=reverse_operation) + migrations.RunPython(extract_purchase_price, reverse_code=migrations.RunPython.noop) ] diff --git a/InvenTree/stock/migrations/0069_auto_20211109_2347.py b/InvenTree/stock/migrations/0069_auto_20211109_2347.py index 2691b6305e..7399bc7963 100644 --- a/InvenTree/stock/migrations/0069_auto_20211109_2347.py +++ b/InvenTree/stock/migrations/0069_auto_20211109_2347.py @@ -36,13 +36,6 @@ def update_serials(apps, schema_editor): item.save() -def nupdate_serials(apps, schema_editor): # pragma: no cover - """ - Provided only for reverse migration compatibility - """ - pass - - class Migration(migrations.Migration): dependencies = [ @@ -52,6 +45,6 @@ class Migration(migrations.Migration): operations = [ migrations.RunPython( update_serials, - reverse_code=nupdate_serials, + reverse_code=migrations.RunPython.noop, ) ] diff --git a/InvenTree/stock/migrations/0071_auto_20211205_1733.py b/InvenTree/stock/migrations/0071_auto_20211205_1733.py index 91a8c65163..a7e6259125 100644 --- a/InvenTree/stock/migrations/0071_auto_20211205_1733.py +++ b/InvenTree/stock/migrations/0071_auto_20211205_1733.py @@ -35,10 +35,6 @@ def delete_scheduled(apps, schema_editor): Task.objects.filter(func='stock.tasks.delete_old_stock_items').delete() -def reverse(apps, schema_editor): # pragma: no cover - pass - - class Migration(migrations.Migration): dependencies = [ @@ -48,6 +44,6 @@ class Migration(migrations.Migration): operations = [ migrations.RunPython( delete_scheduled, - reverse_code=reverse, + reverse_code=migrations.RunPython.noop, ) ] diff --git a/InvenTree/stock/migrations/0081_auto_20220801_0044.py b/InvenTree/stock/migrations/0081_auto_20220801_0044.py index 361a7bc5e1..b755deb393 100644 --- a/InvenTree/stock/migrations/0081_auto_20220801_0044.py +++ b/InvenTree/stock/migrations/0081_auto_20220801_0044.py @@ -34,13 +34,6 @@ def update_pathstring(apps, schema_editor): print(f"\n--- Updated 'pathstring' for {n} StockLocation objects ---\n") -def nupdate_pathstring(apps, schema_editor): - """Empty function for reverse migration compatibility""" - - pass - - - class Migration(migrations.Migration): dependencies = [ @@ -50,6 +43,6 @@ class Migration(migrations.Migration): operations = [ migrations.RunPython( update_pathstring, - reverse_code=nupdate_pathstring + reverse_code=migrations.RunPython.noop ) ] diff --git a/InvenTree/stock/migrations/0094_auto_20230220_0025.py b/InvenTree/stock/migrations/0094_auto_20230220_0025.py index f83a21b5e9..9d4de5a438 100644 --- a/InvenTree/stock/migrations/0094_auto_20230220_0025.py +++ b/InvenTree/stock/migrations/0094_auto_20230220_0025.py @@ -62,9 +62,6 @@ def fix_purchase_price(apps, schema_editor): logger.info(f"Corrected purchase_price field for {n_updated} stock items.") -def reverse(apps, schema_editor): # pragmae: no cover - pass - class Migration(migrations.Migration): dependencies = [ @@ -74,6 +71,6 @@ class Migration(migrations.Migration): operations = [ migrations.RunPython( fix_purchase_price, - reverse_code=reverse, + reverse_code=migrations.RunPython.noop, ) ] diff --git a/InvenTree/stock/migrations/0096_auto_20230330_1121.py b/InvenTree/stock/migrations/0096_auto_20230330_1121.py index d8e3c1ce53..42a81a2865 100644 --- a/InvenTree/stock/migrations/0096_auto_20230330_1121.py +++ b/InvenTree/stock/migrations/0096_auto_20230330_1121.py @@ -52,11 +52,6 @@ def update_stock_history(apps, schema_editor): print(f"Updated {n} StockItemTracking entries with SalesOrder data") -def nope(apps, schema_editor): - """Provided for reverse migration compatibility""" - pass - - class Migration(migrations.Migration): dependencies = [ @@ -65,6 +60,6 @@ class Migration(migrations.Migration): operations = [ migrations.RunPython( - update_stock_history, reverse_code=nope, + update_stock_history, reverse_code=migrations.RunPython.noop, ) ] diff --git a/InvenTree/templates/InvenTree/settings/part.html b/InvenTree/templates/InvenTree/settings/part.html index f79c508d92..00d606c5b9 100644 --- a/InvenTree/templates/InvenTree/settings/part.html +++ b/InvenTree/templates/InvenTree/settings/part.html @@ -55,19 +55,4 @@ -
- -

{% trans "Part Parameter Templates" %}

- {% include "spacer.html" %} -
- -
-
-
- - -
- {% endblock content %} diff --git a/InvenTree/templates/InvenTree/settings/part_parameters.html b/InvenTree/templates/InvenTree/settings/part_parameters.html new file mode 100644 index 0000000000..d2b15edf87 --- /dev/null +++ b/InvenTree/templates/InvenTree/settings/part_parameters.html @@ -0,0 +1,25 @@ +{% extends "panel.html" %} +{% load i18n %} + +{% block label %}part-parameters{% endblock label %} + +{% block heading %} +{% trans "Part Parameter Templates" %} +{% endblock heading %} + +{% block actions %} + +{% endblock actions %} + +{% block content %} +
+
+ {% include "filter_list.html" with id="parameter-templates" %} +
+
+ +
+ +{% endblock content %} diff --git a/InvenTree/templates/InvenTree/settings/settings.html b/InvenTree/templates/InvenTree/settings/settings.html index b6e8e59eb3..14e918a6f0 100644 --- a/InvenTree/templates/InvenTree/settings/settings.html +++ b/InvenTree/templates/InvenTree/settings/settings.html @@ -36,6 +36,7 @@ {% include "InvenTree/settings/label.html" %} {% include "InvenTree/settings/report.html" %} {% include "InvenTree/settings/part.html" %} +{% include "InvenTree/settings/part_parameters.html" %} {% include "InvenTree/settings/part_stocktake.html" %} {% include "InvenTree/settings/category.html" %} {% include "InvenTree/settings/pricing.html" %} diff --git a/InvenTree/templates/InvenTree/settings/settings_staff_js.html b/InvenTree/templates/InvenTree/settings/settings_staff_js.html index 2c3a984ccb..98d13c5a38 100644 --- a/InvenTree/templates/InvenTree/settings/settings_staff_js.html +++ b/InvenTree/templates/InvenTree/settings/settings_staff_js.html @@ -302,50 +302,10 @@ onPanelLoad('category', function() { }); }); -// Javascript for the Part settings panel -onPanelLoad('parts', function() { - $("#param-table").inventreeTable({ - url: "{% url 'api-part-parameter-template-list' %}", - queryParams: { - ordering: 'name', - }, - formatNoMatches: function() { return '{% trans "No part parameter templates found" %}'; }, - columns: [ - { - field: 'pk', - title: '{% trans "ID" %}', - visible: false, - switchable: false, - }, - { - field: 'name', - title: '{% trans "Name" %}', - sortable: true, - }, - { - field: 'units', - title: '{% trans "Units" %}', - sortable: true, - switchable: true, - }, - { - field: 'description', - title: '{% trans "Description" %}', - sortable: false, - switchable: true, - }, - { - formatter: function(value, row, index, field) { - var bEdit = ""; - var bDel = ""; +// Javascript for the Part parameters settings panel +onPanelLoad('part-parameters', function() { - var html = "
" + bEdit + bDel + "
"; - - return html; - } - } - ] - }); + loadPartParameterTemplateTable("#param-table", {}); $("#new-param").click(function() { constructForm('{% url "api-part-parameter-template-list" %}', { @@ -359,45 +319,10 @@ onPanelLoad('parts', function() { refreshTable: '#param-table', }); }); +}); - $("#param-table").on('click', '.template-edit', function() { - var button = $(this); - var pk = button.attr('pk'); - - constructForm( - `/api/part/parameter/template/${pk}/`, - { - fields: { - name: {}, - units: {}, - description: {}, - }, - title: '{% trans "Edit Part Parameter Template" %}', - refreshTable: '#param-table', - } - ); - }); - - $("#param-table").on('click', '.template-delete', function() { - var button = $(this); - var pk = button.attr('pk'); - - var html = ` -
- {% trans "Any parameters which reference this template will also be deleted" %} -
`; - - constructForm( - `/api/part/parameter/template/${pk}/`, - { - method: 'DELETE', - preFormContent: html, - title: '{% trans "Delete Part Parameter Template" %}', - refreshTable: '#param-table', - } - ); - }); - +// Javascript for the Part settings panel +onPanelLoad('parts', function() { $("#import-part").click(function() { launchModalForm("{% url 'api-part-import' %}?reset", {}); }); diff --git a/InvenTree/templates/InvenTree/settings/sidebar.html b/InvenTree/templates/InvenTree/settings/sidebar.html index 9db6f6620f..177a4e0a9b 100644 --- a/InvenTree/templates/InvenTree/settings/sidebar.html +++ b/InvenTree/templates/InvenTree/settings/sidebar.html @@ -44,6 +44,8 @@ {% include "sidebar_item.html" with label='category' text=text icon="fa-sitemap" %} {% trans "Parts" as text %} {% include "sidebar_item.html" with label='parts' text=text icon="fa-shapes" %} +{% trans "Part Parameters" as text %} +{% include "sidebar_item.html" with label='part-parameters' text=text icon="fa-th-list" %} {% trans "Stock" as text %} {% include "sidebar_item.html" with label='stock' text=text icon="fa-boxes" %} {% trans "Stocktake" as text %} diff --git a/InvenTree/templates/js/translated/part.js b/InvenTree/templates/js/translated/part.js index 0898c0c591..9c629caf62 100644 --- a/InvenTree/templates/js/translated/part.js +++ b/InvenTree/templates/js/translated/part.js @@ -31,6 +31,7 @@ loadParametricPartTable, loadPartCategoryTable, loadPartParameterTable, + loadPartParameterTemplateTable, loadPartPurchaseOrderTable, loadPartTable, loadPartTestTemplateTable, @@ -1286,11 +1287,27 @@ function loadPartParameterTable(table, options) { return row.template_detail.name; } }, + { + field: 'description', + title: '{% trans "Description" %}', + switchable: true, + sortable: false, + formatter: function(value, row) { + return row.template_detail.description; + } + }, { field: 'data', title: '{% trans "Value" %}', switchable: false, sortable: true, + formatter: function(value, row) { + if (row.data_numeric && row.template_detail.units) { + return `${row.data}`; + } else { + return row.data; + } + } }, { field: 'units', @@ -1345,6 +1362,107 @@ function loadPartParameterTable(table, options) { } +/* + * Construct a table showing a list of part parameter templates + */ +function loadPartParameterTemplateTable(table, options={}) { + + let params = options.params || {}; + + params.ordering = 'name'; + + let filters = loadTableFilters('part-parameter-templates', params); + + let filterTarget = options.filterTarget || '#filter-list-parameter-templates'; + + setupFilterList('part-parameter-templates', $(table), filterTarget); + + $(table).inventreeTable({ + url: '{% url "api-part-parameter-template-list" %}', + original: params, + queryParams: filters, + name: 'part-parameter-templates', + formatNoMatches: function() { + return '{% trans "No part parameter templates found" %}'; + }, + columns: [ + { + field: 'pk', + title: '{% trans "ID" %}', + visible: false, + switchable: false, + }, + { + field: 'name', + title: '{% trans "Name" %}', + sortable: true, + }, + { + field: 'units', + title: '{% trans "Units" %}', + sortable: true, + switchable: true, + }, + { + field: 'description', + title: '{% trans "Description" %}', + sortable: false, + switchable: true, + }, + { + formatter: function(value, row, index, field) { + + let buttons = ''; + + buttons += makeEditButton('template-edit', row.pk, '{% trans "Edit Template" %}'); + buttons += makeDeleteButton('template-delete', row.pk, '{% trans "Delete Template" %}'); + + return wrapButtons(buttons); + } + } + ] + }); + + $(table).on('click', '.template-edit', function() { + var button = $(this); + var pk = button.attr('pk'); + + constructForm( + `/api/part/parameter/template/${pk}/`, + { + fields: { + name: {}, + units: {}, + description: {}, + }, + title: '{% trans "Edit Part Parameter Template" %}', + refreshTable: table, + } + ); + }); + + $(table).on('click', '.template-delete', function() { + var button = $(this); + var pk = button.attr('pk'); + + var html = ` +
+ {% trans "Any parameters which reference this template will also be deleted" %} +
`; + + constructForm( + `/api/part/parameter/template/${pk}/`, + { + method: 'DELETE', + preFormContent: html, + title: '{% trans "Delete Part Parameter Template" %}', + refreshTable: table, + } + ); + }); +} + + /* * Construct a table showing a list of purchase orders for a given part. * @@ -1663,6 +1781,12 @@ function loadRelatedPartsTable(table, part_id, options={}) { */ function loadParametricPartTable(table, options={}) { + options.params = options.params || {}; + + options.params['parameters'] = true; + + let filters = loadTableFilters('parameters', options.params); + setupFilterList('parameters', $(table), '#filter-list-parameters'); var columns = [ @@ -1691,11 +1815,18 @@ function loadParametricPartTable(table, options={}) { async: false, success: function(response) { for (var template of response) { + + let template_name = template.name; + + if (template.units) { + template_name += ` [${template.units}]`; + } + columns.push({ field: `parameter_${template.pk}`, - title: template.name, + title: template_name, switchable: true, - sortable: false, + sortable: true, filterControl: 'input', }); } @@ -1703,20 +1834,21 @@ function loadParametricPartTable(table, options={}) { } ); - // TODO: Re-enable filter control for parameter values $(table).inventreeTable({ url: '{% url "api-part-list" %}', - queryParams: { - category: options.category, - cascade: true, - parameters: true, - }, + queryParams: filters, + original: options.params, groupBy: false, name: options.name || 'part-parameters', formatNoMatches: function() { return '{% trans "No parts found" %}'; }, + // TODO: Re-enable filter control for parameter values + // Ref: https://github.com/inventree/InvenTree/issues/4851 + // filterControl: true, + // showFilterControlSwitch: true, + // sortSelectOptions: true, columns: columns, showColumns: true, sidePagination: 'server', @@ -1751,8 +1883,8 @@ function loadParametricPartTable(table, options={}) { } +// Generate a "grid tile" view for a particular part function partGridTile(part) { - // Generate a "grid tile" view for a particular part // Rows for table view var rows = ''; @@ -1822,6 +1954,8 @@ function partGridTile(part) { */ function loadPartTable(table, url, options={}) { + options.params = options.params || {}; + // Ensure category detail is included options.params['category_detail'] = true; diff --git a/InvenTree/templates/js/translated/status_codes.js b/InvenTree/templates/js/translated/status_codes.js index 3b4c38e6df..8702944730 100644 --- a/InvenTree/templates/js/translated/status_codes.js +++ b/InvenTree/templates/js/translated/status_codes.js @@ -55,7 +55,6 @@ function renderStatusLabel(key, codes, options={}) { return `${text}`; } - {% include "status_codes.html" with label='stock' data=StockStatus.list %} {% include "status_codes.html" with label='stockHistory' data=StockHistoryCode.list %} {% include "status_codes.html" with label='build' data=BuildStatus.list %} diff --git a/InvenTree/templates/js/translated/table_filters.js b/InvenTree/templates/js/translated/table_filters.js index c501baa091..f9b925bd0f 100644 --- a/InvenTree/templates/js/translated/table_filters.js +++ b/InvenTree/templates/js/translated/table_filters.js @@ -700,6 +700,19 @@ function getCompanyFilters() { } +// Return a dictionary of filters for the "part parameter template" table +function getPartParameterTemplateFilters() { + return {}; +} + + +// Return a dictionary of filters for the "parameteric part" table +function getParametricPartTableFilters() { + let filters = getPartTableFilters(); + + return filters; +} + // Return a dictionary of filters for a given table, based on the name of the table function getAvailableTableFilters(tableKey) { @@ -723,6 +736,10 @@ function getAvailableTableFilters(tableKey) { return getBuildItemTableFilters(); case 'location': return getStockLocationFilters(); + case 'parameters': + return getParametricPartTableFilters(); + case 'part-parameter-templates': + return getPartParameterTemplateFilters(); case 'parts': return getPartTableFilters(); case 'parttests': diff --git a/docs/docs/assets/images/part/part_invalid_units.png b/docs/docs/assets/images/part/part_invalid_units.png new file mode 100644 index 0000000000000000000000000000000000000000..014fe4b93e214c1669a44ea29455433506487a48 GIT binary patch literal 53968 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 literal 0 HcmV?d00001 diff --git a/docs/docs/assets/images/part/part_sort_by_param.png b/docs/docs/assets/images/part/part_sort_by_param.png new file mode 100644 index 0000000000000000000000000000000000000000..7f89cdc719b9a5985562c3c317aa9d43855c0c0e GIT binary patch literal 189995 zcmeFZcT`j97B}p@-WjhVGKz|dz*rCjAu33RI4ZpIzV&9USx(3~&)Ls@cK_{tVy>I$3hp_! zXUC2mg8F*b%z%G%ckK92(SQF9`~?>!P6Yn>m%o|rl^x~y;}qb_e_Vet{$eyYK1Q`0v;u7R~?fUx~A;&cGiJ1Zdw3Fo(JX1mE^^-l6N~?Cj(31`Tku{4a3J zcC`MrUo1i#7r6^57W5WS2p+t0E$8w2RL-;cwwSzU!WU{2KB)+c5ri*r%TI+hkOMm2 zuD{nXeIGzm;Z7-d+npDvsFK~U92YnSpa&m@}&t$9(Y7xtO5L(o}}b$tP@7s`dgcLLOY`KUdxlKAug zcLeM~X?^|j>7Xs_>z5B_t65*a{BG_>|JR@2E|+|ueqHWYljp=;fBv!~_X<+z>lZa` z6bkqC!X1}$uk1#_yk)7VCW_LUQ$6f4Acw?5WeNZDAv@*H${PiUrx2VGE55O&xQTlD>fk1hBl zMB#3JnsGi>PgFi=xS1Dbxc~c4>9fM%V41;6D~K5-?sT~6|8X%xTUgTJY8LSD^hHg2 z`gfF{JZW|T*jNC|c8uB>zU5QBz-4chkj%d4&NUgAZ63D`h0~LscP<;H0%Q(PGzJ%7 zJ^zVa0|0?r^dU&J3Axn#>eZ{y^Q|Y|p>T~AZbR(NrT@d`-{W9x+d--!D`GcF>-$Y7 zg#l7=C>EwK3pz+IJMx^EVZmA+uNPi&K$?C}Z(%!dCQ3CdE$#+kz%KTCX6v;@uqY(} zHR_>jcb^Yu99+M0109=W2MfMq3;PE~VM?4)xEbf9mMgG-{5`P97702)4NDsspfEwyeuPo8IP0V}hLBc2 zQADAHyS1b;;|6i8z6|i*bgcdN``0+mSz+6hItL3P0y9lZFDNics>}FsPzDc7>c{@~&Ko$PGLjV){en+EAj?CQXeW}pBzh-C%$pP`_eUkQ9JbyqU$8H<%^_&L?!UxW?M0jl{IBHX{>Io zZ$$Xa6PlbxeK6#!6iGka@3Zi659Yx*BZVn>m08*b~k!(QHP~e5@ke>qV2S zAggZ@vl~|3JUr!xKzUjm{3D`(i&54GvUP|bbi44ZKf-bQO-!6Mf1R}x4yyFcs&y$k zy*+VD^Stv!UVg^G{=CFFR%R;{9kZD!VWOCR)KF7Xp^WOI+)d)@W;bux*9&eY_d&gIs#6%qDxk0AiQ1VRXDXGT!VD3}~+tH@+ zUi*sbBA3e;mv$T>kP>NQRnZW;#sGY(zR<>8@Bvs*-wVVD!vrgJ{qF*O*Gn4-(r@5w zEX9Z+=S;-Q<1CGO-|8xf^?LlAX5CQ^$App?Ef4hb3zllEAofN%D&sTAXL+lM*oZqx8X%FEc)Fw0cH_58R?3#mo2&rgJMT{FzlGA2$E1qo#pgW{CZ#&eX_ zHLC_CkPTjrtf%rzw#my6wa=oWFqDG&YEO5oMtK7oW4000j@GR8XEO2z1_Q#1p&A!k zY=bkl%5xR2C|}Uu&Q~@q!r!h!;rtOOgw4&~jqeq3 z29Ae~Q^zn7A#Yv{*aoykHIq9152M3pv0GrZu*m^s5fibAtJZ4>Gp1#zK>oMMRX09sO@HR#jYen`*t%2F9qerOTQX$Pn|@(&b#0 z$i7i)awwGioUyWRDKwm$e6$(l<6~^!*lf^@+ITA8%yesWbZ`fuTupA7H0lQE=y>$>~WHBG0m4U@;eWp&%=0X`Nmb zd*&*QR-#$Y>q*?oef*npBX_-xUPp4{a3 z|KNJ+5&qkNyLKFbguuyNTuHlW>djt8$6&<0vNZ>L^zq0Gl>2Rz(1`HLSUWXIV#Si@ znfC2v$g8;rpx%yPH?by853a{lqfvI+QVyw19HBPWg_=w1jDyaNpuNn@AtL0M}L|zEK2EFYVGg&Jld687U*Xo>q8Q8;i^I1go3FpIU=pYY{gnuM9v{_(WRQV23~} zC6^b`DHb2?KRYniUD7k~ojXZlt8959Y5g@nv|_4wB|#a3^}NbJ;v)m^lBt}LiwfI8 z(_!h}XvR!Fb$CWsJokKgi7RUqo6(h*ZmI$Q?_c0T(`Q~zAV!ase0u6f$y{f3R?aJ?Hh{C@q`QCHo5NczDJR8muHW}je$diKmz6NNi{IZRGLe4si zGB6kh#!cBtWspAD{N1`PcjQ*rlI^7PMuw?RHopPB8K8H#$whuqYeHdF` zg2F*f7jLSCGTPD8VJ_ZBm_gV>3VvfRs}C!M_9SfxA2Z37=xOSi@5;NLO0b(dq*?Ff z+|j?+2cpKA*+a*0W%mfsiDpuA^1AXQ8+UiCnk`H_zSR~VO+SHD`af)&DJ!Y-wyIaMHWSFk6ln|4XU)jE3NS)ODXMhQmSi5{hp}TF zHnWF>2iS#Wwrcin%+?NWPQvL^sT`6FDD-AH68+-3O5k+g#^4^+O1KBS_fWdV%k}9o zYybnP%qyK3>dO21JG$$ESP9}y$*uOI{a5*f7@i)t^RpSnhoj3wsT6Jh65}Ie@c2gA z;0KxV1mlr=r!g4YQ4$q-VS3)Dw0f>-x2K07S^uCE{BFt8cT4-VBPN|V|mO9LaQ#RiBvFiUK$z2VCsYdSb0x_@K9UcYjx+ z%S?*>I90Ub-wZ;zWRz3}h7}|)x@zxycQTutwkT)PgThT6+O^R88;T-oImBIc7_IsJ zZqfU^&t^D+(Kg$l74~;EOS+K9E+=Ljj7fm#H#aE`^+q(TCane@e5La;fsPtSkZk3) zs)1#r}H!EFOLVLbj*aZ|qrKE|H@JrNe0R&EklOXpZ;ZXmk6=b_Qs&u_7jGGPI zJl}1eQC{R|dBVDR^n4Zi-b3aF56&svt#J5E<7nu|4Zvez&yOqd6AI>T=XzaRz zmBn_4$b466ZALExR%GBtYn3Hy-Dur=@b5f3N;sO0!bz$V>^yth9J<-j**e%}#O4f3 z2&Z93IrF@YHvAj)<_T{ook)0NFyDoDo)(B!E-#6sCdaEM@aT7g9`i%T0-4oK#9*3MR!uc4i*eAPUk{0v zTrc~zM!oc@z)pqH`(O}c^vvNN4G%Ino)v~Ggp}+6#%hslH z&yD6;hO5;E-ZtfB-WVMK&YXwb7}Oz9t;qe}Hu2TnP%Yblt3<0>mJYkX{Wg+TvJUF) zf{G2P!<>4m@;yAZulwYUD@ttx+D*ysNYUeW!4EA7FR zx2=59<&r2|II|D9Ja~PoM!Qw2#C0%Ex4bCtdisK^mc#ZyvBxf(rhk*)5)mae>2r-s ziGqk65@jJVGCS;w4c{|XMHsg6ATR|gmHuYnl=E5M;}WPw%BalWMa>U!4T)B4$-(PfG>oZwf_Qds%(B$ zi)&Ly(#2AaPu#SxTNG>lv@~tq-@BWien0AH*Oj<4dt-pR+7rR(%m5#Kq16B8ey-tE zuRJ~{qqh+8o!8=T0hBg?ateh?Y3CWAa_x8ci z-XURwjC-4`3~yV_2-jh&YS!|kE@8?F5^yZ|(4}EN3MISZ))JC-+I20Pzz)K0ca0YL zpV2nmWBN|z-J1#7Xp!LKL+WrIYerbLdY))m&J+ z1fqBHNRv_` zfc;&`^a&9V!lIYHmM8f6S)(Ihy1nTWO?953P2&zx0~o|qbun>^(BrS3VX0nog`buA z(HH1|I!!bt7SEz^z<8Xy7Z}xP&F-Qn%D0^ssd@NxwU&9raQP;51Q}@W=`xpRunz^4u{aUZ-V0dnE-F z8Rq^Fvj8NWSrEwz#WY*M;*c6|PhQ2AN@WxUk4_mQa!dOwkhE!aCJP9emgA?1K7HSr z+RyTDTQ0WEFJ2ME7X_S4^Kj9{?_puwT_t-^1wl0|Kj!A!giDEdd97cMCYBr8dI}Z- zW=X}`WNCP1Bj>EpER8VAX0HX`nm*ALz6!`GHolej^D*YJ~D z`t2tFSUnso_`WoB@?`(nzVFf=z_e0Q|Dg=^_;G;2_o+Ex5!EFBp>lNcWbT3gFN&W3 zP|^CoWPf+;|G(pQr&~2^-&ee8$EE+lr7j#p;UIA4>|9Sac$>2xKTIDsE#m$7^>Qa$ z>G!je-VKE|TkE}Ga#QGf1_Z8;VVUHr9qI~Qa-&PO;bv4?e))=fy@s82CrGB@-brIv zC;P?@#=?9{u2+1;yMATc_7@nc1x6V_PE#f@wZ!0sK~yXXcTMH;*JsuVJzTRtM;SO| z3#;{+FbE6QFG9DWaPI)11;`uQ+HiU*(tlmt`|zX#u3rQI;x?DYhJLexoNkhr-%P7z zCEtN;Yywx`nbiAA-L3b#E$hwnOXN#8v@hDip1-he0|1`F;f!h)oJ${?x&wJWCbGMO z4`qJ&Y{g%HE^Au^@&m|(L~=1p0F=~EH9W*VIr;ma*X;PHB^(=|4eS}+%*)zX-jjwK ztY)3muYdyBQy&RR#^uUvO1A9(O2uo~nS+!&`pwHjkVq_yy$Nh=lSU?I0kntuo+eTa zV_{J~kkiKnzCK|*<4Ugl^160%xx;4!>EzW@maLPfYJsO9L4Nc2+?k$aWs`?aUmx)+ z+w29QEjfK6S3NkH+L_Af59H5XPnE>L=o<(Ceg3IUDtjdEV2hy zQJ0|nTZ0|!hsoTp>;C!&QPLZ2Esu=iYySdqfAs)p{qpB;QP?nmhJ&m-x38Z01`2k= z7Jh!fs}m{TpvBdWUq~8$s{aknYYXD@3UbctUEw!SFe>8<#;SC;{~NS;&@e3c`3DgJ z(Tnci0LlxJ*hc=r2xfkZIn)0yxxj({6L+hJ=%UKK5Y95Avuamj?!o;@9x>%9eZ-3m zE{~9|xh4oL?Cn+w*Z0pZ`Pe5arhi)0o`2Q8>>vj))P7z75R0$pe_1rQnc+}Y1Ne%O znDU&-W42X-qP%A^FZ2~+@UALVJ^J6D*U}nYStR*UR~vL!B#znr;luUe9hXZ#?K$co zRe*H%8+lTWxP4VHUCu5~rbvH12JfNLY^?YFGTuoq`-3?%BM2z(fcU>}o$kA&Q12WX zFS|KwO<`wD>0~M9jx)XBZMg3x@k7`UblfOC+l;dFg>}HJk^J*MjG~4`8--9}*yz?j zH89+YJVTji3&j2Wtx#4wR$eCqRJZo-7&ujbi1xUfJ}W{^2`cKGWqp;kTp(22r+jSt z$A*xz{W9geIn{sCW?myoQNIY{{Q84*I;u)RcFU#(@EK*kVVS{50-#|$SNcbo%mn2jZh8SHTc|J z_WEO|HTiCLp4|V_u8-IL^L=Eh060KHSDn?~{-@tvHU*T!xSzW4^r8R6)4ya7f;ztR zNmR7p56;(t0RyI}k3?TR@a5$HG^`lE>H;*TfI%ri$U8IyPzOq#IugV*Le6LQpI6I2 zD`MQ_#?nqXpA~!CENCxz->>@v8EMD)i~g?gKP!S&9{pictz`iMZ7;@VD?=UY?oGyl zaC&p+1AcS6qC>ctm2*3bbP6Z7LvZ1#tSWz*%h3etPPb$$Nc8EPg-53&Z|?>ASNH}S zZIuwTaY;3HtQLw;50=ktNIC^M&ShFa6`LT>{Dn zG*{`Rh8gHWo)XAUNZ9zDo9&r(g{&8S0fNH87L1_Bj};N&;gX+Qh&~8SiH}@42xPC;MB*Q~qFsNZ3`71RN7+M5Tv3eK{6UbhX9hqN1{`~H(q?5mhra8~S0FyZrR3QKi=tOnw* z77s^47Y1uv;f8{H_i8XcKK!)XRHI^}Js#0o5EvWe$Z>Q?J^$;Yl?-KZz!D=;!~3%hS^G_H{oQ?&+X=xl|D$dQ%u^~c|zAG?E-uUxz884o1%l-&xgP&=C%OBcc?P-mq zL8W*b0|hYVMM$XCqJZh5nJw({eZHYM4!gSVEx#d7=`NLJMUEE*)5e)^P9>g`&UtH* zZ`>!Gh2D}37XaUtX$s6fKssZ-)Vp{W^JJ<70grW=O9CYn^Rndoi7~|iiWLPEu`^*; z`7B?)ZR_{PX$E<_)45CQhZL@aqoLG(Nm0@W&XufN-?ZJ~ipWz6Ot+FapYFz&&OYTo z<-1rOC_UA!t^DJq*{?yqvf%`;8T4@RwwYNYj5i3`VtsO_~L&)h;qoE<$ zMx80GLJr9E8}@;i8 zZ;z`%@`m!~41?0Wsp$_-7(uo(DveLd^?ZEo3Ib(vFGH7Q70QD-U5NzK7iYItpLqYp zd>m1E1^=>+sJsv#H-0=0tf{%6t2_f0*8~9G zO4LdH_M;)9^k&;_m zPmIf3C-e96UHd(V2MkHW&&!^fw}oK|gK$pm%FUi-&OK@Y#!$pGOHFq9eNU*{X5}pO z`0=_!N+sjW&|5Uo?DTUHi_fE{gL700BHO1r2A5UVrgK-GoRrjTvWuLcPgTxXat(tV z_41NLXhE$`>mpA~f4t~B$gt`2Au}V+Yn(6}r8cg&R)}?rJeuD!b~sO~58iZq>G$FF zGX)k3XS@75e7fC@e80B*4y0QacB2J|SveD5EOoJu2VGnE&S*7~|T8g3`G`^D8W-@3glL`K3tBkfTqdf9SkI;$|Dj zXnwMU7odhk(6*XXRI8V}E;2j8xrQR_N8usL`@qVw?t<+$D|qHg>N^y=R@2VAR(3N= zN;?+l?pq3d-hbN^9zet)TB`0}@ZPY4-7ZPfSbf|7X?L`c#BQ*1Ap=V_02Cp}f|dUe zt9+W-c>9aPnHZqTf+-kflFvA!e(Gf8jnN5eoTB}r=gWQ(eMfQl3-d-nEeI-eGdAj+F}#l~sxaqAP>r(i9O==)2SD@~#?|NuC$A z1qg2FE^qHZvSk1v6jl6-r49tDEP57*MZjL7`WvIV;x^Ygqf<|=AVK|?E6|fbZE)l& zbSuLFi^`8sXE zp>jQJgm5fD+|D;AUMKne5@4W`7f)cuy85UK`EGQ5wy;)@Z+A_GcbU2^&=Jj7qT5a}e^WDhmGuEhYJFWH%sYnhD(SU209gJSQ<`xQuEkf3R>&9-R)?TdMJ^W;ICL!uok`bc{@Apo)F!=P-KNaLI!{JIE`2R(j)!7}x|0bP@b^|^01@mjrVsy4fdKDMIw@*q_$6DQ zW?Av;%K{~54dN}E-gTw*9&CQ4Q7{PX{pO-)C9wBRVfYK9Y0ur;s>b@gJigc#|5sI!F!jQ_KWL})yl({lEH!x zcU^?xPQnXpp!R!(-U2GPaSZ;ZFJn52kxb` zm}g}TZ&>ZnzuKqB>xev_#aN5q(}v5JGU|5YIZI}a-Og7A?1@KhnmLAOebIW?t_0lX zBIhg@Hfdy%*-V{S%nVvu*a=0425dfDNxlo0x38jK>uY#+$PUJ|xq&&EKJmkQ*rz`B zzQ|8~&vBs}MjI1HZ>wRvY9hj?TIt;a^JP=7Ma7)lb!E163=MP|ya=xKNr#&Y6*EOD z1_)N5XFv}qX~ta>%k3l7L|nY?SGC3wd1WTE7sXSEm>ozEG{rxAYJWH^j3u5`aa#3J zlF6;*(K>lG9w&U(QQeu}k+jz$uewcYlUih|bS?)_ixOHUIC}nWZ^MesjB9v=6#~Y- zOrabzQEA$*71d|L6EHimDycR@6@o;(@^z+Ihj)#aKzJMdw9l2aB=W*{J+J zLPfqoJF~*a^hO13(KD`f`qbUQvbBWqTtsBu1|6r#CXI6X6?(Naoi?3>X30ecNNC%b zb<3%?H9MrTfZ;5nd2_l;fbGB`{Khz6&HAYI;XVr28lCtMA!^2P>?ypyC<@?1sWaGP zDPQB3WjA`Rif{hCg#7n>xAEc)kbgA;cJk9Y^4T$2SkertRj8*^dJ_Y{9QvDw;Yaix z(r~9|+i7;rxv8z!}GAScS2^Uq!QLt;;o04#pN&@rDFAY#8VUd17#H* zR#t+Y5@tZ4!<#eF;2qa}2Q%dOGx$gL?%i+!Lig7X&0(`kPNj zy=MnLP}!UB+B2C!*1jynaA5h2$e;UZQvN!_22v_vd1 z?{?{)b?7xQjMb&2?k(xNurIi?`BdYFn1DR^=# zCW~!>#D>+oQr|mhofFt+V^hJt)xKL}YouMb%wDu$18?74%i-)r45J}=HX4BfL+RA2 z<&y63A$%$4`IeD=gXV+=&?y&&X+;J-7cCm-r>bx9rpo4Pf?1Ey{g)bLP`Cz@E5yw6 zKoV1#J9268rTw@s8{A%mmEPWvfHvEWj&+l4?UEPn)k%LYw~S}#Ac-Q4ftx*2^BvB0 zN2jeL9bfb=*@%gJ^mrFLWw%0NEtHF7B$%eZMWzC)2Zp!olx(?R6wbUCa_c`M;RNaf zb{CN8$&koO7tfzx`S?IMUy2{nAtKA&XZ!s6@Nr~h=e6)~PYZqkvf~>k3rLfgT0k8j zO)u@4M#JZ0lWX^Z6;bEYEn4P^iMU#cttCVHl82E_1@tXnd>j(}BwuGq<4hW?>LUC~!1_$?HIG@80E&`N*9gf>Q}X6d@V96qEu&uY6r^QKlJ z5uqB|bDz;+k9U;cxYdO`F%QW*M60J|CbpiERK+?wGA9Ma#}3-=!xHjFn`qb9bacV? z&8HP(!^9`7Dts(ek2)t*4h*W7u6oTh8pk1Q`p5(@bXwOHJ?qGx9rGkT?ltATF2lML zt;j^Q(nAjua_TG^9-tVy01EaB@iXuvg&oG()H5v%4UpkjB=q6FS&V2e5BF*HQoJQA zABYe#=i|SK=96J+xX;pWd3nHy1uB%bvdU0|SBEkSKd`7Uud%d#>sgkXKf85swaTiw za=v?|Pl7)>P%^JkQ}p7IWyM+IJtS>yQ>wj#Hbww?PZnDH9DycRppC~5Rv9Cl5_q9o zCk*3UH9M0Yx*C-q%;C^!$5nFoaz5k%4g84h5AUsNSXNMb5=7~J$(nH&FxHe%;d`CPPvBvIH_3f@1@Cp4gVwef!r5cU0S6wA+ccWuDTHLNQ5>+vbgNT@ojlcnB~3jW3RL zUUNuMLDvCD|Vd7L!><8I0ceX?LfVDAUK>6bg+J?_ar39HXi?Tu}4u+s?+Y zs=C_}b&nno3IAn$KgF)1Hl|UzI2I-g#|>8ks{BoShu1^lq-W(`ym1muwob#pw~t(C zTgkM#S@iPUp%UE(@wIX48IoiIPpT_}*09NBg&4fmkFO4_ntewt^w@kic1R6ljTTvY z-f0DanwqxVJ{%U0t*T8OH)|@78}3uKLZj~~6BpPBQ;#IB>}H|T#5nJo&ph#w`Swvf zSq2NVCOUUB1oK8WZ@!36$4&zy3a35Mo1n0D3+4|iYoz&B#b_bh1KDm_>EuM zOD`@2%~I2*+v6j>7L+LpL9-tfI;CTAr$lPypOD?A6cA|=B>I~*&s&)4)%@ITMcMNE ztPB)V$)c`%{o}l+EJ#f>p{kH*-J#F$+3IIhEk{O-Svy0h*j`CtKYX{VSvFO_Y

B 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½WaZnCTtFL{t#^`NEKebwpsvtKx(!T3O1twr)0^ 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 literal 0 HcmV?d00001 diff --git a/docs/docs/credits.md b/docs/docs/credits.md index f24a29a32e..312856ef68 100644 --- a/docs/docs/credits.md +++ b/docs/docs/credits.md @@ -44,6 +44,7 @@ InvenTree relies on the following Python libraries: | [coveralls](https://pypi.org/project/coveralls/) | MIT | coverage uploader | | [django-formtools](https://pypi.org/project/django-formtools/) | MIT | better forms / wizards | | [django-allauth](https://pypi.org/project/django-allauth/) | MIT | SSO for django | +| [pint](https://pint.readthedocs.io/en/stable/) | [licence](https://github.com/hgrecco/pint/blob/master/LICENSE) | Physical unit conversion | ## Frontend libraries diff --git a/docs/docs/part/parameter.md b/docs/docs/part/parameter.md index 8b60af024d..bffa321843 100644 --- a/docs/docs/part/parameter.md +++ b/docs/docs/part/parameter.md @@ -4,26 +4,30 @@ title: Part Parameters ## Part Parameters +A part *parameter* describes a particular "attribute" or "property" of a specific part. + 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. +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 %} -### Create Template +## Parameter Templates -A *Parameter Template* is required for each part parameter. +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). + +### Create Template 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 "New Parameter" button -- fill out the `Create Part Parameter Template` form: `Name` (required) and `Units` (optional) fields -- finally click on the "Submit" button. +- Navigate to the "Settings" page +- Click on the "Parts" tab +- Scroll down to the "Part Parameter Templates" section +- 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. ### Create Parameter @@ -37,9 +41,9 @@ To add a parameter, navigate to a specific part detail page, click on the "Param Select the parameter `Template` you would like to use for this parameter, fill-out the `Data` field (value of this specific parameter) and click the "Submit" button. -### Parametric Tables +## Parametric Tables -Parametric tables gather all parameters from all parts inside a category to be sorted and filtered. +Parametric tables gather all parameters from all parts inside a particular [part category](./part.md#part-category) to be sorted and filtered. To access a category's parametric table, click on the "Parameters" tab within the category view: @@ -52,3 +56,36 @@ Below is an example of capacitor parametric table filtered with `Package Type = {% 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: + +{% with id="sort_by_param", url="part/part_sort_by_param.png", description="Sort by Parameter" %} +{% include 'img.html' %} +{% endwith %} + +## Parameter Units + +The *units* field (which is defined against a [parameter template](#parameter-templates)) defines the base unit of that template. Any parameters which are created against that unit *must* be specified in compatible units. Unit conversion is implemented using the [pint](https://pint.readthedocs.io/en/stable/) Python library. This conversion library is used to perform two main functions: + +- Enforce use of compatible units when creating part parameters +- Perform conversion to the base template unit + +The in-built conversion functionality means that parameter values can be input in different dimensions - *as long as the dimension is compatible with the base template units*. + +### Incompatible Units + +If a part parameter is created with a value which is incompatible with the units specified for the template, it will be rejected: + +{% with id="invalid_units", url="part/part_invalid_units.png", description="Invalid Parameter Units" %} +{% include 'img.html' %} +{% endwith %} + +### Parameter Sorting + +Parameter sorting takes unit conversion into account, meaning that values provided in different (but compatible) units are sorted correctly: + +{% with id="sort_by_param_units", url="part/part_sorting_units.png", description="Sort by Parameter Units" %} +{% include 'img.html' %} +{% endwith %} diff --git a/requirements.in b/requirements.in index 1853bac647..1a27bb6b6e 100644 --- a/requirements.in +++ b/requirements.in @@ -33,6 +33,7 @@ feedparser # RSS newsfeed parser gunicorn # Gunicorn web server pdf2image # PDF to image conversion pillow # Image manipulation +pint # Unit conversion python-barcode[images] # Barcode generator qrcode[pil] # QR code generator rapidfuzz==0.7.6 # Fuzzy string matching diff --git a/requirements.txt b/requirements.txt index 2b8149a19f..8204d3b0e4 100644 --- a/requirements.txt +++ b/requirements.txt @@ -186,6 +186,8 @@ pillow==9.5.0 # python-barcode # qrcode # weasyprint +pint==0.21 + # via -r requirements.in py-moneyed==1.2 # via # -r requirements.in