refactoring
[mygpo.git] / mygpo / search / util.py
blob17a33926e6822023ad8325aeaf73f140caa4c00f
1 from django.db.models import Count
2 from mygpo.api.models import Subscription, Podcast
3 from mygpo.data.models import PodcastTag
4 from mygpo.search.models import SearchEntry
7 def podcast_group_entry(group, subscriber_count=None):
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):
29 if not subscriber_count:
30 subscriber_count = Subscription.objects.filter(podcast=podcast).values('user').distinct().count()
32 entry = SearchEntry()
33 entry.text = podcast.title
34 entry.obj_type = 'podcast'
35 entry.obj_id = podcast.id
37 tags = PodcastTag.objects.filter(podcast=podcast).annotate(count=Count('podcast')).order_by('count')
38 tag_string = ','.join([t.tag for t in tags])[:200]
39 entry.tags = tag_string
41 entry.priority = subscriber_count
43 return entry