]> git.parisson.com Git - diggersdigest.git/commitdiff
Manage proper Sorting for Artists, Countries and Labels
authorThomas Fillon <thomas@parisson.com>
Tue, 22 Sep 2015 16:39:21 +0000 (18:39 +0200)
committerThomas Fillon <thomas@parisson.com>
Tue, 22 Sep 2015 16:39:21 +0000 (18:39 +0200)
diggersdigest/records/models.py

index 42f16bd2aac8e0f65b15946f59540e0fe4ccfec5..5fc1c51376270d77e80d883ed070f8807e57bf43 100644 (file)
@@ -7,6 +7,9 @@ from django.db import models
 from django.utils.translation import ugettext_lazy as _
 
 import datetime
+import os
+import fnmatch
+from diggersdigest import settings
 
 from mezzanine.core.fields import FileField
 from mezzanine.core.models import CONTENT_STATUS_DRAFT, CONTENT_STATUS_PUBLISHED
@@ -186,11 +189,17 @@ class Label(models.Model):
     def __unicode__(self):
         return self.name
 
+    class Meta:
+        ordering = ['name']
+
 class Country(models.Model):
     name = models.CharField(max_length=128)
     def __unicode__(self):
         return self.name
 
+    class Meta:
+        ordering = ['name']
+
 
 class ConditionGrading(models.Model):
 
@@ -245,6 +254,22 @@ class Record(models.Model):
     def __unicode__(self):
         return " - ".join([self.artist.name, self.title])
 
+    def get_candidate_images(self):
+        candidates = []
+        img_path = os.path.join(settings.MEDIA_ROOT, 'backup_images')
+        patterns = []
+        if self.artist:
+            patterns.append(self.artist.name.strip().lower().replace(' ',''))
+        if self.title:
+            patterns.append(self.title.strip().lower().replace(' ',''))
+        for root, dirnames, filenames in os.walk(img_path):
+            for pattern in patterns:
+                for filename in filenames:
+                    if fnmatch.fnmatch(filename.lower(), '*' + pattern + '*.jpg'):
+                        candidates.append(os.path.join(root, filename))
+        return candidates
+
+
 class Podcast(BlogPost):
     audio =  FileField(verbose_name=_("Audio File"), max_length=200, format="Audio",
                        upload_to=upload_to("records.Podcast.audio", "audio/mixes"))