summaryrefslogtreecommitdiff
path: root/ishtar/furnitures/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar/furnitures/models.py')
-rw-r--r--ishtar/furnitures/models.py34
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: