add image override for folders
authorymh <ymh.work@gmail.com>
Fri, 28 Apr 2017 15:55:03 +0200
changeset 484 6d46a199d5db
parent 483 dce041bc57a9
child 485 47080491b330
add image override for folders
src/iconolab/migrations/0021_folder_display_image.py
src/iconolab/models.py
src/iconolab/templates/iconolab/collection_home.html
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/iconolab/migrations/0021_folder_display_image.py	Fri Apr 28 15:55:03 2017 +0200
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.10.5 on 2017-04-28 13:07
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('iconolab', '0020_auto_20170414_1424'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='folder',
+            name='display_image',
+            field=models.ImageField(blank=True, null=True, upload_to='uploads/'),
+        ),
+    ]
--- a/src/iconolab/models.py	Fri Apr 28 11:38:44 2017 +0200
+++ b/src/iconolab/models.py	Fri Apr 28 15:55:03 2017 +0200
@@ -55,6 +55,7 @@
     name = models.TextField(null=False, blank=False)
     description = models.TextField(null=True, blank=True)
     original_id = models.CharField(max_length=256, null=True, blank=True)
+    display_image = models.ImageField(blank=True, null=True, upload_to='uploads/')
 
     @property
     def items(self):
@@ -66,9 +67,14 @@
 
     @property
     def image(self):
+        if self.display_image:
+            return self.display_image
         first_item = self.items.first()
+        if not first_item:
+            return None
         images = Image.objects.filter(item=first_item)
-        return images.first()
+        first_image = images.first()
+        return first_image.media if first_image else None
 
     def __str__(self):
         return 'Folder ' + self.name
--- a/src/iconolab/templates/iconolab/collection_home.html	Fri Apr 28 11:38:44 2017 +0200
+++ b/src/iconolab/templates/iconolab/collection_home.html	Fri Apr 28 15:55:03 2017 +0200
@@ -33,7 +33,7 @@
               {% endif %}
             </p>
             <div>
-            {% thumbnail folder.image.media "250x250" crop=False as folder_image %}
+            {% thumbnail folder.image "250x250" crop=False as folder_image %}
               <a href="{% if folder_guid == folder.folder_guid|slugify %}{% url 'collection_home' collection_name %}{% else %}{% url 'collection_home' collection_name %}?folder={{ folder.folder_guid|slugify }}{% endif %}">
                 <img src="{{ folder_image.url}}" width="100%" />
               </a>