mirror of
https://github.com/inventree/InvenTree.git
synced 2025-08-09 21:30:54 +00:00
Add uniqueness checking for the BomItemSubstitute model
This commit is contained in:
21
InvenTree/part/migrations/0073_auto_20211013_1048.py
Normal file
21
InvenTree/part/migrations/0073_auto_20211013_1048.py
Normal file
@@ -0,0 +1,21 @@
|
||||
# Generated by Django 3.2.5 on 2021-10-13 10:48
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('part', '0072_bomitemsubstitute'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterModelOptions(
|
||||
name='bomitemsubstitute',
|
||||
options={'verbose_name': 'BOM Item Substitute'},
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='bomitemsubstitute',
|
||||
unique_together={('part', 'bom_item')},
|
||||
),
|
||||
]
|
@@ -2623,6 +2623,26 @@ class BomItemSubstitute(models.Model):
|
||||
part: The part which can be used as a substitute
|
||||
"""
|
||||
|
||||
class Meta:
|
||||
verbose_name = _("BOM Item Substitute")
|
||||
|
||||
# Prevent duplication of substitute parts
|
||||
unique_together = ('part', 'bom_item')
|
||||
|
||||
def validate_unique(self, exclude=None):
|
||||
"""
|
||||
Ensure that this BomItemSubstitute is "unique":
|
||||
|
||||
- It cannot point to the same "part" as the "sub_part" of the parent "bom_item"
|
||||
"""
|
||||
|
||||
super().validate_unique(exclude=exclude)
|
||||
|
||||
if self.part == self.bom_item.sub_part:
|
||||
raise ValidationError({
|
||||
"part": _("Substitute part cannot be the same as the master part"),
|
||||
})
|
||||
|
||||
@staticmethod
|
||||
def get_api_url():
|
||||
return reverse('api-bom-substitute-list')
|
||||
|
Reference in New Issue
Block a user