summaryrefslogtreecommitdiff
path: root/ishtar/furnitures/models.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2011-04-21 23:20:25 +0200
committerÉtienne Loks <etienne.loks@peacefrogs.net>2011-04-21 23:20:25 +0200
commitca92ada04a5440c7bcfb9ec6f1bae3fc9f3902ab (patch)
treeb51c15fa8efcc794eb2737e2e4410a5eea51a894 /ishtar/furnitures/models.py
parent4584dcbfcf82a3680b430f72e1f533f1160cf8f3 (diff)
downloadIshtar-ca92ada04a5440c7bcfb9ec6f1bae3fc9f3902ab.tar.bz2
Ishtar-ca92ada04a5440c7bcfb9ec6f1bae3fc9f3902ab.zip
First version of context record window (refs #376)
Diffstat (limited to 'ishtar/furnitures/models.py')
-rw-r--r--ishtar/furnitures/models.py79
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