summaryrefslogtreecommitdiff
path: root/archaeological_warehouse
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_warehouse')
-rw-r--r--archaeological_warehouse/migrations/0027_warehouse_main_image.py22
-rw-r--r--archaeological_warehouse/migrations/0028_migrate_main_image.py21
-rw-r--r--archaeological_warehouse/models.py12
3 files changed, 53 insertions, 2 deletions
diff --git a/archaeological_warehouse/migrations/0027_warehouse_main_image.py b/archaeological_warehouse/migrations/0027_warehouse_main_image.py
new file mode 100644
index 000000000..fc1dc13b7
--- /dev/null
+++ b/archaeological_warehouse/migrations/0027_warehouse_main_image.py
@@ -0,0 +1,22 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.10 on 2018-12-20 15:39
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('ishtar_common', '0079_migrate-importers'),
+ ('archaeological_warehouse', '0026_auto_20181203_1442'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='warehouse',
+ name='main_image',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='main_image_warehouses', to='ishtar_common.Document', verbose_name='Main image'),
+ ),
+ ]
diff --git a/archaeological_warehouse/migrations/0028_migrate_main_image.py b/archaeological_warehouse/migrations/0028_migrate_main_image.py
new file mode 100644
index 000000000..4cb6cda7e
--- /dev/null
+++ b/archaeological_warehouse/migrations/0028_migrate_main_image.py
@@ -0,0 +1,21 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.10 on 2018-12-20 19:12
+from __future__ import unicode_literals
+
+from django.db import migrations
+from ishtar_common.utils_migrations import migrate_main_image
+
+
+def migrate_main_image_script(apps, schema):
+ migrate_main_image(apps, 'archaeological_warehouse', 'Warehouse')
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('archaeological_warehouse', '0027_warehouse_main_image'),
+ ]
+
+ operations = [
+ migrations.RunPython(migrate_main_image_script)
+ ]
diff --git a/archaeological_warehouse/models.py b/archaeological_warehouse/models.py
index 92eaf5d2f..3b157ee0c 100644
--- a/archaeological_warehouse/models.py
+++ b/archaeological_warehouse/models.py
@@ -23,7 +23,7 @@ from django.conf import settings
from django.contrib.gis.db import models
from django.core.urlresolvers import reverse
from django.db.models import Q
-from django.db.models.signals import post_save, post_delete
+from django.db.models.signals import post_save, post_delete, m2m_changed
from django.template.defaultfilters import slugify
from django.utils.translation import ugettext_lazy as _, pgettext_lazy, \
activate, deactivate
@@ -31,7 +31,8 @@ from django.utils.translation import ugettext_lazy as _, pgettext_lazy, \
from ishtar_common.data_importer import post_importer_action
from ishtar_common.models import Document, GeneralType, get_external_id, \
LightHistorizedItem, OwnPerms, Address, Person, post_save_cache, \
- ImageModel, DashboardFormItem, ExternalIdManager, ShortMenuItem
+ ImageModel, DashboardFormItem, ExternalIdManager, ShortMenuItem, \
+ document_attached_changed
from ishtar_common.utils import cached_label_changed
@@ -87,6 +88,9 @@ class Warehouse(Address, DashboardFormItem, OwnPerms,
documents = models.ManyToManyField(
Document, related_name='warehouses', verbose_name=_(u"Documents"),
blank=True)
+ main_image = models.ForeignKey(
+ Document, related_name='main_image_warehouses',
+ verbose_name=_(u"Main image"), blank=True, null=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)
@@ -252,6 +256,10 @@ class Warehouse(Address, DashboardFormItem, OwnPerms,
return
+m2m_changed.connect(document_attached_changed,
+ sender=Warehouse.documents.through)
+
+
class Collection(LightHistorizedItem):
name = models.CharField(_(u"Name"), max_length=200,
null=True, blank=True)