From 93aaf6d133a21e8cfc80d24bbe8c4c5c44acf124 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Espino?= Date: Thu, 6 Mar 2014 19:16:43 +0100 Subject: [PATCH] Limiting the creation of duplicated user/project memberships --- taiga/projects/models.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/taiga/projects/models.py b/taiga/projects/models.py index c6c62cd6..899b4a17 100644 --- a/taiga/projects/models.py +++ b/taiga/projects/models.py @@ -3,6 +3,7 @@ import itertools import collections +from django.core.exceptions import ValidationError from django.db import models from django.db.models.loading import get_model from django.conf import settings @@ -51,6 +52,12 @@ class Membership(models.Model): token = models.CharField(max_length=60, blank=True, null=True, default=None, verbose_name=_("token")) + def clean(self): + # TODO: Review and do it more robust + memberships = Membership.objects.filter(user=self.user, project=self.project) + if memberships.count() > 0 and memberships[0].id != self.id: + raise ValidationError(_('The user is already member of the project')) + class Meta: verbose_name = "membership" verbose_name_plural = "membershipss"