InvenTree/InvenTree/company
Oliver 2b9816d1a3
[Plugin] Enhanced custom validation (#6410)
* Use registry.get_plugin()

- Instead of registry.plugins.get()
- get_plugin checks registry hash
- performs registry reload if necessary

* Add PluginValidationMixin class

- Allows the entire model to be validated via plugins
- Called on model.full_clean()
- Called on model.save()

* Update Validation sample plugin

* Fix for InvenTreeTree models

* Refactor build.models

- Expose models to plugin validation

* Update stock.models

* Update more models

- common.models
- company.models

* Update more models

- label.models
- order.models
- part.models

* More model updates

* Update docs

* Fix for potential plugin edge case

- plugin slug is globally unique
- do not use get_or_create with two lookup fields
- will throw an IntegrityError if you change the name of a plugin

* Inherit DiffMixin into PluginValidationMixin

- Allows us to pass model diffs through to validation
- Plugins can validate based on what has *changed*

* Update documentation

* Add get_plugin_config helper function

* Bug fix

* Bug fix

* Update plugin hash when calling set_plugin_state

* Working on unit testing

* More unit testing

* Move get_plugin_config into registry.py

* Move extract_int into InvenTree.helpers

* Fix log formatting

* Update model definitions

- Ensure there are no changes to the migrations

* Comment out format line

* Fix access to get_plugin_config

* Fix tests for SimpleActionPlugin

* More unit test fixes
2024-02-06 22:00:22 +11:00
..
fixtures Add Metadata to more models (#4898) 2023-06-02 19:26:20 +10:00
migrations PO barcode- add line (#5949) 2023-11-21 08:26:32 +11:00
templates/company Remove {% jstrans %} tag (#6298) 2024-01-21 22:47:47 +11:00
__init__.py Docstring checks in QC checks (#3089) 2022-06-02 01:37:39 +10:00
admin.py Bump to Dj 4.x (#6173) 2024-02-06 13:30:50 +11:00
api.py Move more paths to basic path (#6251) 2024-01-18 17:05:10 +11:00
apps.py [CI] docstrings (#6172) 2024-01-11 14:40:07 +11:00
models.py [Plugin] Enhanced custom validation (#6410) 2024-02-06 22:00:22 +11:00
serializers.py [PUI] Details Panel components (#6040) 2024-01-31 10:37:42 +11:00
test_api.py [CI] docstrings (#6172) 2024-01-11 14:40:07 +11:00
test_migrations.py [CI] docstrings (#6172) 2024-01-11 14:40:07 +11:00
test_supplier_parts.py [CI] docstrings (#6172) 2024-01-11 14:40:07 +11:00
test_views.py [CI] docstrings (#6172) 2024-01-11 14:40:07 +11:00
tests.py [CI] docstrings (#6172) 2024-01-11 14:40:07 +11:00
urls.py Move more paths to basic path (#6251) 2024-01-18 17:05:10 +11:00
views.py [CI] docstrings (#6172) 2024-01-11 14:40:07 +11:00