diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-01-15 19:51:13 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-01-15 19:51:13 +0100 |
commit | da134bb54a9a197ebf37f67f48dc88e15088a25b (patch) | |
tree | 1a56c573f48ffbae64a92ace27b9ca55ee63c2e2 /archaeological_operations/models.py | |
parent | 529c871277bb5dfee6b411ae8688fbc240ffb63e (diff) | |
download | Ishtar-da134bb54a9a197ebf37f67f48dc88e15088a25b.tar.bz2 Ishtar-da134bb54a9a197ebf37f67f48dc88e15088a25b.zip |
Operation - sites: settings for M2M history
Diffstat (limited to 'archaeological_operations/models.py')
-rw-r--r-- | archaeological_operations/models.py | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index 0b506e12b..7d194074d 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -37,9 +37,9 @@ from ishtar_common.models import BaseHistorizedItem, Dashboard, \ OperationType, Organization, OwnPerms, Person, PersonType, \ post_delete_record_relation, post_save_cache, RelationItem, \ ShortMenuItem, SourceType, Town, ValueGetter, get_current_profile, \ - document_attached_changed + document_attached_changed, HistoryModel from ishtar_common.utils import cached_label_changed, \ - force_cached_label_changed, mode + force_cached_label_changed, mode, m2m_historization_changed class RemainType(GeneralType): @@ -218,6 +218,7 @@ class ArchaeologicalSite(BaseHistorizedItem, OwnPerms, ValueGetter, RELATIVE_SESSION_NAMES = [ ('operation', 'operations__pk'), ] + HISTORICAL_M2M = ['periods', 'remains', 'towns'] # objects = SiteManager() @@ -274,7 +275,7 @@ class ArchaeologicalSite(BaseHistorizedItem, OwnPerms, ValueGetter, cached_label = models.TextField(_(u"Cached name"), null=True, blank=True, db_index=True) - history = HistoricalRecords() + history = HistoricalRecords(bases=[HistoryModel]) class Meta: verbose_name = _(u"Archaeological site") @@ -427,6 +428,10 @@ post_save.connect(cached_label_changed, sender=ArchaeologicalSite) m2m_changed.connect(document_attached_changed, sender=ArchaeologicalSite.documents.through) +for attr in ArchaeologicalSite.HISTORICAL_M2M: + m2m_changed.connect(m2m_historization_changed, + sender=getattr(ArchaeologicalSite, attr).through) + def get_values_town_related(item, prefix, values): values[prefix + 'parcellist'] = item.render_parcels() @@ -757,6 +762,10 @@ class Operation(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter, 'towns__numero_insee__startswith': '_get_department_code', } + HISTORICAL_M2M = [ + 'remains', 'towns', 'periods', + ] + # fields definition creation_date = models.DateField(_(u"Creation date"), default=datetime.date.today) @@ -893,7 +902,7 @@ class Operation(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter, point = models.PointField(_(u"Point"), blank=True, null=True) multi_polygon = models.MultiPolygonField(_(u"Multi polygon"), blank=True, null=True) - history = HistoricalRecords() + history = HistoricalRecords(bases=[HistoryModel]) class Meta: verbose_name = _(u"Operation") @@ -1399,6 +1408,10 @@ m2m_changed.connect(force_cached_label_changed, sender=Operation.towns.through) m2m_changed.connect(document_attached_changed, sender=Operation.documents.through) +for attr in Operation.HISTORICAL_M2M: + m2m_changed.connect(m2m_historization_changed, + sender=getattr(Operation, attr).through) + def operation_post_save(sender, **kwargs): if not kwargs['instance']: |