diff options
-rw-r--r-- | archaeological_finds/admin.py | 3 | ||||
-rw-r--r-- | archaeological_finds/migrations/0016_auto_20180215_1154.py | 41 | ||||
-rw-r--r-- | archaeological_finds/models.py | 6 | ||||
-rw-r--r-- | archaeological_finds/models_finds.py | 16 | ||||
-rw-r--r-- | archaeological_finds/templates/ishtar/sheet_find.html | 1 |
5 files changed, 65 insertions, 2 deletions
diff --git a/archaeological_finds/admin.py b/archaeological_finds/admin.py index e2348458b..91cbbada7 100644 --- a/archaeological_finds/admin.py +++ b/archaeological_finds/admin.py @@ -173,6 +173,9 @@ class MaterialTypeAdmin(HierarchicalTypeAdmin): admin_site.register(models.MaterialType, MaterialTypeAdmin) +admin_site.register(models.CommunicabilityType, HierarchicalTypeAdmin) + + class TreatmentTypeAdmin(GeneralTypeAdmin): list_display = HierarchicalTypeAdmin.list_display + [ 'order', 'virtual', 'upstream_is_many', 'downstream_is_many'] diff --git a/archaeological_finds/migrations/0016_auto_20180215_1154.py b/archaeological_finds/migrations/0016_auto_20180215_1154.py new file mode 100644 index 000000000..81b9c3bc3 --- /dev/null +++ b/archaeological_finds/migrations/0016_auto_20180215_1154.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.10 on 2018-02-15 11:54 +from __future__ import unicode_literals + +import django.core.validators +from django.db import migrations, models +import django.db.models.deletion +import ishtar_common.models +import re + + +class Migration(migrations.Migration): + + dependencies = [ + ('archaeological_finds', '0015_auto_20180119_1516'), + ] + + operations = [ + migrations.CreateModel( + name='CommunicabilityType', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('label', models.CharField(max_length=100, verbose_name='Label')), + ('txt_idx', models.CharField(help_text='The slug is the standardized version of the name. It contains only lowercase letters, numbers and hyphens. Each slug must be unique.', max_length=100, unique=True, validators=[django.core.validators.RegexValidator(re.compile('^[-a-zA-Z0-9_]+\\Z'), "Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens.", 'invalid')], verbose_name='Textual ID')), + ('comment', models.TextField(blank=True, null=True, verbose_name='Comment')), + ('available', models.BooleanField(default=True, verbose_name='Available')), + ('parent', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='archaeological_finds.CommunicabilityType', verbose_name='Parent')), + ], + options={ + 'ordering': ('parent__label', 'label'), + 'verbose_name': 'Communicability type', + 'verbose_name_plural': 'Communicability types', + }, + bases=(ishtar_common.models.Cached, models.Model), + ), + migrations.AddField( + model_name='find', + name='communicabilities', + field=models.ManyToManyField(blank=True, related_name='find', to='archaeological_finds.CommunicabilityType', verbose_name='Communicability'), + ), + ] diff --git a/archaeological_finds/models.py b/archaeological_finds/models.py index 2f7c547b8..a0f387620 100644 --- a/archaeological_finds/models.py +++ b/archaeological_finds/models.py @@ -2,7 +2,8 @@ from archaeological_finds.models_finds import MaterialType, ConservatoryState,\ IntegrityType, RemarkabilityType, ObjectType, BaseFind, \ FindBasket, Find, FindSource, Property, CHECK_CHOICES, BatchType, \ BFBulkView, FBulkView, FirstBaseFindView, AlterationType, \ - AlterationCauseType, TreatmentEmergencyType, TreatmentType + AlterationCauseType, TreatmentEmergencyType, TreatmentType, \ + CommunicabilityType from archaeological_finds.models_treatments import Treatment, \ AbsFindTreatments, FindUpstreamTreatments, FindDownstreamTreatments, \ FindTreatments, TreatmentSource, TreatmentFile, TreatmentFileType, \ @@ -16,4 +17,5 @@ __all__ = ['MaterialType', 'ConservatoryState', 'CHECK_CHOICES', 'BatchType', 'TreatmentType', 'TreatmentState', 'Treatment', 'AbsFindTreatments', 'FindUpstreamTreatments', 'FindDownstreamTreatments', 'FindTreatments', 'TreatmentSource', - 'TreatmentFile', 'TreatmentFileType', 'TreatmentFileSource'] + 'TreatmentFile', 'TreatmentFileType', 'TreatmentFileSource', + 'CommunicabilityType'] diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py index e1c866f9d..34e3c4f87 100644 --- a/archaeological_finds/models_finds.py +++ b/archaeological_finds/models_finds.py @@ -89,6 +89,8 @@ class TreatmentType(GeneralType): verbose_name = _(u"Treatment type") verbose_name_plural = _(u"Treatment types") ordering = ('label',) + + post_save.connect(post_save_cache, sender=TreatmentType) post_delete.connect(post_save_cache, sender=TreatmentType) @@ -171,6 +173,17 @@ post_save.connect(post_save_cache, sender=TreatmentEmergencyType) post_delete.connect(post_save_cache, sender=TreatmentEmergencyType) +class CommunicabilityType(HierarchicalType): + class Meta: + verbose_name = _(u"Communicability type") + verbose_name_plural = _(u"Communicability types") + ordering = ('parent__label', 'label',) + + +post_save.connect(post_save_cache, sender=CommunicabilityType) +post_delete.connect(post_save_cache, sender=CommunicabilityType) + + class BFBulkView(object): CREATE_SQL = """ CREATE VIEW basefind_cached_bulk_update @@ -699,6 +712,9 @@ class Find(BulkUpdatedItem, ValueGetter, BaseHistorizedItem, ImageModel, remarkabilities = models.ManyToManyField( RemarkabilityType, verbose_name=_(u"Remarkability"), related_name='find', blank=True) + communicabilities = models.ManyToManyField( + CommunicabilityType, verbose_name=_(u"Communicability"), + related_name='find', blank=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) diff --git a/archaeological_finds/templates/ishtar/sheet_find.html b/archaeological_finds/templates/ishtar/sheet_find.html index 67cd479c3..ab97c7b24 100644 --- a/archaeological_finds/templates/ishtar/sheet_find.html +++ b/archaeological_finds/templates/ishtar/sheet_find.html @@ -53,6 +53,7 @@ {% field_flex_multiple "Object types" item.object_types %} {% field_flex_multiple "Integrity / interest" item.integrities %} {% field_flex_multiple "Remarkability" item.remarkabilities %} + {% field_flex_multiple "Communicability" item.communicabilities %} {% field_flex "Estimated value" item.estimated_value|default_if_none:''|intcomma '' ' '|add:CURRENCY %} {% if item.CHECK_DICT %} {% field_flex "Checked" item.checked|from_dict:item.CHECK_DICT %} |