summaryrefslogtreecommitdiff
path: root/archaeological_operations/models.py
diff options
context:
space:
mode:
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
commitda134bb54a9a197ebf37f67f48dc88e15088a25b (patch)
tree1a56c573f48ffbae64a92ace27b9ca55ee63c2e2 /archaeological_operations/models.py
parent529c871277bb5dfee6b411ae8688fbc240ffb63e (diff)
downloadIshtar-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.py21
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']: