return SomaLogLine.objects.filter(filepath__track__artist=self
).exclude(on_air=False).order_by('-play_timestamp')
+ def active_tracks(self):
+ return self.track_set.filter(nonstop_zones__isnull=False).distinct().order_by('title')
+
+ def available_tracks(self):
+ return self.track_set.filter(nonstop_zones__isnull=True).order_by('title')
+
class Album(models.Model):
name = models.CharField(_('Name'), max_length=255)
LANGUAGES = [
('en', _('English')),
('fr', _('French')),
- ('nl', _('Dutch'))
+ ('nl', _('Dutch')),
+ ('other', _('Other')),
+ ('na', _('Not applicable')),
]
class Track(models.Model):
artist = models.ForeignKey(Artist, null=True)
album = models.ForeignKey(Album, null=True)
instru = models.BooleanField(_('Instru'), default=False)
- language = models.CharField(max_length=3,
+ language = models.CharField(max_length=10,
choices=LANGUAGES, blank=True)
sabam = models.BooleanField('SABAM', default=True)
cfwb = models.BooleanField('CFWB', default=False)
if os.path.exists(nfile.get_local_filepath()):
return nfile.get_local_filepath()
if nfile:
- return nfile.get_local_filepath()
+ return nfile.get_local_filepath()
return None
def file_exists(self):
stream = models.ForeignKey(Stream, null=True, blank=True)
creation_timestamp = models.DateTimeField(auto_now_add=True, null=True)
added_to_nonstop_timestamp = models.DateTimeField(null=True)
+ auto_delayed = models.BooleanField(default=False)
def __str__(self):
return 'Diffusion of %s' % self.diffusion
diffusion = models.ForeignKey(RecurringStreamDiffusion, on_delete=models.CASCADE)
datetime = models.DateTimeField(_('Date/time'), db_index=True)
+ def __str__(self):
+ return 'Recurring stream of %s' % self.diffusion.stream
+
@property
def stream(self):
return self.diffusion.stream