From 9c5bb7ff55c3cc27ec29ca44b5e2cd735a81a244 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Mon, 7 Jul 2014 11:05:16 +0200 Subject: [PATCH] Fixing validator for milestone creation --- taiga/projects/milestones/serializers.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/taiga/projects/milestones/serializers.py b/taiga/projects/milestones/serializers.py index 0a824cfd..d9154101 100644 --- a/taiga/projects/milestones/serializers.py +++ b/taiga/projects/milestones/serializers.py @@ -47,10 +47,17 @@ class MilestoneSerializer(serializers.ModelSerializer): def validate_name(self, attrs, source): """ - Check the milestone name is not duplicated in the project + Check the milestone name is not duplicated in the project on creation """ - qs = models.Milestone.objects.filter(project=attrs["project"], name=attrs[source]) - if qs.exists(): - raise serializers.ValidationError("Name duplicated for the project") + qs = None + # If the milestone exists: + if self.object and attrs.get("name", None): + qs = models.Milestone.objects.filter(project=self.object.project, name=attrs[source]) + + if not self.object and attrs.get("project", None) and attrs.get("name", None): + qs = models.Milestone.objects.filter(project=attrs["project"], name=attrs[source]) + + if qs and qs.exists(): + raise serializers.ValidationError("Name duplicated for the project") return attrs