mirror of
				https://github.com/inventree/InvenTree.git
				synced 2025-10-30 20:55:42 +00:00 
			
		
		
		
	[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
This commit is contained in:
		| @@ -15,11 +15,11 @@ from django.urls import reverse | ||||
| from django.utils.translation import gettext_lazy as _ | ||||
|  | ||||
| import build.models | ||||
| import InvenTree.models | ||||
| import part.models | ||||
| import stock.models | ||||
| from InvenTree.helpers import normalize, validateFilterString | ||||
| from InvenTree.helpers_model import get_base_url | ||||
| from InvenTree.models import MetadataMixin | ||||
| from plugin.registry import registry | ||||
|  | ||||
| try: | ||||
| @@ -88,7 +88,7 @@ class WeasyprintLabelMixin(WeasyTemplateResponseMixin): | ||||
|         self.pdf_filename = kwargs.get('filename', 'label.pdf') | ||||
|  | ||||
|  | ||||
| class LabelTemplate(MetadataMixin, models.Model): | ||||
| class LabelTemplate(InvenTree.models.InvenTreeMetadataModel): | ||||
|     """Base class for generic, filterable labels.""" | ||||
|  | ||||
|     class Meta: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user