mirror of
				https://github.com/inventree/InvenTree.git
				synced 2025-10-31 13:15:43 +00:00 
			
		
		
		
	Catch recursive tree error for part / variant relationship
This commit is contained in:
		| @@ -27,6 +27,7 @@ from markdownx.models import MarkdownxField | ||||
| from django_cleanup import cleanup | ||||
|  | ||||
| from mptt.models import TreeForeignKey, MPTTModel | ||||
| from mptt.exceptions import InvalidMove | ||||
| from mptt.managers import TreeManager | ||||
|  | ||||
| from stdimage.models import StdImageField | ||||
| @@ -426,7 +427,12 @@ class Part(MPTTModel): | ||||
|  | ||||
|         self.full_clean() | ||||
|  | ||||
|         super().save(*args, **kwargs) | ||||
|         try: | ||||
|             super().save(*args, **kwargs) | ||||
|         except InvalidMove: | ||||
|             raise ValidationError({ | ||||
|                 'variant_of': _('Invalid choice for parent part'), | ||||
|             }) | ||||
|  | ||||
|         if add_category_templates: | ||||
|             # Get part category | ||||
|   | ||||
| @@ -350,6 +350,12 @@ function constructFormBody(fields, options) { | ||||
|     for(field in fields) { | ||||
|         fields[field].name = field; | ||||
|  | ||||
|          | ||||
|         // If any "instance_filters" are defined for the endpoint, copy them across (overwrite) | ||||
|         if (fields[field].instance_filters) { | ||||
|             fields[field].filters = Object.assign(fields[field].filters || {}, fields[field].instance_filters); | ||||
|         } | ||||
|  | ||||
|         var field_options = displayed_fields[field]; | ||||
|  | ||||
|         // Copy custom options across to the fields object | ||||
|   | ||||
		Reference in New Issue
	
	Block a user