diff options
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 |
commit | 38569a486818733cf444e48e781fe60994effecd (patch) | |
tree | aa74812fab75ae6263bb4eecdfd67f79f9ab27be /archaeological_operations/models.py | |
parent | 7310fc35ca8375017ce07bdf6bdae801b0803730 (diff) | |
download | Ishtar-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.py | 17 |
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): |