add Flattr buttons for podcast lists
[mygpo.git] / mygpo / share / models.py
blob1263f4647aa5de83bcf9fed58b961f33b51009f3
1 from random import random
3 from couchdbkit.ext.django.schema import *
5 from django.core.urlresolvers import reverse
7 from mygpo.core.proxy import DocumentABCMeta
8 from mygpo.users.models import RatingMixin
9 from mygpo.flattr import FlattrThing
13 class PodcastList(Document, RatingMixin):
14 """ A list of Podcasts that a user creates for the purpose of sharing """
16 __metaclass__ = DocumentABCMeta
18 title = StringProperty(required=True)
19 slug = StringProperty(required=True)
20 podcasts = StringListProperty()
21 user = StringProperty(required=True)
22 random_key = FloatProperty(default=random)
25 def get_flattr_thing(self, domain, username):
26 """ Returns a "Thing" which can be flattred by other Flattr users """
27 return FlattrThing(
28 url = reverse('list-show', args=[username, self.slug]),
29 title = self.title,
30 description = 'A collection of podcasts about "%s" by %s user %s' % (self.title, domain, username),
31 category = 'audio',
32 hidden = None,
33 tags = None,
34 language = None,
38 def __repr__(self):
39 return '<{cls} "{title}" by {user}>'.format(
40 cls=self.__class__.__name__, title=self.title, user=self.user)