diff options
Diffstat (limited to 'ishtar_common/models.py')
| -rw-r--r-- | ishtar_common/models.py | 40 | 
1 files changed, 34 insertions, 6 deletions
| diff --git a/ishtar_common/models.py b/ishtar_common/models.py index e572045db..cb069216d 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -238,7 +238,7 @@ class GeneralType(models.Model):      """      label = models.CharField(_(u"Label"), max_length=100)      txt_idx = models.CharField(_(u"Textual ID"), -                         validators=[validate_slug], max_length=30, unique=True) +                         validators=[validate_slug], max_length=100, unique=True)      comment = models.TextField(_(u"Comment"), blank=True, null=True)      available = models.BooleanField(_(u"Available"), default=True)      HELP_TEXT = u"" @@ -365,7 +365,7 @@ class GeneralType(models.Model):              self.label = u" ".join(u" ".join(self.txt_idx.split('-')                                                          ).split('_')).title()          if not self.txt_idx: -            self.txt_idx = slugify(self.label) +            self.txt_idx = slugify(self.label)[:100]          # clean old keys          if self.pk: @@ -880,9 +880,22 @@ class DocumentTemplate(models.Model):          missing = ooo_replace(self.template, output_name, values)          return output_name +class State(models.Model): +    label = models.CharField(_(u"Label"), max_length=30) +    number = models.CharField(_(u"Number"), unique=True, max_length=3) + +    class Meta: +        verbose_name = _(u"State") +        ordering = ['number'] + +    def __unicode__(self): +        return self.label +  class Department(models.Model):      label = models.CharField(_(u"Label"), max_length=30)      number = models.CharField(_(u"Number"), unique=True, max_length=3) +    state = models.ForeignKey('State', verbose_name=_(u"State"), blank=True, +                              null=True)      class Meta:          verbose_name = _(u"Department") @@ -890,7 +903,7 @@ class Department(models.Model):          ordering = ['number']      def __unicode__(self): -        return u"%s (%s)" % (self.label, self.number) +        return self.label  class Address(BaseHistorizedItem):      address = models.TextField(_(u"Address"), null=True, blank=True) @@ -1557,10 +1570,13 @@ class Person(Address, Merge, OwnPerms, ValueGetter) :          values = [unicode(getattr(self, attr))                     for attr in ('surname', 'name')                                 if getattr(self, attr)] -        if not values: -            values = [self.raw_name or ""] +        if not values and self.raw_name: +            values = [self.raw_name]          if self.attached_to: -            values.append(u"- " + unicode(self.attached_to)) +            attached_to = unicode(self.attached_to) +            if values: +                values.append(u'-') +            values.append(attached_to)          return u" ".join(values)      def get_values(self, prefix=''): @@ -1594,6 +1610,9 @@ class Person(Address, Merge, OwnPerms, ValueGetter) :              self.merge_key += "-" + self.attached_to.merge_key          self.merge_key = self.merge_key[:300] +    def is_natural(self): +        return not self.attached_to +      def has_right(self, right_name):          if '.' in right_name:              right_name = right_name.split('.')[-1] @@ -1628,6 +1647,15 @@ class Person(Address, Merge, OwnPerms, ValueGetter) :                                 if getattr(self, attr)]          return slugify(u"-".join(values)) +    def save(self, *args, **kwargs): +        super(Person, self).save(*args, **kwargs) +        if hasattr(self, 'responsible_town_planning_service'): +            for fle in self.responsible_town_planning_service.all(): +                fle.save() # force update of raw_town_planning_service +        if hasattr(self, 'general_contractor'): +            for fle in self.general_contractor.all(): +                fle.save() # force update of raw_general_contractor +  class IshtarUser(User):      person = models.ForeignKey(Person, verbose_name=_(u"Person"), unique=True,                                 related_name='ishtaruser') | 
