InvenTree/InvenTree/part
Oliver 648faf4ed2
Reference fields (#3267)
* Adds a configurable 'reference pattern' to the IndexingReferenceMixin class

* Expand tests for reference_pattern validator:

- Prevent inclusion of illegal characters
- Prevent multiple groups of hash (#) characters
- Add unit tests

* Validator now checks for valid strftime formatter

* Adds build order reference pattern

* Adds function for creating a valid regex from the supplied pattern

- More unit tests
- Use it to validate BuildOrder reference field

* Refactoring the whole thing again - try using python string.format

* remove datetime-matcher from requirements.txt

* Add some more formatting helper functions

- Construct a regular expression from a format string
- Extract named values from a string, based on a format string

* Fix validator for build order reference field

* Adding unit tests for the new format string functionality

* Adds validation for reference fields

* Require the 'ref' format key as part of a valid reference pattern

* Extend format extraction to allow specification of integer groups

* Remove unused import

* Fix requirements

* Add method for generating the 'next' reference field for a model

* Fix function for generating next BuildOrder reference value

- A function is required as class methods cannot be used
- Simply wraps the existing class method

* Remove BUILDORDER_REFERENCE_REGEX setting

* Add unit test for build order reference field validation

* Adds unit testing for extracting integer values from a reference field

* Fix bugs from previous commit

* Add unit test for generation of default build order reference

* Add data migration for BuildOrder model

- Update reference field with old prefix
- Construct new pattern based on old prefix

* Adds unit test for data migration

- Check that the BuildOrder reference field is updated as expected

* Remove 'BUILDORDER_REFERENCE_PREFIX' setting

* Adds new setting for SalesOrder reference pattern

* Update method by which next reference value is generated

* Improved error handling in api_tester code

* Improve automated generation of order reference fields

- Handle potential errors
- Return previous reference if something goes wrong

* SalesOrder reference has now been updated also

- New reference pattern setting
- Updated default and validator for reference field
- Updated serializer and API
- Added unit tests

* Migrate the "PurchaseOrder" reference field to the new system

* Data migration for SalesOrder and PurchaseOrder reference fields

* Remove PURCHASEORDER_REFERENCE_PREFIX

* Remove references to SALESORDER_REFERENCE_PREFIX

* Re-add maximum value validation

* Bug fixes

* Improve algorithm for generating new reference

- Handle case where most recent reference does not conform to the reference pattern

* Fixes for 'order' unit tests

* Unit test fixes for order app

* More unit test fixes

* More unit test fixing

* Revert behaviour for "extract_int" clipping function

* Unit test value fix

* Prevent build order notification if we are importing records
2022-07-11 00:01:46 +10:00
..
fixtures Allow searching of BOM List API endpoint (#3296) 2022-07-06 10:09:58 +10:00
migrations Update requirements (#3228) 2022-06-28 22:12:00 +10:00
templates/part Virtual part fix (#3265) 2022-06-28 13:39:27 +10:00
templatetags Fix translation issue with javascript (#3246) 2022-06-25 10:50:26 +10:00
__init__.py Docstring checks in QC checks (#3089) 2022-06-02 01:37:39 +10:00
admin.py Merge pull request from GHSA-7rq4-qcpw-74gq 2022-06-15 18:32:35 +10:00
api.py BOM Table Improvements (#3310) 2022-07-08 14:13:00 +10:00
apps.py Docstring checks in QC checks (#3089) 2022-06-02 01:37:39 +10:00
bom.py Docstring checks in QC checks (#3089) 2022-06-02 01:37:39 +10:00
filters.py Part page loading improvements (#3185) 2022-06-17 21:26:28 +10:00
forms.py Set part category (#3134) 2022-06-06 13:00:30 +10:00
models.py Prevent calculation of 'allocation_count' before model is saved (#3235) 2022-06-22 20:50:21 +10:00
serializers.py BOM Table Improvements (#3310) 2022-07-08 14:13:00 +10:00
settings.py Docstring checks in QC checks (#3089) 2022-06-02 01:37:39 +10:00
tasks.py Overdue order notification (#3114) 2022-06-06 19:12:29 +10:00
test_api.py Reference fields (#3267) 2022-07-11 00:01:46 +10:00
test_bom_export.py Docstring checks in QC checks (#3089) 2022-06-02 01:37:39 +10:00
test_bom_import.py Add more checks to pre-commit (#3132) 2022-06-06 08:56:52 +10:00
test_bom_item.py Docstring checks in QC checks (#3089) 2022-06-02 01:37:39 +10:00
test_category.py Docstring checks in QC checks (#3089) 2022-06-02 01:37:39 +10:00
test_migrations.py Docstring checks in QC checks (#3089) 2022-06-02 01:37:39 +10:00
test_param.py Docstring checks in QC checks (#3089) 2022-06-02 01:37:39 +10:00
test_part.py Setting caching (#3178) 2022-06-12 10:56:16 +10:00
test_views.py Set part category (#3134) 2022-06-06 13:00:30 +10:00
urls.py Converting more forms to the API (#3181) 2022-06-11 21:53:26 +10:00
views.py Converting more forms to the API (#3181) 2022-06-11 21:53:26 +10:00