diff options
| -rw-r--r-- | archaeological_context_records/migrations/0020_auto_20180423_1838.py | 39 | ||||
| -rw-r--r-- | archaeological_context_records/models.py | 8 | ||||
| -rw-r--r-- | archaeological_finds/migrations/0024_auto_20180423_1838.py | 53 | ||||
| -rw-r--r-- | archaeological_finds/models_finds.py | 9 | ||||
| -rw-r--r-- | archaeological_finds/models_treatments.py | 9 | ||||
| -rw-r--r-- | archaeological_operations/migrations/0026_auto_20180423_1838.py | 49 | ||||
| -rw-r--r-- | archaeological_operations/models.py | 16 | ||||
| -rw-r--r-- | archaeological_warehouse/migrations/0017_auto_20180423_1838.py | 31 | ||||
| -rw-r--r-- | archaeological_warehouse/models.py | 10 | ||||
| -rw-r--r-- | ishtar_common/migrations/0048_auto_20180423_1838.py | 26 | 
10 files changed, 245 insertions, 5 deletions
| diff --git a/archaeological_context_records/migrations/0020_auto_20180423_1838.py b/archaeological_context_records/migrations/0020_auto_20180423_1838.py new file mode 100644 index 000000000..fb0c7463f --- /dev/null +++ b/archaeological_context_records/migrations/0020_auto_20180423_1838.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.10 on 2018-04-23 18:38 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + +    dependencies = [ +        ('ishtar_common', '0048_auto_20180423_1838'), +        ('archaeological_context_records', '0019_auto_20180403_1120'), +    ] + +    operations = [ +        migrations.CreateModel( +            name='ContextRecordImage', +            fields=[ +                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), +                ('is_main', models.BooleanField(default=False, verbose_name='Main image')), +            ], +        ), +        migrations.AlterField( +            model_name='contextrecord', +            name='images', +            field=models.ManyToManyField(blank=True, through='archaeological_context_records.ContextRecordImage', to='ishtar_common.IshtarImage', verbose_name='Images'), +        ), +        migrations.AddField( +            model_name='contextrecordimage', +            name='context_record', +            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='archaeological_context_records.ContextRecord'), +        ), +        migrations.AddField( +            model_name='contextrecordimage', +            name='image', +            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ishtar_common.IshtarImage'), +        ), +    ] diff --git a/archaeological_context_records/models.py b/archaeological_context_records/models.py index f6253bf68..bdb21ea39 100644 --- a/archaeological_context_records/models.py +++ b/archaeological_context_records/models.py @@ -325,7 +325,7 @@ class ContextRecord(BulkUpdatedItem, BaseHistorizedItem,      point = models.PointField(_(u"Point (3D)"), blank=True, null=True, dim=3)      polygon = models.PolygonField(_(u"Polygon"), blank=True, null=True)      images = models.ManyToManyField(IshtarImage, verbose_name=_(u"Images"), -                                    blank=True) +                                    blank=True, through='ContextRecordImage')      cached_label = models.TextField(_(u"Cached name"), null=True, blank=True,                                      db_index=True)      PARENT_SEARCH_VECTORS = ['operation'] @@ -565,6 +565,12 @@ class ContextRecord(BulkUpdatedItem, BaseHistorizedItem,  post_save.connect(cached_label_changed, sender=ContextRecord) +class ContextRecordImage(models.Model): +    image = models.ForeignKey(IshtarImage, on_delete=models.CASCADE) +    context_record = models.ForeignKey(ContextRecord, on_delete=models.CASCADE) +    is_main = models.BooleanField(_(u"Main image"), default=False) + +  class RelationType(GeneralRelationType):      class Meta:          verbose_name = _(u"Relation type") diff --git a/archaeological_finds/migrations/0024_auto_20180423_1838.py b/archaeological_finds/migrations/0024_auto_20180423_1838.py new file mode 100644 index 000000000..58cf42880 --- /dev/null +++ b/archaeological_finds/migrations/0024_auto_20180423_1838.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.10 on 2018-04-23 18:38 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + +    dependencies = [ +        ('ishtar_common', '0048_auto_20180423_1838'), +        ('archaeological_finds', '0023_auto_20180413_1637'), +    ] + +    operations = [ +        migrations.CreateModel( +            name='FindImage', +            fields=[ +                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), +                ('is_main', models.BooleanField(default=False, verbose_name='Main image')), +                ('image', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ishtar_common.IshtarImage')), +            ], +        ), +        migrations.CreateModel( +            name='TreatmentImage', +            fields=[ +                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), +                ('is_main', models.BooleanField(default=False, verbose_name='Main image')), +                ('image', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ishtar_common.IshtarImage')), +            ], +        ), +        migrations.AlterField( +            model_name='find', +            name='images', +            field=models.ManyToManyField(blank=True, through='archaeological_finds.FindImage', to='ishtar_common.IshtarImage', verbose_name='Images'), +        ), +        migrations.AlterField( +            model_name='treatment', +            name='images', +            field=models.ManyToManyField(blank=True, through='archaeological_finds.TreatmentImage', to='ishtar_common.IshtarImage', verbose_name='Images'), +        ), +        migrations.AddField( +            model_name='treatmentimage', +            name='treatment', +            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='archaeological_finds.Treatment'), +        ), +        migrations.AddField( +            model_name='findimage', +            name='treatment', +            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='archaeological_finds.Find'), +        ), +    ] diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py index 40059faa6..94a8ccedc 100644 --- a/archaeological_finds/models_finds.py +++ b/archaeological_finds/models_finds.py @@ -829,7 +829,7 @@ class Find(BulkUpdatedItem, ValueGetter, BaseHistorizedItem, ImageModel,      appraisal_date = models.DateField(_(u"Appraisal date"), blank=True,                                        null=True)      images = models.ManyToManyField(IshtarImage, verbose_name=_(u"Images"), -                                    blank=True) +                                    blank=True, through='FindImage')      cached_label = models.TextField(_(u"Cached name"), null=True, blank=True,                                      db_index=True)      history = HistoricalRecords() @@ -1429,9 +1429,16 @@ def base_find_find_changed(sender, **kwargs):      # recalculate complete id and external id      obj.save() +  m2m_changed.connect(base_find_find_changed, sender=Find.base_finds.through) +class FindImage(models.Model): +    image = models.ForeignKey(IshtarImage, on_delete=models.CASCADE) +    treatment = models.ForeignKey(Find, on_delete=models.CASCADE) +    is_main = models.BooleanField(_(u"Main image"), default=False) + +  class FindSource(Source):      SHOW_URL = 'show-findsource'      MODIFY_URL = 'find_source_modify' diff --git a/archaeological_finds/models_treatments.py b/archaeological_finds/models_treatments.py index b35912fd0..f96a0febf 100644 --- a/archaeological_finds/models_treatments.py +++ b/archaeological_finds/models_treatments.py @@ -125,7 +125,7 @@ class Treatment(DashboardFormItem, ValueGetter, BaseHistorizedItem,      target_is_basket = models.BooleanField(_(u"Target a basket"),                                             default=False)      images = models.ManyToManyField(IshtarImage, verbose_name=_(u"Images"), -                                    blank=True) +                                    blank=True, through='TreatmentImage')      cached_label = models.TextField(_(u"Cached name"), null=True, blank=True,                                      db_index=True)      history = HistoricalRecords() @@ -307,6 +307,12 @@ def pre_delete_treatment(sender, **kwargs):  pre_delete.connect(pre_delete_treatment, sender=Treatment) +class TreatmentImage(models.Model): +    image = models.ForeignKey(IshtarImage, on_delete=models.CASCADE) +    treatment = models.ForeignKey(Treatment, on_delete=models.CASCADE) +    is_main = models.BooleanField(_(u"Main image"), default=False) + +  class AbsFindTreatments(models.Model):      find = models.ForeignKey(Find, verbose_name=_(u"Find"),                               related_name='%(class)s_related') @@ -602,6 +608,7 @@ class TreatmentFile(DashboardFormItem, ClosedItem, BaseHistorizedItem,          self.pre_save()          super(TreatmentFile, self).save(*args, **kwargs) +  post_save.connect(cached_label_changed, sender=TreatmentFile) diff --git a/archaeological_operations/migrations/0026_auto_20180423_1838.py b/archaeological_operations/migrations/0026_auto_20180423_1838.py new file mode 100644 index 000000000..c512a54f0 --- /dev/null +++ b/archaeological_operations/migrations/0026_auto_20180423_1838.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.10 on 2018-04-23 18:38 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + +    dependencies = [ +        ('ishtar_common', '0048_auto_20180423_1838'), +        ('archaeological_operations', '0025_auto_20180413_1604'), +    ] + +    operations = [ +        migrations.CreateModel( +            name='OperationImage', +            fields=[ +                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), +                ('is_main', models.BooleanField(default=False, verbose_name='Main image')), +                ('image', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ishtar_common.IshtarImage')), +            ], +        ), +        migrations.CreateModel( +            name='SiteImage', +            fields=[ +                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), +                ('is_main', models.BooleanField(default=False, verbose_name='Main image')), +                ('image', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ishtar_common.IshtarImage')), +                ('site', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='archaeological_operations.ArchaeologicalSite')), +            ], +        ), +        migrations.AlterField( +            model_name='operation', +            name='images', +            field=models.ManyToManyField(blank=True, through='archaeological_operations.OperationImage', to='ishtar_common.IshtarImage', verbose_name='Images'), +        ), +        migrations.AddField( +            model_name='operationimage', +            name='operation', +            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='archaeological_operations.Operation'), +        ), +        migrations.AddField( +            model_name='archaeologicalsite', +            name='images', +            field=models.ManyToManyField(blank=True, through='archaeological_operations.SiteImage', to='ishtar_common.IshtarImage', verbose_name='Images'), +        ), +    ] diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index 2a5f1cbe6..10a281dda 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -130,6 +130,8 @@ class ArchaeologicalSite(BaseHistorizedItem):          _(u"Sinking date"), null=True, blank=True)      discovery_area = models.TextField(          _(u"Discovery area"), null=True, blank=True) +    images = models.ManyToManyField(IshtarImage, verbose_name=_(u"Images"), +                                    through='SiteImage', blank=True)      class Meta:          verbose_name = _(u"Archaeological site") @@ -218,6 +220,12 @@ class ArchaeologicalSite(BaseHistorizedItem):              ) +class SiteImage(models.Model): +    image = models.ForeignKey(IshtarImage, on_delete=models.CASCADE) +    site = models.ForeignKey(ArchaeologicalSite, on_delete=models.CASCADE) +    is_main = models.BooleanField(_(u"Main image"), default=False) + +  def get_values_town_related(item, prefix, values):      values[prefix + 'parcellist'] = item.render_parcels()      values[prefix + 'towns'] = '' @@ -453,7 +461,7 @@ class Operation(ClosedItem, BaseHistorizedItem, ImageModel, OwnPerms,      scientific_documentation_comment = models.TextField(          _(u"Comment about scientific documentation"), null=True, blank=True)      images = models.ManyToManyField(IshtarImage, verbose_name=_(u"Images"), -                                    blank=True) +                                    blank=True, through='OperationImage')      cached_label = models.CharField(_(u"Cached name"), max_length=500,                                      null=True, blank=True, db_index=True)      archaeological_sites = models.ManyToManyField( @@ -971,6 +979,12 @@ def operation_post_save(sender, **kwargs):  post_save.connect(operation_post_save, sender=Operation) +class OperationImage(models.Model): +    image = models.ForeignKey(IshtarImage, on_delete=models.CASCADE) +    operation = models.ForeignKey(Operation, on_delete=models.CASCADE) +    is_main = models.BooleanField(_(u"Main image"), default=False) + +  class RelationType(GeneralRelationType):      class Meta: diff --git a/archaeological_warehouse/migrations/0017_auto_20180423_1838.py b/archaeological_warehouse/migrations/0017_auto_20180423_1838.py new file mode 100644 index 000000000..fe183c312 --- /dev/null +++ b/archaeological_warehouse/migrations/0017_auto_20180423_1838.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.10 on 2018-04-23 18:38 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + +    dependencies = [ +        ('ishtar_common', '0048_auto_20180423_1838'), +        ('archaeological_warehouse', '0016_auto_20180403_1120'), +    ] + +    operations = [ +        migrations.CreateModel( +            name='WarehouseImage', +            fields=[ +                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), +                ('is_main', models.BooleanField(default=False, verbose_name='Main image')), +                ('image', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ishtar_common.IshtarImage')), +                ('warehouse', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='archaeological_warehouse.Warehouse')), +            ], +        ), +        migrations.AddField( +            model_name='warehouse', +            name='images', +            field=models.ManyToManyField(blank=True, through='archaeological_warehouse.WarehouseImage', to='ishtar_common.IshtarImage', verbose_name='Images'), +        ), +    ] diff --git a/archaeological_warehouse/models.py b/archaeological_warehouse/models.py index 035fc0c74..a860497e0 100644 --- a/archaeological_warehouse/models.py +++ b/archaeological_warehouse/models.py @@ -31,7 +31,7 @@ from ishtar_common.utils import cached_label_changed  from ishtar_common.models import GeneralType, get_external_id, \      LightHistorizedItem, OwnPerms, Address, Person, post_save_cache, \ -    ImageModel, DashboardFormItem +    ImageModel, DashboardFormItem, IshtarImage  class WarehouseType(GeneralType): @@ -58,6 +58,8 @@ class Warehouse(Address, DashboardFormItem, OwnPerms):          'WarehouseDivision', verbose_name=_("Divisions"), blank=True,          through='WarehouseDivisionLink'      ) +    images = models.ManyToManyField(IshtarImage, verbose_name=_(u"Images"), +                                    through='WarehouseImage', blank=True)      external_id = models.TextField(_(u"External ID"), blank=True, null=True)      auto_external_id = models.BooleanField(          _(u"External ID is set automatically"), default=False) @@ -202,6 +204,12 @@ class Warehouse(Address, DashboardFormItem, OwnPerms):                  return +class WarehouseImage(models.Model): +    image = models.ForeignKey(IshtarImage, on_delete=models.CASCADE) +    warehouse = models.ForeignKey(Warehouse, on_delete=models.CASCADE) +    is_main = models.BooleanField(_(u"Main image"), default=False) + +  class Collection(LightHistorizedItem):      name = models.CharField(_(u"Name"), max_length=200,                              null=True, blank=True) diff --git a/ishtar_common/migrations/0048_auto_20180423_1838.py b/ishtar_common/migrations/0048_auto_20180423_1838.py new file mode 100644 index 000000000..840c0877a --- /dev/null +++ b/ishtar_common/migrations/0048_auto_20180423_1838.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.10 on 2018-04-23 18:38 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + +    dependencies = [ +        ('ishtar_common', '0047_auto_20180418_1802'), +    ] + +    operations = [ +        migrations.AlterField( +            model_name='area', +            name='parent', +            field=models.ForeignKey(blank=True, help_text='Only four level of parent are managed.', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='children', to='ishtar_common.Area', verbose_name='Parent'), +        ), +        migrations.AlterField( +            model_name='area', +            name='towns', +            field=models.ManyToManyField(blank=True, related_name='areas', to='ishtar_common.Town', verbose_name='Towns'), +        ), +    ] | 
