summaryrefslogtreecommitdiff
path: root/archaeological_finds
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_finds')
-rw-r--r--archaeological_finds/migrations/0055_auto_20181227_1643.py75
-rw-r--r--archaeological_finds/models_finds.py20
-rw-r--r--archaeological_finds/templates/ishtar/sheet_find.html2
3 files changed, 94 insertions, 3 deletions
diff --git a/archaeological_finds/migrations/0055_auto_20181227_1643.py b/archaeological_finds/migrations/0055_auto_20181227_1643.py
new file mode 100644
index 000000000..094fbaf12
--- /dev/null
+++ b/archaeological_finds/migrations/0055_auto_20181227_1643.py
@@ -0,0 +1,75 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.10 on 2018-12-27 16:43
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('archaeological_finds', '0054_migrate_main_image'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='find',
+ name='historical_communicabilities',
+ field=models.TextField(blank=True, null=True),
+ ),
+ migrations.AddField(
+ model_name='find',
+ name='historical_datings',
+ field=models.TextField(blank=True, null=True),
+ ),
+ migrations.AddField(
+ model_name='find',
+ name='historical_integrities',
+ field=models.TextField(blank=True, null=True),
+ ),
+ migrations.AddField(
+ model_name='find',
+ name='historical_material_types',
+ field=models.TextField(blank=True, null=True),
+ ),
+ migrations.AddField(
+ model_name='find',
+ name='historical_object_types',
+ field=models.TextField(blank=True, null=True),
+ ),
+ migrations.AddField(
+ model_name='find',
+ name='historical_remarkabilities',
+ field=models.TextField(blank=True, null=True),
+ ),
+ migrations.AddField(
+ model_name='historicalfind',
+ name='historical_communicabilities',
+ field=models.TextField(blank=True, null=True),
+ ),
+ migrations.AddField(
+ model_name='historicalfind',
+ name='historical_datings',
+ field=models.TextField(blank=True, null=True),
+ ),
+ migrations.AddField(
+ model_name='historicalfind',
+ name='historical_integrities',
+ field=models.TextField(blank=True, null=True),
+ ),
+ migrations.AddField(
+ model_name='historicalfind',
+ name='historical_material_types',
+ field=models.TextField(blank=True, null=True),
+ ),
+ migrations.AddField(
+ model_name='historicalfind',
+ name='historical_object_types',
+ field=models.TextField(blank=True, null=True),
+ ),
+ migrations.AddField(
+ model_name='historicalfind',
+ name='historical_remarkabilities',
+ field=models.TextField(blank=True, null=True),
+ ),
+ ]
diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py
index 33ec2df0b..c7aec5dee 100644
--- a/archaeological_finds/models_finds.py
+++ b/archaeological_finds/models_finds.py
@@ -31,7 +31,8 @@ from django.utils.translation import ugettext_lazy as _, pgettext_lazy, \
activate, deactivate
from ishtar_common.data_importer import post_importer_action, ImporterError
-from ishtar_common.utils import cached_label_changed, post_save_point
+from ishtar_common.utils import cached_label_changed, post_save_point, \
+ m2m_historization_changed
from ishtar_common.alternative_configs import ALTERNATE_CONFIGS
@@ -1044,6 +1045,10 @@ class Find(BulkUpdatedItem, ValueGetter, BaseHistorizedItem, OwnPerms,
('warehouse', 'container__location__pk'),
('site', 'base_finds__context_record__archaeological_site__pk')
]
+ HISTORICAL_M2M = [
+ 'material_types', 'datings', 'object_types', 'integrities',
+ 'remarkabilities', 'communicabilities',
+ ]
objects = ExternalIdManager()
# fields
@@ -1069,6 +1074,7 @@ class Find(BulkUpdatedItem, ValueGetter, BaseHistorizedItem, OwnPerms,
MaterialType, verbose_name=_(u"Material types"), related_name='finds',
blank=True
)
+ historical_material_types = models.TextField(blank=True, null=True)
material_type_quality = models.ForeignKey(
MaterialTypeQualityType,
verbose_name=_(u"Material type quality"), related_name='finds',
@@ -1088,6 +1094,7 @@ class Find(BulkUpdatedItem, ValueGetter, BaseHistorizedItem, OwnPerms,
verbose_name=_(u"Downstream treatment"), on_delete=models.SET_NULL)
datings = models.ManyToManyField(Dating, verbose_name=_(u"Dating"),
related_name='find')
+ historical_datings = models.TextField(blank=True, null=True)
container = models.ForeignKey(
"archaeological_warehouse.Container", verbose_name=_(u"Container"),
blank=True, null=True,
@@ -1103,6 +1110,7 @@ class Find(BulkUpdatedItem, ValueGetter, BaseHistorizedItem, OwnPerms,
ObjectType, verbose_name=_(u"Object types"), related_name='find',
blank=True
)
+ historical_object_types = models.TextField(blank=True, null=True)
object_type_quality = models.ForeignKey(
ObjectTypeQualityType,
verbose_name=_(u"Object type quality"), related_name='finds',
@@ -1111,12 +1119,15 @@ class Find(BulkUpdatedItem, ValueGetter, BaseHistorizedItem, OwnPerms,
integrities = models.ManyToManyField(
IntegrityType, verbose_name=_(u"Integrity / interest"),
related_name='find', blank=True)
+ historical_integrities = models.TextField(blank=True, null=True)
remarkabilities = models.ManyToManyField(
RemarkabilityType, verbose_name=_(u"Remarkability"),
related_name='find', blank=True)
+ historical_remarkabilities = models.TextField(blank=True, null=True)
communicabilities = models.ManyToManyField(
CommunicabilityType, verbose_name=_(u"Communicability"),
related_name='find', blank=True)
+ historical_communicabilities = models.TextField(blank=True, null=True)
min_number_of_individuals = models.IntegerField(
_(u"Minimum number of individuals (MNI)"), blank=True, null=True)
length = models.FloatField(_(u"Length (cm)"), blank=True, null=True)
@@ -1951,7 +1962,8 @@ def base_find_find_changed(sender, **kwargs):
obj = kwargs.get('instance', None)
if not obj:
return
- # recalculate complete id and external id
+ obj.skip_history_when_saving = True
+ # recalculate cached_label, complete id and external id
obj.save()
@@ -1960,6 +1972,10 @@ m2m_changed.connect(base_find_find_changed, sender=Find.base_finds.through)
m2m_changed.connect(document_attached_changed,
sender=Find.documents.through)
+for attr in Find.HISTORICAL_M2M:
+ m2m_changed.connect(m2m_historization_changed,
+ sender=getattr(Find, attr).through)
+
class Property(LightHistorizedItem):
find = models.ForeignKey(Find, verbose_name=_(u"Find"))
diff --git a/archaeological_finds/templates/ishtar/sheet_find.html b/archaeological_finds/templates/ishtar/sheet_find.html
index cfbefa306..1ff5e21f4 100644
--- a/archaeological_finds/templates/ishtar/sheet_find.html
+++ b/archaeological_finds/templates/ishtar/sheet_find.html
@@ -140,7 +140,7 @@
<div class='row'>
{% field_flex_full "Description" item.description "<pre>" "</pre>" %}
{% field_flex "Is complete?" item.is_complete %}
- {% field_flex_multiple "Material types" item.material_types %}
+ {% field_flex_multiple_obj "Material types" item 'material_types' %}
{% field_flex "Material type quality" item.material_type_quality %}
{% field_flex_multiple "Object types" item.object_types %}
{% field_flex "Object type quality" item.object_type_quality %}