Display image & item count for folders.
--- a/src/iconolab/models.py Mon Apr 17 14:42:38 2017 +0200
+++ b/src/iconolab/models.py Wed Apr 19 15:10:06 2017 +0200
@@ -56,6 +56,20 @@
description = models.TextField(null=True, blank=True)
original_id = models.CharField(max_length=256, null=True, blank=True)
+ @property
+ def items(self):
+ return Item.objects.filter(folders=self)
+
+ @property
+ def items_count(self):
+ return self.items.count()
+
+ @property
+ def image(self):
+ first_item = self.items.first()
+ images = Image.objects.filter(item=first_item)
+ return images.first()
+
def __str__(self):
return 'Folder ' + self.name
--- a/src/iconolab/templates/iconolab/collection_home.html Mon Apr 17 14:42:38 2017 +0200
+++ b/src/iconolab/templates/iconolab/collection_home.html Wed Apr 19 15:10:06 2017 +0200
@@ -21,15 +21,24 @@
<ul class="list-unstyled">
{% for folder in collection.folders.all %}
<li>
- {% if folder_guid == folder.folder_guid|slugify %}
- <a href="{% url 'collection_home' collection_name %}">
- <i class="fa fa-close"></i> {{ folder.name }}
- </a>
- {% else %}
- <a href="{% url 'collection_home' collection_name %}?folder={{ folder.folder_guid|slugify }}">
- <i class="fa fa-folder"></i> {{ folder.name }}
- </a>
- {% endif %}
+ <p class="text-center">
+ {% if folder_guid == folder.folder_guid|slugify %}
+ <a href="{% url 'collection_home' collection_name %}">
+ <i class="fa fa-close"></i> {{ folder.name }} ({{ folder.items_count }})
+ </a>
+ {% else %}
+ <a href="{% url 'collection_home' collection_name %}?folder={{ folder.folder_guid|slugify }}">
+ <i class="fa fa-folder"></i> {{ folder.name }} ({{ folder.items_count }})
+ </a>
+ {% endif %}
+ </p>
+ <p>
+ {% thumbnail folder.image.media "250x250" crop=False as folder_image %}
+ <a href="#">
+ <img src="{{ folder_image.url}}" width="100%" />
+ </a>
+ {% endthumbnail %}
+ </p>
</li>
{% endfor %}
</ul>