InvenTree/InvenTree/stock
Oliver 9e77b9fc56
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 <code@mjmair.com>
2023-05-19 13:24:55 +10:00
..
fixtures Extend functionality of custom validation plugins (#4391) 2023-03-07 22:43:12 +11:00
migrations Parameter filtering (#4823) 2023-05-19 13:24:55 +10:00
templates/stock Build consume stock (#4817) 2023-05-16 21:25:02 +10:00
__init__.py Docstring checks in QC checks (#3089) 2022-06-02 01:37:39 +10:00
admin.py Code style improvements (#4683) 2023-04-28 20:49:53 +10:00
api.py Build consume stock (#4817) 2023-05-16 21:25:02 +10:00
apps.py Docstring checks in QC checks (#3089) 2022-06-02 01:37:39 +10:00
filters.py Tree query improvements (#3443) 2022-08-01 13:43:27 +10:00
models.py Adds ability to partially scrap build outputs (#4846) 2023-05-18 14:04:57 +10:00
serializers.py Build consume stock (#4817) 2023-05-16 21:25:02 +10:00
test_api.py Cleanup / consolidate unit testing code (#4831) 2023-05-17 07:35:26 +10:00
test_migrations.py Cleanup / consolidate unit testing code (#4831) 2023-05-17 07:35:26 +10:00
test_views.py Cleanup / consolidate unit testing code (#4831) 2023-05-17 07:35:26 +10:00
tests.py Cleanup / consolidate unit testing code (#4831) 2023-05-17 07:35:26 +10:00
urls.py [Feature] Add RMA support (#4488) 2023-03-29 10:35:43 +11:00
views.py Client side QR Codes (#4357) 2023-02-17 13:33:36 +11:00