Fix watchers validator like in stable branch

remotes/origin/enhancement/email-actions
David Barragán Merino 2014-05-20 10:21:29 +02:00
parent 270b48dc45
commit 2b6423a396
1 changed files with 3 additions and 10 deletions

View File

@ -99,18 +99,11 @@ class WatcherValidationSerializerMixin(object):
if values:
project = None
if "project" in attrs and attrs["project"]:
if self.object and attrs["project"] == self.object.project.id:
project = self.object.project
else:
project_model = get_model("projects", "Project")
try:
project = project_model.objects.get(project__id=attrs["project"])
except project_model.DoesNotExist:
pass
project = attrs["project"]
elif self.object:
project = self.object.project
if len(values) != get_model("projects", "Membership").objects.filter(project=project,
user__in=values).count():
model_cls = get_model("projects", "Membership")
if len(values) != model_cls.objects.filter(project=project, user__in=values).count():
raise serializers.ValidationError("Error, some watcher user is not a member of the project")
return attrs