Limiting the creation of duplicated user/project memberships
parent
786d6fec47
commit
93aaf6d133
|
@ -3,6 +3,7 @@
|
||||||
import itertools
|
import itertools
|
||||||
import collections
|
import collections
|
||||||
|
|
||||||
|
from django.core.exceptions import ValidationError
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.db.models.loading import get_model
|
from django.db.models.loading import get_model
|
||||||
from django.conf import settings
|
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,
|
token = models.CharField(max_length=60, blank=True, null=True, default=None,
|
||||||
verbose_name=_("token"))
|
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:
|
class Meta:
|
||||||
verbose_name = "membership"
|
verbose_name = "membership"
|
||||||
verbose_name_plural = "membershipss"
|
verbose_name_plural = "membershipss"
|
||||||
|
|
Loading…
Reference in New Issue