From ed26d991775e203067cbbcfc082a61f77d8e5b07 Mon Sep 17 00:00:00 2001 From: Trent Palmer Date: Mon, 22 Mar 2021 15:06:49 -0700 Subject: [PATCH] refactor audio models --- audio/models.py | 67 ++++++++++++++----------------------------------- 1 file changed, 19 insertions(+), 48 deletions(-) diff --git a/audio/models.py b/audio/models.py index 9953088..efd25a5 100644 --- a/audio/models.py +++ b/audio/models.py @@ -17,13 +17,14 @@ def slugify_file_name(instance, filename): return f'{slug}.{extension}' -class Feed(UUIDAsIDModel): +class EpisodeAndFeed(UUIDAsIDModel): user = models.ForeignKey(User, on_delete=models.CASCADE) - created_on = models.DateTimeField(auto_now_add=True) - title = models.CharField(max_length=255) author = models.CharField(max_length=255) + title = models.CharField(max_length=255) + created_on = models.DateTimeField(auto_now_add=True) slug = models.SlugField(max_length=255, unique=True) description = models.TextField(null=False) + image = models.ImageField( storage=PublicImageStorage(), upload_to=slugify_file_name, @@ -33,6 +34,7 @@ class Feed(UUIDAsIDModel): choices=LICENSE_CHOICES, default=2, ) + image_title = models.CharField(max_length=255, default='') image_attribution = models.CharField(max_length=255, default='') image_attribution_url = models.URLField(max_length=255, blank=True) @@ -47,6 +49,19 @@ class Feed(UUIDAsIDModel): def image_license_url(self): return(get_license_info(self.image_license))[1] + def __str__(self): + return str(self.title) + + def save(self, *args, **kwargs): + if not self.slug: + self.slug = slugify(rand_slug() + "-" + self.title) + super().save(*args, **kwargs) + + class Meta: + abstract = True + + +class Feed(EpisodeAndFeed): author_url = models.URLField(max_length=255, default='') ebook_title = models.CharField(max_length=255, default='') ebook_url = models.URLField(max_length=255, default='') @@ -68,57 +83,13 @@ class Feed(UUIDAsIDModel): def license_url(self): return(get_license_info(self.license))[1] - def save(self, *args, **kwargs): - if not self.slug: - self.slug = slugify(rand_slug() + "-" + self.title) - super(Feed, self).save(*args, **kwargs) - def __str__(self): - return str(self.title) - - -class Episode(UUIDAsIDModel): - user = models.ForeignKey(User, on_delete=models.CASCADE) +class Episode(EpisodeAndFeed): feed = models.ForeignKey(Feed, on_delete=models.CASCADE) - title = models.CharField(max_length=255) - author = models.CharField(max_length=255) - slug = models.SlugField(max_length=255, unique=True) - description = models.TextField(null=False) - created_on = models.DateTimeField(auto_now_add=True) pub_date = models.DateField() episode_number = models.IntegerField(null=True) - image = models.ImageField( - storage=PublicImageStorage(), - upload_to=slugify_file_name, - null=True, blank=True) - - image_license = models.SmallIntegerField( - choices=LICENSE_CHOICES, - default=2, - ) - image_title = models.CharField(max_length=255, default='') - image_attribution = models.CharField(max_length=255, default='') - image_attribution_url = models.URLField(max_length=255, blank=True) - original_image_url = models.URLField(max_length=255, default='') - image_license_jurisdiction = models.TextField(null=False, default='(no jurisdiction specified)') - - @property - def image_license_name(self): - return(get_license_info(self.image_license))[0] - - @property - def image_license_url(self): - return(get_license_info(self.image_license))[1] mp3 = models.FileField( storage=PublicMP3Storage(), upload_to=slugify_file_name, null=True, blank=True) - - def save(self, *args, **kwargs): - if not self.slug: - self.slug = slugify(rand_slug() + "-" + self.title) - super(Episode, self).save(*args, **kwargs) - - def __str__(self): - return str(self.title)