diff options
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): | 
