From 43c017bc8dd00372f26728130b00b1cd9196fb10 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Wed, 9 May 2018 17:49:16 +0200 Subject: Standardize related field item for imagee collections (refs #4076) --- .../migrations/0017_auto_20180423_1838.py | 31 ------------------- .../migrations/0017_auto_20180509_1747.py | 35 ++++++++++++++++++++++ archaeological_warehouse/models.py | 9 +++--- 3 files changed, 39 insertions(+), 36 deletions(-) delete mode 100644 archaeological_warehouse/migrations/0017_auto_20180423_1838.py create mode 100644 archaeological_warehouse/migrations/0017_auto_20180509_1747.py (limited to 'archaeological_warehouse') diff --git a/archaeological_warehouse/migrations/0017_auto_20180423_1838.py b/archaeological_warehouse/migrations/0017_auto_20180423_1838.py deleted file mode 100644 index fe183c312..000000000 --- a/archaeological_warehouse/migrations/0017_auto_20180423_1838.py +++ /dev/null @@ -1,31 +0,0 @@ -# -*- 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/migrations/0017_auto_20180509_1747.py b/archaeological_warehouse/migrations/0017_auto_20180509_1747.py new file mode 100644 index 000000000..76b384374 --- /dev/null +++ b/archaeological_warehouse/migrations/0017_auto_20180509_1747.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.10 on 2018-05-09 17:47 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('ishtar_common', '0050_licensetype_url'), + ('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')), + ('item', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='associated_images', to='archaeological_warehouse.Warehouse')), + ], + options={ + 'ordering': ('-is_main', 'image__name'), + 'abstract': False, + }, + ), + 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 a860497e0..4edfe0d15 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, IshtarImage + ImageModel, DashboardFormItem, IshtarImage, ThroughImage class WarehouseType(GeneralType): @@ -204,10 +204,9 @@ 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 WarehouseImage(ThroughImage): + item = models.ForeignKey(Warehouse, on_delete=models.CASCADE, + related_name='associated_images') class Collection(LightHistorizedItem): -- cgit v1.2.3