Advertisement
Guest User

Untitled

a guest
Feb 10th, 2016
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.81 KB | None | 0 0
  1. diff --git a/gallery/models.py b/gallery/models.py
  2. index 0a8c199..eeb7a7b 100644
  3. --- a/gallery/models.py
  4. +++ b/gallery/models.py
  5. @@ -76,7 +76,7 @@ class GalleryItem(models.Model):
  6.  
  7. is_modified_by_meural = models.BooleanField(default=False)
  8.  
  9. - tags = TaggableManager()
  10. + tags = TaggableManager(blank=True)
  11.  
  12. class Meta:
  13. db_table = 'items'
  14. @@ -210,7 +210,7 @@ class Gallery(models.Model):
  15. gallery_type = models.CharField(choices=TYPES, default=TYPE_IMAGES, max_length=16)
  16. gallery_timeout = '0'
  17.  
  18. - tags = TaggableManager()
  19. + tags = TaggableManager(blank=True)
  20.  
  21. class Meta:
  22. db_table = 'galleries'
  23. @@ -301,16 +301,29 @@ class Gallery(models.Model):
  24. return hero_url
  25.  
  26.  
  27. +class GalleryProgram(models.Model):
  28. + name = models.CharField(max_length=255, unique=True)
  29. + start_time = models.DateTimeField()
  30. + description = models.TextField(null=True, blank=True, default='', max_length=1024)
  31. + gallery = models.ForeignKey(Gallery, limit_choices_to={'gallery_type': Gallery.TYPE_RADIO}, related_name='playlist', default=None)
  32. +
  33. + class Meta:
  34. + ordering = ['start_time']
  35. +
  36. + def __unicode__(self):
  37. + return u'%s' % (self.name)
  38. +
  39. +
  40. class GalleryPlaylist(models.Model):
  41. - gallery = models.ForeignKey(Gallery, limit_choices_to={'gallery_type': Gallery.TYPE_RADIO}, related_name='playlist')
  42. + program = models.ForeignKey(GalleryProgram, related_name="program", default=None, null=True, blank=True)
  43. item = models.ForeignKey(GalleryItem)
  44. start_time = models.TimeField()
  45.  
  46. class Meta:
  47. - ordering = ['gallery', 'start_time']
  48. + ordering = ['start_time']
  49.  
  50. def __unicode__(self):
  51. - return u'%s %s %s' % (self.gallery, self.start_time, self.item)
  52. + return u'%s %s %s' % (self.program, self.start_time, self.item)
  53.  
  54.  
  55. class GalleryRadioManager(models.Manager):
  56. @@ -348,6 +361,17 @@ class GalleryRadio(Gallery):
  57.  
  58. return prev
  59.  
  60. + def get_previous_items(self):
  61. + cur_item = self.get_current_item()
  62. + try:
  63. + prev_items = self.playlist.filter(start_time__lt=cur_item.start_time)
  64. + print prev_items
  65. + except GalleryPlaylist.DoesNotExist:
  66. + # if there is no item before item start_time, return last from the playlist
  67. + prev_items = self.playlist.last()
  68. +
  69. + return prev_items
  70. +
  71. def get_current_duration(self):
  72. """
  73. get time duration until next item
  74. @@ -359,7 +383,10 @@ class GalleryRadio(Gallery):
  75. return (nextd - nowtd).seconds
  76.  
  77. def to_user(self):
  78. - return self
  79. + return {
  80. + 'current_item': self.get_current_item().item.to_user(),
  81. + 'recently_played': [i.item.to_user() for i in self.get_previous_items()]
  82. + }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement