X-Git-Url: https://git.mdrn.pl/audio.git/blobdiff_plain/db4b95766ce00690d38bff256d77fed006abc54d..1c72d045af4d7c5607a872a678eadec17498bd6d:/src/youtube/models.py diff --git a/src/youtube/models.py b/src/youtube/models.py index 219a682..df071f1 100644 --- a/src/youtube/models.py +++ b/src/youtube/models.py @@ -24,6 +24,7 @@ YOUTUBE_TITLE_LIMIT = 100 class YouTube(models.Model): + name = models.CharField(max_length=255) title_template = models.CharField(max_length=1024, blank=True) description_template = models.TextField(blank=True) category = models.IntegerField(null=True, blank=True, choices=[ @@ -44,6 +45,9 @@ class YouTube(models.Model): verbose_name = _("YouTube configuration") verbose_name_plural = _("YouTube configurations") + def __str__(self): + return self.name + def get_context(self, audiobook): return Context(dict( audiobook=audiobook, @@ -212,10 +216,14 @@ class Font(models.Model): class ThumbnailTemplate(models.Model): + youtube = models.ForeignKey(YouTube, models.CASCADE) order = models.SmallIntegerField() is_active = models.BooleanField() background = models.FileField(upload_to='youtube/thumbnail') definition = models.TextField() + authors = models.CharField(max_length=255, blank=True) + epochs = models.CharField(max_length=255, blank=True) + kinds = models.CharField(max_length=255, blank=True) genres = models.CharField(max_length=255, blank=True) collections = models.CharField(max_length=255, blank=True) @@ -243,11 +251,12 @@ class ThumbnailTemplate(models.Model): return buf def is_for_audiobook(self, audiobook): - if self.genres: - book_genres = set([g['slug'] for g in audiobook.book['genres']]) - template_genres = set([g.strip() for g in self.genres.split(',')]) - if not book_genres.intersection(template_genres): - return False + for category in 'authors', 'epochs', 'kinds', 'genres': + if getattr(self, category): + book_slugs = set([g['slug'] for g in audiobook.book[category]]) + template_slugs = set([g.strip() for g in getattr(self, category).split(',')]) + if not book_slugs.intersection(template_slugs): + return False if self.collections: template_collections = set([g.strip() for g in self.collections.split(',')])