From 86bc9c125180d3dcd99205e24aead84cacb9ba36 Mon Sep 17 00:00:00 2001 From: bkfox Date: Tue, 3 Nov 2015 10:55:20 +0100 Subject: [PATCH] small fixes and tests --- aircox_programs/admin.py | 8 +++++- .../management/commands/diffusions_monitor.py | 25 ++++++++++--------- .../management/commands/sounds_monitor.py | 7 +++--- aircox_programs/models.py | 14 +++-------- 4 files changed, 27 insertions(+), 27 deletions(-) diff --git a/aircox_programs/admin.py b/aircox_programs/admin.py index 10827df..16e0422 100755 --- a/aircox_programs/admin.py +++ b/aircox_programs/admin.py @@ -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') diff --git a/aircox_programs/management/commands/diffusions_monitor.py b/aircox_programs/management/commands/diffusions_monitor.py index 4fcf262..807da91 100644 --- a/aircox_programs/management/commands/diffusions_monitor.py +++ b/aircox_programs/management/commands/diffusions_monitor.py @@ -65,31 +65,32 @@ 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. ' - 'These diffusions must be confirmed manually by changing ' - 'their type to "normal"') + 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 ' - 'agains\'t schedules and remove it if that do not match any ' - 'schedule') + 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, - help='used by update, default is today\'s year') - group.add_argument('--month', type=int, default=now.month, - help='used by update, default is today\'s month') + 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, + help='used by update, default is today\'s month') def handle (self, *args, **options): date = tz.datetime(year = options.get('year'), diff --git a/aircox_programs/management/commands/sounds_monitor.py b/aircox_programs/management/commands/sounds_monitor.py index 0f72d27..e31132d 100644 --- a/aircox_programs/management/commands/sounds_monitor.py +++ b/aircox_programs/management/commands/sounds_monitor.py @@ -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, diff --git a/aircox_programs/models.py b/aircox_programs/models.py index f10cb9c..4316152 100755 --- a/aircox_programs/models.py +++ b/aircox_programs/models.py @@ -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(