diff --git a/savepointradio/profiles/signals.py b/savepointradio/profiles/signals.py index eb9525e..5539aa4 100644 --- a/savepointradio/profiles/signals.py +++ b/savepointradio/profiles/signals.py @@ -24,12 +24,13 @@ def update_song_plays(sender, instance, created, update_fields, **kwargs): """ if not created and update_fields: song = instance.song + user = instance.profile.user if 'played_at' in update_fields: song.last_played = instance.played_at song.num_played = F('num_played') + 1 song.save() if 'queued_at' in update_fields: - if song.is_song and not instance.profile.user.is_staff: + if song.is_song and (not user.is_staff or user.is_dj): queued = instance.queued_at song.next_play = song.get_date_when_requestable(queued) song.save() diff --git a/savepointradio/radio/models.py b/savepointradio/radio/models.py index 0a55287..78899a9 100644 --- a/savepointradio/radio/models.py +++ b/savepointradio/radio/models.py @@ -285,7 +285,7 @@ class Song(Disableable, Publishable, Timestampable, models.Model): period (or at all)? ''' if self._is_song() and self._is_available(): - return self.get_date_when_requestable() <= timezone.now() + return self.next_play is None or self.next_play <= timezone.now() return False _is_playable.boolean = True is_playable = property(_is_playable)