small fixes and tests

This commit is contained in:
bkfox
2015-11-03 10:55:20 +01:00
parent 2039579061
commit 86bc9c1251
4 changed files with 27 additions and 27 deletions

View File

@ -80,7 +80,13 @@ class EpisodeAdmin (NameableAdmin):
@admin.register(Diffusion)
class DiffusionAdmin (admin.ModelAdmin):
list_display = ('id', 'type', 'date', 'episode', 'program', 'stream')
def archives (self, obj):
sounds = obj.episode and \
(os.path.basename(sound.path) for sound in obj.episode.sounds.all()
if sound.type == Sound.Type['archive'] )
return ', '.join(sounds) if sounds else ''
list_display = ('id', 'type', 'date', 'archives', 'episode', 'program', 'stream')
list_filter = ('type', 'date', 'program', 'stream')
list_editable = ('type', 'date')

View File

@ -65,30 +65,31 @@ class Command (BaseCommand):
def add_arguments (self, parser):
parser.formatter_class=RawTextHelpFormatter
now = tz.datetime.today()
group = parser.add_argument_group('action')
group.add_argument(
'--update', action='store_true',
help = 'generate (unconfirmed) diffusions for the given month. '
help='generate (unconfirmed) diffusions for the given month. '
'These diffusions must be confirmed manually by changing '
'their type to "normal"')
group.add_argument(
'--clean', action='store_true',
help = 'remove unconfirmed diffusions older than the given month')
help='remove unconfirmed diffusions older than the given month')
group.add_argument(
'--check', action='store_true',
help = 'check future unconfirmed diffusions from the given date '
help='check future unconfirmed diffusions from the given date '
'agains\'t schedules and remove it if that do not match any '
'schedule')
group = parser.add_argument_group(
'date')
group.add_argument('--year', type=int, default=now.year,
group.add_argument(
'--year', type=int, default=now.year,
help='used by update, default is today\'s year')
group.add_argument('--month', type=int, default=now.month,
group.add_argument(
'--month', type=int, default=now.month,
help='used by update, default is today\'s month')
def handle (self, *args, **options):

View File

@ -48,7 +48,8 @@ class Command (BaseCommand):
)
parser.add_argument(
'-s', '--scan', action='store_true',
help='Scan programs directories for changes'
help='Scan programs directories for changes, plus check for a '
' matching episode on sounds that have not been yet assigned'
)
@ -101,6 +102,7 @@ class Command (BaseCommand):
self.report(program, path, 'no diffusion found for the given date')
return
diffusion = diffusion[0]
print(diffusion, sound_info)
return diffusion.episode or None
@staticmethod
@ -163,7 +165,7 @@ class Command (BaseCommand):
episode.sounds.add(sound)
episode.save()
self.check_sounds(Sound.objects.filter(path__startswith == subdir))
self.check_sounds(Sound.objects.filter(path__startswith = subdir))
def check_quality (self, check = False):
"""
@ -179,7 +181,6 @@ class Command (BaseCommand):
else:
files = [ sound.path for sound in sounds.filter(removed = False) ]
print('start quality check...')
cmd = quality_check.Command()
cmd.handle( files = files,

View File

@ -34,8 +34,8 @@ class Nameable (models.Model):
return slugify(self.name)
def __str__ (self):
if self.pk:
return '#{} {}'.format(self.pk, self.name)
#if self.pk:
# return '#{} {}'.format(self.pk, self.name)
return '{}'.format(self.name)
class Meta:
@ -391,7 +391,7 @@ class Diffusion (models.Model):
verbose_name_plural = _('Diffusions')
class Stream (models.Model):
class Stream (Nameable):
Type = {
'random': 0x00, # selection using random function
'schedule': 0x01, # selection using schedule
@ -399,11 +399,6 @@ class Stream (models.Model):
for key, value in Type.items():
ugettext_lazy(key)
name = models.CharField(
_('name'),
max_length = 32,
blank = True, null = True,
)
public = models.BooleanField(
_('public'),
default = True,
@ -435,9 +430,6 @@ class Stream (models.Model):
# - random lists
# - scheduled lists
def __str__ (self):
return '#{} {}'.format(self.priority, self.name)
class Program (Nameable):
stream = models.ForeignKey(