[Directory] fix linking of categories with linebreaks in title
[mygpo.git] / mygpo / categories / models.py
blobd93f74243652cf4703a4c426b9941c71c02bf7fa
1 from django.db import models
3 from mygpo.core.models import UpdateInfoModel
4 from mygpo.podcasts.models import Podcast
7 class Category(UpdateInfoModel):
8 """ A category of podcasts """
10 title = models.CharField(max_length=1000, null=False, blank=False,
11 unique=True)
13 num_entries = models.IntegerField()
15 class Meta:
16 verbose_name = 'Category'
17 verbose_name_plural = 'Categories'
19 index_together = [
20 ('modified', 'num_entries'),
23 def save(self, *args, **kwargs):
24 self.num_entries = self.entries.count()
25 super(Category, self).save(*args, **kwargs)
27 @property
28 def podcasts(self):
29 return self.entries.prefetch_related('podcast', 'podcast__slugs')
31 @property
32 def clean_title(self):
33 return self.title.replace('\n', ' ')
36 class CategoryEntry(UpdateInfoModel,):
37 """ A podcast in a category """
39 category = models.ForeignKey(Category, related_name='entries',
40 on_delete=models.CASCADE)
42 podcast = models.ForeignKey(Podcast,
43 on_delete=models.CASCADE)
45 class Meta:
46 unique_together = [
47 ('category', 'podcast'),
50 index_together = [
51 ('category', 'modified'),
55 class CategoryTag(models.Model):
57 tag = models.SlugField(unique=True)
59 category = models.ForeignKey(Category, related_name='tags',
60 on_delete=models.CASCADE)