From: Thomas Fillon Date: Tue, 22 Sep 2015 16:39:21 +0000 (+0200) Subject: Manage proper Sorting for Artists, Countries and Labels X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=b4f7d50a881805b3e56339f619850f99d0dceb96;p=diggersdigest.git Manage proper Sorting for Artists, Countries and Labels --- diff --git a/diggersdigest/records/models.py b/diggersdigest/records/models.py index 42f16bd..5fc1c51 100644 --- a/diggersdigest/records/models.py +++ b/diggersdigest/records/models.py @@ -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"))