From 80cd5baa184a5cc8cd1d9e05c792dcf374d46da7 Mon Sep 17 00:00:00 2001 From: bkfox Date: Mon, 10 Oct 2022 19:25:48 +0200 Subject: [PATCH] names & conditional display of audio in admin --- aircox/admin/sound.py | 7 ++++--- aircox/management/commands/sounds_monitor.py | 2 +- aircox/models/sound.py | 6 +++--- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/aircox/admin/sound.py b/aircox/admin/sound.py index 3dc35b5..259d480 100644 --- a/aircox/admin/sound.py +++ b/aircox/admin/sound.py @@ -45,7 +45,7 @@ class SoundAdmin(SortableAdminBase, admin.ModelAdmin): 'type', 'duration', 'is_public', 'is_good_quality', 'is_downloadable', 'audio'] list_filter = ('type', 'is_good_quality', 'is_public') - list_editable = ['name', 'type', 'is_public', 'is_downloadable'] + list_editable = ['name', 'is_public', 'is_downloadable'] search_fields = ['name', 'program__title'] fieldsets = [ @@ -53,7 +53,7 @@ class SoundAdmin(SortableAdminBase, admin.ModelAdmin): (None, {'fields': ['duration', 'is_public', 'is_downloadable', 'is_good_quality', 'mtime']}), ] - readonly_fields = ('file', 'duration',) + readonly_fields = ('file', 'duration', 'type') inlines = [SoundTrackInline] def related(self, obj): @@ -63,7 +63,8 @@ class SoundAdmin(SortableAdminBase, admin.ModelAdmin): related.short_description = _('Program / Episode') def audio(self, obj): - return mark_safe(''.format(obj.file.url)) + return mark_safe(''.format(obj.file.url)) \ + if obj.type != Sound.TYPE_REMOVED else '' audio.short_description = _('Audio') diff --git a/aircox/management/commands/sounds_monitor.py b/aircox/management/commands/sounds_monitor.py index 8e8cf87..66a975b 100755 --- a/aircox/management/commands/sounds_monitor.py +++ b/aircox/management/commands/sounds_monitor.py @@ -52,7 +52,7 @@ sound_path_re = re.compile( '^(?P[0-9]{4})(?P[0-9]{2})(?P[0-9]{2})' '(_(?P[0-9]{2})h(?P[0-9]{2}))?' '(_(?P[0-9]+))?' - '_?(?P.*)$' + '_?[ -]*(?P.*)$' ) diff --git a/aircox/models/sound.py b/aircox/models/sound.py index b3b19b4..c0185fc 100644 --- a/aircox/models/sound.py +++ b/aircox/models/sound.py @@ -214,9 +214,9 @@ class Sound(models.Model): def __check_name(self): if not self.name and self.file and self.file.name: # FIXME: later, remove date? - self.name = os.path.basename(self.file.name) - self.name = os.path.splitext(self.name)[0] - self.name = self.name.replace('_', ' ') + name = os.path.basename(self.file.name) + name = os.path.splitext(name)[0] + self.name = name.replace('_', ' ').strip() def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs)