2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-05-09 16:58:49 +00:00

28 Commits

Author SHA1 Message Date
Oliver
abeb85cbb3
Extend functionality of custom validation plugins (#4391)
* Pass "Part" instance to plugins when calling validate_serial_number

* Pass part instance through when validating IPN

* Improve custom part name validation

- Pass the Part instance through to the plugins
- Validation is performed at the model instance level
- Updates to sample plugin code

* Pass StockItem through when validating batch code

* Pass Part instance through when calling validate_serial_number

* Bug fix

* Update unit tests

* Unit test fixes

* Fixes for unit tests

* More unit test fixes

* More unit tests

* Furrther unit test fixes

* Simplify custom batch code validation

* Further improvements to unit tests

* Further unit test
2023-03-07 22:43:12 +11:00
Oliver
906ae218aa
[Plugin] Allow custom plugins for running validation routines (#3776)
* Adds new plugin mixin for performing custom validation steps

* Adds simple test plugin for custom validation

* Run part name and IPN validators checks through loaded plugins

* Expose more validation functions to plugins:

- SalesOrder reference
- PurchaseOrder reference
- BuildOrder reference

* Remove custom validation of reference fields

- For now, this is too complex to consider given the current incrementing-reference implementation
- Might revisit this at a later stage.

* Custom validation of serial numbers:

- Replace "checkIfSerialNumberExists" method with "validate_serial_number"
- Pass serial number through to custom plugins
- General code / docstring improvements

* Update unit tests

* Update InvenTree/stock/tests.py

Co-authored-by: Matthias Mair <code@mjmair.com>

* Adds global setting to specify whether serial numbers must be unique globally

- Default is false to preserve behaviour

* Improved error message when attempting to create stock item with invalid serial numbers

* Add more detail to existing serial error message

* Add unit testing for serial number uniqueness

* Allow plugins to convert a serial number to an integer (for optimized sorting)

* Add placeholder plugin methods for incrementing and decrementing serial numbers

* Typo fix

* Add improved method for determining the "latest" serial number

* Remove calls to getLatestSerialNumber

* Update validate_serial_number method

- Add option to disable checking for duplicates
- Don't pass optional StockItem through to plugins

* Refactor serial number extraction methods

- Expose the "incrementing" portion to external plugins

* Bug fixes

* Update unit tests

* Fix for get_latest_serial_number

* Ensure custom serial integer values are clipped

* Adds a plugin for validating and generating hexadecimal serial numbers

* Update unit tests

* Add stub methods for batch code functionality

* remove "hex serials" plugin

- Was simply breaking unit tests

* Allow custom plugins to generate and validate batch codes

- Perform batch code validation when StockItem is saved
- Improve display of error message in modal forms

* Fix unit tests for stock app

* Log message if plugin has a duplicate slug

* Unit test fix

Co-authored-by: Matthias Mair <code@mjmair.com>
2022-10-18 23:50:07 +11:00
Oliver
187707c892
Barcode Refactor (#3640)
* define a simple model mixin class for barcode

* Adds generic function for assigning a barcode to a model instance

* StockItem model now implements the BarcodeMixin class

* Implement simple unit tests for new code

* Fix unit tests

* Data migration for uid field

* Remove references to old 'uid' field

* Migration for removing old uid field from StockItem model

* Bump API version

* Change lookup_barcode to be a classmethod

* Change barcode_model_type to be a class method

* Cleanup for generic barcode scan and assign API:

- Raise ValidationError as appropriate
- Improved unit testing
- Groundwork for future generic implementation

* Further unit tests for barcode scanning

* Adjust error messages for compatibility

* Unit test fix

* Fix hash_barcode function

- Add unit tests to ensure it produces the same results as before the refactor

* Add BarcodeMixin to Part model

* Remove old format_barcode function from Part model

* Further fixes for unit tests

* Add support for assigning arbitrary barcode to Part instance

- Simplify barcode API
- Add more unit tests

* More unit test fixes

* Update unit test

* Adds generic endpoint for unassigning barcode data

* Update web dialog for unlinking a barcode

* Template cleanup

* Add Barcode mixin to StockLocation class

* Add some simple unit tests for new model mixin

* Support assigning / unassigning barcodes for StockLocation

* remove failing outdated test

* Update template to integrate new barcode support for StockLocation

* Add BarcodeMixin to SupplierPart model

* Adds QR code view for SupplierPart

* Major simplification of barcode API endpoints

- Separate existing barcode plugin into two separate classes
- Simplify and consolidate the response from barcode scanning
- Update unit testing

* Yet more unit test fixes

* Yet yet more unit test fixes
2022-09-15 14:14:51 +10:00
Matthias Mair
74726f0fda fix endline 2022-05-20 13:35:07 +02:00
Matthias Mair
93b6934127 fix trailing 2022-05-20 13:20:55 +02:00
Oliver Walters
f9a0bf822e Add more fixture data
- Stock items for part 100 (Bob)
2022-04-02 09:54:55 +11:00
Matthias
bd2b279390
add coverage to barcode api 2022-03-13 19:38:57 +01:00
Matthias
a68ee5ce0b
fix API assertations 2022-03-12 03:52:50 +01:00
Matthias
d8c20894ce
add uid to stockitem 2022-03-12 03:10:24 +01:00
Oliver
31dbb9563b Add some unit tests for the new endpoint 2021-12-20 21:25:27 +11:00
Oliver
9c9407b1ab Add unit test for catching bug
- Turns out that in an image was uploaded with more than ~2000 vertical pixels it would crash
- Smaller images worked fine?
2021-08-25 14:48:45 +10:00
Oliver
bb8b85c375 Separate purchase_price and purchase_price_currency for StockItem serializer
- Add "purchase_price_string" for a read-only stringified representation
- Unit testing
2021-08-23 21:44:12 +10:00
d5b65e6e41 yaml! 2021-05-06 14:38:13 +02:00
eeintech
f26f1c38a2 Merged master 2021-01-07 13:50:29 -05:00
Oliver Walters
d1ce0f062e Improve unit testing for StockItem API 2021-01-04 01:22:43 +11:00
eeintech
33dfecfdef Added create view test cases for stock ownership 2020-12-03 13:29:59 -05:00
Oliver Walters
f1b83f1c17 Update fixtues for unit testing 2020-11-01 15:34:42 +11:00
Oliver Walters
95fadf1300 Update unit testing 2020-10-30 23:08:12 +11:00
Oliver Walters
f409bfd72b More fixes 2020-09-28 19:41:41 +10:00
Oliver Walters
911727f7b7 Update test fixtures
- Can't assume that pk values will be assigned sensibly!
- Need to hard-code them in
2020-09-02 19:47:07 +10:00
Oliver Walters
6cb017bbfd Add functions to test if a stock item has passed all tests 2020-05-17 22:03:55 +10:00
Oliver Walters
2bb9fd9955 Add some unit testing for the new model 2020-05-16 20:27:01 +10:00
Oliver Walters
ea88a03b5a More serial number validation and unit testing
-
2020-05-16 08:43:57 +10:00
Oliver Walters
ae4ebab957 Display table of StockItems which have been split from the current item
- The StockItem list api now allows filtering by 'ancestor'
- Add 'children' tab for StockItem
- Needed to tweak the unit testing fixtures (yay thanks MPTT)
2020-02-17 22:37:55 +11:00
Oliver Walters
dac61eafa2 Fixed tests
- Tree classes now need extra configuration in the fixture
- Check for null pk when cleaning a tree node
2019-09-08 19:41:54 +10:00
Oliver Walters
0813f8cbd5 More test coverage for Stock 2019-05-13 18:45:52 +10:00
Oliver Walters
f410957d8d Refactored Stock test to use fixtures 2019-05-12 21:46:38 +10:00
Oliver Walters
ab6673caa3 Add tests for default location traversal 2019-05-04 23:20:59 +10:00