bgneal@60: """
bgneal@60: Models for the videos app.
bgneal@60: 
bgneal@60: """
bgneal@60: from django.db import models
bgneal@60: 
bgneal@60: 
bgneal@60: # The whole purpose of this application is to shuffle the videos in
bgneal@60: # a YouTube playlist.
bgneal@60: #
bgneal@60: # We'd like to embed a video player to show videos from all the bands that
bgneal@60: # participated in the compilation. So we create a YouTube playlist with a long
bgneal@60: # list of videos. YouTube no longer offers a way to shuffle the playlist via
bgneal@60: # the embed code. Instead we will use the YouTube Javascript API to accomplish
bgneal@60: # this. However, the Javascript API works off of video IDs. So we now need
bgneal@60: # a way to obtain all the video IDs from a YouTube playlist. This model
bgneal@60: # stores the playlist URL and an admin function can be run to retrieve the
bgneal@60: # video ID list via the Python GData YouTube API. The video list is also
bgneal@60: # stored in this model. The view function can then read the video ID list,
bgneal@60: # randomize it, and give it to the template to build the appropriate 
bgneal@60: # Javascript.
bgneal@60: 
bgneal@60: class Playlist(models.Model):
bgneal@60:     """
bgneal@60:     This model stores a YouTube playlist URL and a list of video IDs that
bgneal@60:     make up the playlist.
bgneal@60: 
bgneal@60:     """
bgneal@60:     playlist_title = models.CharField(max_length=128, blank=True)
bgneal@60:     playlist_url = models.URLField()
bgneal@60:     video_list = models.TextField(blank=True)
bgneal@60:     sync_date = models.DateTimeField(null=True, blank=True)
bgneal@60: 
bgneal@60:     def __unicode__(self):
bgneal@60:         if self.playlist_title:
bgneal@60:             return self.playlist_title
bgneal@60: 
bgneal@60:         return u"(Please sync with YouTube to retrieve the videos)"