diff options
Diffstat (limited to 'ishtar/furnitures/models.py')
| -rw-r--r-- | ishtar/furnitures/models.py | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/ishtar/furnitures/models.py b/ishtar/furnitures/models.py index 7e9822b89..abb8c963e 100644 --- a/ishtar/furnitures/models.py +++ b/ishtar/furnitures/models.py @@ -36,11 +36,23 @@ from simple_history.models import HistoricalRecords from ishtar import settings # valid ID validator for models -def valid_id(cls, value): - try: - cls.objects.get(pk=value) - except ObjectDoesNotExist: - raise ValidationError(_(u"Not a valid person.")) +def valid_id(cls): + def func(value): + try: + cls.objects.get(pk=value) + except ObjectDoesNotExist: + raise ValidationError(_(u"Not a valid item.")) + return func + +# unique validator for models +def is_unique(cls, field): + def func(value): + query = {field:value} + try: + assert cls.objects.filter(**query).count() == 0 + except AssertionError: + raise ValidationError(_(u"This item already exist.")) + return func class OwnPerms: """ @@ -137,10 +149,6 @@ class Organization(Address, OwnPerms): ("delete_own_organization", ugettext(u"Can delete own Organization")), ) - @classmethod - def valid_id(cls, value): - valid_id(cls, value) - def __unicode__(self): return self.name @@ -181,10 +189,6 @@ class Person(Address, OwnPerms) : def __unicode__(self): return u"%s %s - %s" % (self.name, self.surname, self.email) - @classmethod - def valid_id(cls, value): - valid_id(cls, value) - class IshtarUser(models.Model): user = models.ForeignKey(User, unique=True, related_name='profile', verbose_name=_(u"User")) @@ -591,10 +595,6 @@ class Town(models.Model): return u"%s (%s)" % (self.name, unicode(self.canton)) return self.name - @classmethod - def valid_id(cls, value): - valid_id(cls, value) - class TreatmentType(GeneralType): virtual = models.BooleanField(_(u"Virtual")) class Meta: |
