cd774760f907170ff0c9e9d0cc5b8a70614d69b0
[mygpo.git] / mygpo / search / util.py
blobcd774760f907170ff0c9e9d0cc5b8a70614d69b0
1 from django.db.models import Count
2 from mygpo.api.models import Subscription, Podcast
3 from mygpo.data.models import PodcastTag
6 def podcast_group_entry(group, subscriber_count=None):
7 from mygpo.search.models import SearchEntry
9 if not subscriber_count:
10 subscriber_count = Subscription.objects.filter(podcast__group=group).values('user').distinct().count()
12 entry = SearchEntry()
13 entry.text = group.title
14 entry.obj_type = 'podcast_group'
15 entry.obj_id = group.id
17 podcasts = Podcast.objects.filter(group=group)
18 tags = PodcastTag.objects.filter(podcast__in=podcasts).annotate(count=Count('podcast')).order_by('count')
19 tag_string = ','.join([t.tag for t in tags])[:200]
20 entry.tags = tag_string
22 entry.priority = subscriber_count
24 return entry
27 def podcast_entry(podcast, subscriber_count=None):
28 from mygpo.search.models import SearchEntry
30 if not subscriber_count:
31 subscriber_count = Subscription.objects.filter(podcast=podcast).values('user').distinct().count()
33 entry = SearchEntry()
34 entry.text = podcast.title
35 entry.obj_type = 'podcast'
36 entry.obj_id = podcast.id
38 tags = PodcastTag.objects.filter(podcast=podcast).annotate(count=Count('podcast')).order_by('count')
39 tag_string = ','.join([t.tag for t in tags])[:200]
40 entry.tags = tag_string
42 entry.priority = subscriber_count
44 return entry