diff options
Diffstat (limited to 'ishtar/furnitures/models.py')
| -rw-r--r-- | ishtar/furnitures/models.py | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/ishtar/furnitures/models.py b/ishtar/furnitures/models.py index d3b942102..28420118b 100644 --- a/ishtar/furnitures/models.py +++ b/ishtar/furnitures/models.py @@ -22,7 +22,8 @@ Models description """ import datetime -from django.core.exceptions import ObjectDoesNotExist +from django.core.exceptions import ObjectDoesNotExist, ValidationError +from django.core.validators import validate_slug from django.utils.translation import ugettext_lazy as _, ugettext from django.contrib.auth.models import User @@ -45,6 +46,8 @@ class GeneralType(models.Model): Abstract class for "types" """ label = models.CharField(_(u"Label"), max_length=100) + txt_idx = models.CharField(_(u"Textual identifier"), + validators=[validate_slug], max_length=30, unique=True) comment = models.TextField(_(u"Comment"), blank=True, null=True) available = models.BooleanField(_(u"Available")) @@ -54,6 +57,11 @@ class GeneralType(models.Model): def __unicode__(self): return self.label + @classmethod + def get_types(cls): + for item in cls.objects.filter(available=True).all(): + yield (item.id, _(item.label)) + class BaseHistorizedItem(models.Model): history_modifier = models.ForeignKey(User, related_name='+', verbose_name=_(u"Last modifier")) @@ -156,7 +164,14 @@ class Person(Address, OwnPerms) : ) def __unicode__(self): - return u"%s %s" % (self.name, self.surname) + return u"%s %s - %s" % (self.name, self.surname, self.email) + + @classmethod + def valid_id(cls, value): + try: + cls.objects.get(pk=value) + except ObjectDoesNotExist: + raise ValidationError(_(u"Not a valid person.")) class IshtarUser(models.Model): user = models.ForeignKey(User, unique=True, related_name='profile', |
