summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--archaeological_operations/models.py21
-rw-r--r--archaeological_operations/templates/ishtar/sheet_operation.html13
-rw-r--r--archaeological_operations/templates/ishtar/sheet_site.html15
3 files changed, 40 insertions, 9 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']:
diff --git a/archaeological_operations/templates/ishtar/sheet_operation.html b/archaeological_operations/templates/ishtar/sheet_operation.html
index 8801855cd..f13a21336 100644
--- a/archaeological_operations/templates/ishtar/sheet_operation.html
+++ b/archaeological_operations/templates/ishtar/sheet_operation.html
@@ -96,8 +96,8 @@
</div>
</div>
<div class="row">
- {% field_flex_multiple "Remains" item.remains %}
- {% field_flex_multiple "Periods" item.periods %}
+ {% field_flex_multiple_obj "Remains" item 'remains' %}
+ {% field_flex_multiple_obj "Periods" item 'periods' %}
{% field_flex "Record quality" item.record_quality_type %}
{% field_flex "Report delivery date" item.report_delivery_date %}
{% field_flex "Report processing" item.report_processing %}
@@ -155,7 +155,14 @@
</div>
{% endif %}
-{% if not next %}
+{% if next %}
+{% if item|m2m_listing:'towns' %}
+<h3>{% trans "Localisation"%}</h3>
+<div class="row">
+ {% field_flex_full "Towns" item|m2m_listing:'towns'|join:" ; " %}
+</div>
+{% endif %}
+{% else %}
{% if item.towns.count %}
<h3>{% trans "Localisation"%}</h3>
<div class="row">
diff --git a/archaeological_operations/templates/ishtar/sheet_site.html b/archaeological_operations/templates/ishtar/sheet_site.html
index 0108d3db6..14c30bd38 100644
--- a/archaeological_operations/templates/ishtar/sheet_site.html
+++ b/archaeological_operations/templates/ishtar/sheet_site.html
@@ -34,12 +34,22 @@
<div class="row">
{% include "ishtar/blocks/sheet_creation_section.html" %}
- {% field_flex_multiple "Periods" item.periods %}
- {% field_flex_multiple "Remains" item.remains %}
+ {% field_flex_multiple_obj "Periods" item 'periods' %}
+ {% field_flex_multiple_obj "Remains" item 'remains' %}
{% field_flex_multiple "Collaborators" item.collaborators %}
{% field_flex_full "Comment" item.comment "<pre>" "</pre>" %}
</div>
+{% if next %}
+{% if item|m2m_listing:'towns' or item.locality_ngi or item.locality_cadastral %}
+<h3>{% trans "Localisation"%}</h3>
+<div class="row">
+ {% field_flex_full "Towns" item|m2m_listing:'towns'|join:" ; " %}
+ {% field_flex_full "National Geographic Institute locality" item.locality_ngi "<pre>" "</pre>" %}
+ {% field_flex_full "Cadastral locality" item.locality_cadastral "<pre>" "</pre>" %}
+</div>
+{% endif %}
+{% else %}
{% if item.towns.count or item.locality_ngi or item.locality_cadastral %}
<h3>{% trans "Localisation"%}</h3>
<div class="row">
@@ -48,6 +58,7 @@
{% field_flex_full "Cadastral locality" item.locality_cadastral "<pre>" "</pre>" %}
</div>
{% endif %}
+{% endif %}
{% if item.affmar_number or item.drassm_number or item.oceanographic_service_localisation or item.shipwreck_code or item.sinking_date or item.discovery_area or item.shipwreck_name %}
<h3>{% trans "Underwater"%}</h3>