Limiting the creation of duplicated user/project memberships

remotes/origin/enhancement/email-actions
Jesús Espino 2014-03-06 19:16:43 +01:00
parent 786d6fec47
commit 93aaf6d133
1 changed files with 7 additions and 0 deletions

View File

@ -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"