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 |