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