From db834802e372f3f136044f90d58617f3c3e5cb6e Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Tue, 20 Aug 2019 13:08:06 +1000 Subject: [PATCH] Add uniqueness check for PartParameterTemplate name field - Case insensitive --- InvenTree/part/models.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/InvenTree/part/models.py b/InvenTree/part/models.py index ab9877e42c..f1a1747e44 100644 --- a/InvenTree/part/models.py +++ b/InvenTree/part/models.py @@ -1050,6 +1050,21 @@ class PartParameterTemplate(models.Model): s += " ({units})".format(units=self.units) return s + def validate_unique(self, exclude=None): + """ Ensure that PartParameterTemplates cannot be created with the same name. + This test should be case-insensitive (which the unique caveat does not cover). + """ + + super().validate_unique(exclude) + + try: + others = PartParameterTemplate.objects.exclude(id=self.id).filter(name__iexact=self.name) + + if others.exists(): + msg = _("Parameter template name must be unique") + raise ValidationError({"name": msg}) + except PartParameterTemplate.DoesNotExist: + pass name = models.CharField(max_length=100, help_text='Parameter Name')