summaryrefslogtreecommitdiff
path: root/archaeological_operations/models.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2013-07-17 13:58:40 +0200
committerÉtienne Loks <etienne.loks@peacefrogs.net>2013-07-17 13:58:40 +0200
commit38569a486818733cf444e48e781fe60994effecd (patch)
treeaa74812fab75ae6263bb4eecdfd67f79f9ab27be /archaeological_operations/models.py
parent7310fc35ca8375017ce07bdf6bdae801b0803730 (diff)
downloadIshtar-38569a486818733cf444e48e781fe60994effecd.tar.bz2
Ishtar-38569a486818733cf444e48e781fe60994effecd.zip
Improve cached_label managemnent
* more genericity * adapt it to archaeological files
Diffstat (limited to 'archaeological_operations/models.py')
-rw-r--r--archaeological_operations/models.py17
1 files changed, 8 insertions, 9 deletions
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py
index e985400be..7c57087c5 100644
--- a/archaeological_operations/models.py
+++ b/archaeological_operations/models.py
@@ -26,6 +26,8 @@ from django.db.models import Q, Count, Sum, Max, Avg
from django.db.models.signals import post_save, m2m_changed
from django.utils.translation import ugettext_lazy as _, ugettext
+from ishtar_common.utils import cached_label_changed
+
from ishtar_common.models import GeneralType, BaseHistorizedItem, \
HistoricalRecords, LightHistorizedItem, OwnPerms, Department, Source,\
Person, Organization, Town, Dashboard, IshtarUser
@@ -143,7 +145,8 @@ class Operation(BaseHistorizedItem, OwnPerms):
def __unicode__(self):
if self.cached_label:
return self.cached_label
- return self._generate_cached_label()
+ self.save()
+ return self.cached_label
def _generate_cached_label(self):
items = [unicode(_('Intercommunal'))]
@@ -152,9 +155,8 @@ class Operation(BaseHistorizedItem, OwnPerms):
if self.operation_code:
items.append("-".join((unicode(self.year),
unicode(self.operation_code))))
- self.cached_label = settings.JOINT.join(items)
- self.save()
- return self.cached_label
+ cached_label = settings.JOINT.join(items)
+ return cached_label
def grouped_parcels(self):
return Parcel.grouped_parcels(list(self.parcels.all()))
@@ -235,11 +237,7 @@ class Operation(BaseHistorizedItem, OwnPerms):
return {'date':item.history_date,
'user':IshtarUser.objects.get(pk=item.history_modifier_id)}
-def associated_towns_changed(sender, **kwargs):
- if not kwargs.get('instance'):
- return
- kwargs.get('instance')._generate_cached_label()
-m2m_changed.connect(associated_towns_changed, sender=Operation.towns.through)
+m2m_changed.connect(cached_label_changed, sender=Operation.towns.through)
def operation_post_save(sender, **kwargs):
if not kwargs['instance']:
@@ -254,6 +252,7 @@ def operation_post_save(sender, **kwargs):
fnap_percent = float(operation.fnap_cost)*100/operation.cost
operation.fnap_financing = fnap_percent
operation.save()
+ cached_label_changed(sender, **kwargs)
post_save.connect(operation_post_save, sender=Operation)
class OperationByDepartment(models.Model):