diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-05-09 17:49:16 +0200 |
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-06-12 08:44:18 +0200 |
| commit | 43c017bc8dd00372f26728130b00b1cd9196fb10 (patch) | |
| tree | 3c5fab3ad0c77f861ee46e18d14e7d6f848226af /archaeological_finds | |
| parent | bf3810a26abe3c53fc11c4afe52e865cd5dbcc54 (diff) | |
| download | Ishtar-43c017bc8dd00372f26728130b00b1cd9196fb10.tar.bz2 Ishtar-43c017bc8dd00372f26728130b00b1cd9196fb10.zip | |
Standardize related field item for imagee collections (refs #4076)
Diffstat (limited to 'archaeological_finds')
| -rw-r--r-- | archaeological_finds/migrations/0024_auto_20180509_1742.py (renamed from archaeological_finds/migrations/0024_auto_20180423_1838.py) | 20 | ||||
| -rw-r--r-- | archaeological_finds/models_finds.py | 13 | ||||
| -rw-r--r-- | archaeological_finds/models_treatments.py | 16 |
3 files changed, 27 insertions, 22 deletions
diff --git a/archaeological_finds/migrations/0024_auto_20180423_1838.py b/archaeological_finds/migrations/0024_auto_20180509_1742.py index faed5b69f..9b5367b0b 100644 --- a/archaeological_finds/migrations/0024_auto_20180423_1838.py +++ b/archaeological_finds/migrations/0024_auto_20180509_1742.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Generated by Django 1.11.10 on 2018-04-23 18:38 +# Generated by Django 1.11.10 on 2018-05-09 17:42 from __future__ import unicode_literals from django.db import migrations, models @@ -9,7 +9,7 @@ import django.db.models.deletion class Migration(migrations.Migration): dependencies = [ - ('ishtar_common', '0048_auto_20180423_1838'), + ('ishtar_common', '0050_licensetype_url'), ('archaeological_finds', '0023_auto_20180413_1637'), ] @@ -21,6 +21,10 @@ class Migration(migrations.Migration): ('is_main', models.BooleanField(default=False, verbose_name='Main image')), ('image', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ishtar_common.IshtarImage')), ], + options={ + 'ordering': ('-is_main', 'image__name'), + 'abstract': False, + }, ), migrations.CreateModel( name='TreatmentImage', @@ -29,6 +33,10 @@ class Migration(migrations.Migration): ('is_main', models.BooleanField(default=False, verbose_name='Main image')), ('image', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ishtar_common.IshtarImage')), ], + options={ + 'ordering': ('-is_main', 'image__name'), + 'abstract': False, + }, ), migrations.RemoveField( model_name='find', @@ -50,12 +58,12 @@ class Migration(migrations.Migration): ), migrations.AddField( model_name='treatmentimage', - name='treatment', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='archaeological_finds.Treatment'), + name='item', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='associated_images', 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'), + name='item', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='associated_images', to='archaeological_finds.Find'), ), ] diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py index 94a8ccedc..dcf542f79 100644 --- a/archaeological_finds/models_finds.py +++ b/archaeological_finds/models_finds.py @@ -35,7 +35,7 @@ from ishtar_common.utils import cached_label_changed, post_save_point from ishtar_common.models import GeneralType, HierarchicalType, ImageModel, \ BaseHistorizedItem, ShortMenuItem, LightHistorizedItem, \ HistoricalRecords, OwnPerms, Source, Person, Basket, post_save_cache, \ - ValueGetter, get_current_profile, IshtarImage + ValueGetter, get_current_profile, IshtarImage, ThroughImage from archaeological_operations.models import AdministrativeAct, Operation from archaeological_context_records.models import ContextRecord, Dating @@ -929,8 +929,8 @@ class Find(BulkUpdatedItem, ValueGetter, BaseHistorizedItem, ImageModel, return u"detached/{}".format(self.SLUG) ope = bf.context_record.operation find_idx = u'{:0' + str(settings.ISHTAR_FINDS_INDEX_ZERO_LEN) + 'd}' - return (u"operation/{}/{}/{}/" + find_idx).format( - ope.year, ope.reference, self.SLUG, self.index) + return (u"{}/{}/" + find_idx).format( + ope._get_base_image_path(), self.SLUG, self.index) @property def administrative_index(self): @@ -1433,10 +1433,9 @@ def base_find_find_changed(sender, **kwargs): 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 FindImage(ThroughImage): + item = models.ForeignKey(Find, on_delete=models.CASCADE, + related_name='associated_images') class FindSource(Source): diff --git a/archaeological_finds/models_treatments.py b/archaeological_finds/models_treatments.py index f96a0febf..2baced6e1 100644 --- a/archaeological_finds/models_treatments.py +++ b/archaeological_finds/models_treatments.py @@ -30,7 +30,8 @@ from django.utils.translation import ugettext_lazy as _, ugettext from ishtar_common.utils import cached_label_changed, get_current_year from ishtar_common.models import GeneralType, ImageModel, BaseHistorizedItem, \ OwnPerms, HistoricalRecords, Person, Organization, Source, \ - ValueGetter, post_save_cache, ShortMenuItem, DashboardFormItem, IshtarImage + ValueGetter, post_save_cache, ShortMenuItem, DashboardFormItem, \ + IshtarImage, ThroughImage from archaeological_warehouse.models import Warehouse, Container from archaeological_finds.models_finds import Find, FindBasket, TreatmentType from archaeological_operations.models import ClosedItem, Operation @@ -190,8 +191,7 @@ class Treatment(DashboardFormItem, ValueGetter, BaseHistorizedItem, return u'{} | {}'.format(u"-".join(items), self.treatment_types_lbl()) def _get_base_image_path(self,): - return u"treatment/{}/{}".format( - self.year, self.index) + return u"{}/{}/{}".format(self.SLUG, self.year, self.index) def treatment_types_lbl(self): """ @@ -307,10 +307,9 @@ 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 TreatmentImage(ThroughImage): + item = models.ForeignKey(Treatment, on_delete=models.CASCADE, + related_name='associated_images') class AbsFindTreatments(models.Model): @@ -642,8 +641,7 @@ class TreatmentSource(Source): return self.treatment def _get_base_image_path(self): - return u"treatment/{}/{}/source".format( - self.treatment.year, self.treatment.index) + return u"{}/source".format(self.treatment._get_base_image_path()) class TreatmentFileSource(Source): |
