diff options
Diffstat (limited to 'ishtar/furnitures/models.py')
| -rw-r--r-- | ishtar/furnitures/models.py | 79 | 
1 files changed, 63 insertions, 16 deletions
diff --git a/ishtar/furnitures/models.py b/ishtar/furnitures/models.py index 9d1873770..f9e9080df 100644 --- a/ishtar/furnitures/models.py +++ b/ishtar/furnitures/models.py @@ -37,6 +37,8 @@ from simple_history.models import HistoricalRecords as BaseHistoricalRecords  from ishtar import settings +JOINT = u" - " +  # HistoricalRecords enhancement: don't save identical versions  class HistoricalRecords(BaseHistoricalRecords):      def create_historical_record(self, instance, type): @@ -289,7 +291,7 @@ class Departement(models.Model):          ordering = ['number']      def __unicode__(self): -        return unicode(self.number) + u" - " + self.label +        return unicode(self.number) + JOINT + self.label  class Address(BaseHistorizedItem):      address = models.TextField(_(u"Address"), null=True, blank=True) @@ -366,7 +368,8 @@ class Person(Address, OwnPerms) :          )      def __unicode__(self): -        lbl = u"%s %s - " % (self.name, self.surname) +        lbl = u"%s %s" % (self.name, self.surname) +        lbl += JOINT          if self.attached_to:              lbl += unicode(self.attached_to)          elif self.email: @@ -474,7 +477,7 @@ class File(BaseHistorizedItem, OwnPerms):                                 unicode(self.numeric_reference))))          items += [unicode(getattr(self, k))[:36]                    for k in ['internal_reference',] if getattr(self, k)] -        return u" - ".join(items) +        return JOINT.join(items)      @classmethod      def get_query_owns(cls, user): @@ -577,7 +580,7 @@ class Operation(BaseHistorizedItem, OwnPerms):              items[0] = unicode(self.towns.all()[0])          items.append("-".join((unicode(self.year),                                 unicode(self.operation_code)))) -        return u" - ".join(items) +        return JOINT.join(items)      def is_own(self, person):          return False @@ -614,12 +617,11 @@ class Parcel(LightHistorizedItem):          verbose_name_plural = _(u"Parcels")      def short_label(self): -        return u" - ".join([unicode(item) for item in \ -                               [self.town, self.section, self.parcel_number] -                                          if item]) +        return JOINT.join([unicode(item) for item in [self.section, +                                                   self.parcel_number] if item])      def __unicode__(self): -        return u" - ".join([unicode(item) for item in \ +        return JOINT.join([unicode(item) for item in \         [self.associated_file, self.operation, self.section, self.parcel_number]                                            if item]) @@ -727,7 +729,25 @@ class ContextRecord(BaseHistorizedItem, OwnPerms):          )      def __unicode__(self): -        return u"%s - %s" % (self.parcel, self.label) +        return JOINT.join((unicode(self.parcel), self.label)) + +    def full_label(self): +        if not self.parcel.operation: +            return unicode(self) +        return self._real_label() or self._temp_label() + +    def _real_label(self): +        if not self.parcel.operation.code_patriarche: +            return +        return JOINT.join((self.parcel.operation.code_patriarche, +                           self.label)) + +    def _temp_label(self): +        if self.parcel.operation.code_patriarche: +            return +        return JOINT.join([unicode(lbl) for lbl in [self.parcel.operation.year, +                                           self.parcel.operation.operation_code, +                                           self.label] if lbl])  class SourceType(GeneralType):      class Meta: @@ -758,7 +778,7 @@ class BaseItem(BaseHistorizedItem, OwnPerms):      label = models.CharField(_(u"Label"), max_length=60)      description = models.TextField(_(u"Description"))      context_record = models.ForeignKey(ContextRecord, -                            verbose_name=_(u"Context Record")) +              related_name='base_items', verbose_name=_(u"Context Record"))      is_isolated = models.NullBooleanField(_(u"Is isolated?"), blank=True,                                            null=True)      documentations = models.ManyToManyField(Source) @@ -777,6 +797,28 @@ class BaseItem(BaseHistorizedItem, OwnPerms):      def __unicode__(self):          return self.label +    def get_last_item(self): +        #TODO: manage virtuals - property(last_item) ? +        return self.item.filter().order_by("-order").all()[0] + +    def full_label(self): +        return self._real_label() or self._temp_label() + +    def _real_label(self): +        if not self.context_record.parcel.operation.code_patriarche: +            return +        return JOINT.join((self.context_record.parcel.operation.code_patriarche, +                           self.context_record.label, +                           self.label)) + +    def _temp_label(self): +        if self.context_record.parcel.operation.code_patriarche: +            return +        return JOINT.join((self.context_record.parcel.year, +                           #TODO:self.index +                           self.context_record.label, +                           self.label)) +  class Item(BaseHistorizedItem, OwnPerms):      TABLE_COLS = ['base_items.context_record.parcel.town',                    'base_items.context_record.parcel.operation.year', @@ -816,6 +858,11 @@ class Item(BaseHistorizedItem, OwnPerms):      def __unicode__(self):          return self.label +    def material_type_label(self): +        #TODO to complete cf. #372 and sheet_contextrecord template +        return unicode(self.material_type) + +  class ParcelOwner(LightHistorizedItem):      owner = models.ForeignKey(Person, verbose_name=_(u"Owner"))      parcel = models.ForeignKey(Parcel, verbose_name=_(u"Parcel")) @@ -827,7 +874,7 @@ class ParcelOwner(LightHistorizedItem):          verbose_name_plural = _(u"Parcel owners")      def __unicode__(self): -        return self.owner + u" - " + self.parcel +        return self.owner + JOINT + self.parcel  class WarehouseType(GeneralType):      class Meta: @@ -900,7 +947,7 @@ related_name='+', verbose_name=_(u"Person in charge of the scientific part"))          )      def __unicode__(self): -        return u" - ".join([unicode(item) +        return JOINT.join([unicode(item)            for item in [self.operation, self.associated_file, self.act_object]            if item]) @@ -932,14 +979,14 @@ if settings.COUNTRY == 'fr':          department = models.ForeignKey(Departement, verbose_name=u"Département")          def __unicode__(self): -            return u"%s - %s" % (self.name, unicode(self.department)) +            return JOINT.join((self.name, unicode(self.department)))      class Canton(models.Model):          name = models.CharField(u"Nom", max_length=30)          arrondissement = models.ForeignKey(Arrondissement,                                             verbose_name=u"Arrondissement")          def __unicode__(self): -            return u"%s - %s" % (self.name, unicode(self.arrondissement)) +            return JOINT.join((self.name, unicode(self.arrondissement)))  class Town(models.Model):      name = models.CharField(_(u"Name"), max_length=100) @@ -1011,7 +1058,7 @@ class Author(models.Model):          verbose_name_plural = _(u"Authors")      def __unicode__(self): -        return self.person + u" - " + self.source +        return self.person + JOINT + self.source  class Property(LightHistorizedItem):      item = models.ForeignKey(Item, verbose_name=_(u"Item")) @@ -1026,5 +1073,5 @@ class Property(LightHistorizedItem):          verbose_name_plural = _(u"Properties")      def __unicode__(self): -        return self.person + u" - " + self.item +        return self.person + JOINT + self.item  | 
