summaryrefslogtreecommitdiff
path: root/archaeological_finds
diff options
context:
space:
mode:
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
commit43c017bc8dd00372f26728130b00b1cd9196fb10 (patch)
tree3c5fab3ad0c77f861ee46e18d14e7d6f848226af /archaeological_finds
parentbf3810a26abe3c53fc11c4afe52e865cd5dbcc54 (diff)
downloadIshtar-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.py13
-rw-r--r--archaeological_finds/models_treatments.py16
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):