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 9f7261010..a21df0529 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -239,7 +239,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"" @@ -366,7 +366,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: @@ -881,9 +881,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") @@ -891,7 +904,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) @@ -1590,10 +1603,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=''): @@ -1627,6 +1643,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] @@ -1661,6 +1680,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') |