diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-04-23 18:40:47 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-06-12 08:43:58 +0200 |
commit | 8279d1c668a54868e7195d20eb39d1ce4c5a1c06 (patch) | |
tree | c595e4556ff333b80c51e161d6c539d9775cec94 /archaeological_finds | |
parent | 349466995516bc0b5eb72f333693ac8dfb5146f2 (diff) | |
download | Ishtar-8279d1c668a54868e7195d20eb39d1ce4c5a1c06.tar.bz2 Ishtar-8279d1c668a54868e7195d20eb39d1ce4c5a1c06.zip |
Images: add a main_image field (refs #4076) - Add images associated to warehouses (refs #3879)
Diffstat (limited to 'archaeological_finds')
-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 |
3 files changed, 69 insertions, 2 deletions
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) |