From d6cc7b9ac5e4a823d949ad4de794bbbad81e1625 Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Thu, 29 Sep 2016 13:11:18 +0200 Subject: [PATCH] Fix EventVideo and EventAudio, rename VideoCategory to MediaCategory --- app/organization/agenda/admin.py | 4 +- .../migrations/0006_auto_20160929_1257.py | 101 ++++++++++++++++++ .../migrations/0007_auto_20160929_1300.py | 26 +++++ app/organization/agenda/models.py | 4 +- app/organization/media/admin.py | 2 +- .../migrations/0002_auto_20160929_1310.py | 29 +++++ app/organization/media/models.py | 22 ++-- 7 files changed, 172 insertions(+), 16 deletions(-) create mode 100644 app/organization/agenda/migrations/0006_auto_20160929_1257.py create mode 100644 app/organization/agenda/migrations/0007_auto_20160929_1300.py create mode 100644 app/organization/media/migrations/0002_auto_20160929_1310.py diff --git a/app/organization/agenda/admin.py b/app/organization/agenda/admin.py index 01f53409..34a77cf6 100644 --- a/app/organization/agenda/admin.py +++ b/app/organization/agenda/admin.py @@ -27,12 +27,12 @@ class EventImageInline(TabularDynamicInlineAdmin): model = EventImage -class EventAudioInline(TabularDynamicInlineAdmin): +class EventAudioInline(StackedDynamicInlineAdmin): model = EventAudio -class EventVideoInline(TabularDynamicInlineAdmin): +class EventVideoInline(StackedDynamicInlineAdmin): model = EventVideo diff --git a/app/organization/agenda/migrations/0006_auto_20160929_1257.py b/app/organization/agenda/migrations/0006_auto_20160929_1257.py new file mode 100644 index 00000000..6fa20ff2 --- /dev/null +++ b/app/organization/agenda/migrations/0006_auto_20160929_1257.py @@ -0,0 +1,101 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.7 on 2016-09-29 10:57 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('organization-media', '0001_initial'), + ('organization-agenda', '0005_auto_20160928_1858'), + ] + + operations = [ + migrations.AlterModelOptions( + name='eventaudio', + options={'verbose_name': 'audio', 'verbose_name_plural': 'audios'}, + ), + migrations.AlterModelOptions( + name='eventvideo', + options={'verbose_name': 'video', 'verbose_name_plural': 'videos'}, + ), + migrations.AddField( + model_name='eventaudio', + name='audio_ptr', + field=models.OneToOneField(auto_created=True, default=1, on_delete=django.db.models.deletion.CASCADE, parent_link=True, serialize=False, to='organization-media.Audio'), + preserve_default=False, + ), + migrations.AddField( + model_name='eventvideo', + name='video_ptr', + field=models.OneToOneField(auto_created=True, default=1, on_delete=django.db.models.deletion.CASCADE, parent_link=True, serialize=False, to='organization-media.Video'), + preserve_default=False, + ), + migrations.RemoveField( + model_name='eventaudio', + name='_order', + ), + migrations.RemoveField( + model_name='eventaudio', + name='credits', + ), + migrations.RemoveField( + model_name='eventaudio', + name='description', + ), + migrations.RemoveField( + model_name='eventaudio', + name='file', + ), + migrations.RemoveField( + model_name='eventaudio', + name='id', + ), + migrations.RemoveField( + model_name='eventaudio', + name='title', + ), + migrations.RemoveField( + model_name='eventaudio', + name='type', + ), + migrations.AlterOrderWithRespectTo( + name='eventaudio', + order_with_respect_to='event', + ), + migrations.RemoveField( + model_name='eventvideo', + name='_order', + ), + migrations.RemoveField( + model_name='eventvideo', + name='credits', + ), + migrations.RemoveField( + model_name='eventvideo', + name='description', + ), + migrations.RemoveField( + model_name='eventvideo', + name='file', + ), + migrations.RemoveField( + model_name='eventvideo', + name='id', + ), + migrations.RemoveField( + model_name='eventvideo', + name='title', + ), + migrations.RemoveField( + model_name='eventvideo', + name='type', + ), + migrations.AlterOrderWithRespectTo( + name='eventvideo', + order_with_respect_to='event', + ), + ] diff --git a/app/organization/agenda/migrations/0007_auto_20160929_1300.py b/app/organization/agenda/migrations/0007_auto_20160929_1300.py new file mode 100644 index 00000000..dfae2d99 --- /dev/null +++ b/app/organization/agenda/migrations/0007_auto_20160929_1300.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.7 on 2016-09-29 11:00 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('organization-agenda', '0006_auto_20160929_1257'), + ] + + operations = [ + migrations.AlterField( + model_name='eventaudio', + name='audio_ptr', + field=models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='organization-media.Audio'), + ), + migrations.AlterField( + model_name='eventvideo', + name='video_ptr', + field=models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='organization-media.Video'), + ), + ] diff --git a/app/organization/agenda/models.py b/app/organization/agenda/models.py index cd090836..2ad946ea 100644 --- a/app/organization/agenda/models.py +++ b/app/organization/agenda/models.py @@ -56,7 +56,7 @@ class EventLink(Link): verbose_name_plural = _("links") -class EventAudio(Image): +class EventAudio(Audio): event = models.ForeignKey(Event, verbose_name=_('event'), related_name='audios', blank=True, null=True, on_delete=models.SET_NULL) @@ -66,7 +66,7 @@ class EventAudio(Image): order_with_respect_to = "event" -class EventVideo(Image): +class EventVideo(Video): event = models.ForeignKey(Event, verbose_name=_('event'), related_name='videos', blank=True, null=True, on_delete=models.SET_NULL) diff --git a/app/organization/media/admin.py b/app/organization/media/admin.py index a835c8af..e1c3d0a4 100644 --- a/app/organization/media/admin.py +++ b/app/organization/media/admin.py @@ -24,4 +24,4 @@ class PlaylistAdmin(admin.ModelAdmin): admin.site.register(Video, VideoAdmin) admin.site.register(Audio, AudioAdmin) admin.site.register(Playlist, PlaylistAdmin) -admin.site.register(VideoCategory) +admin.site.register(MediaCategory) diff --git a/app/organization/media/migrations/0002_auto_20160929_1310.py b/app/organization/media/migrations/0002_auto_20160929_1310.py new file mode 100644 index 00000000..9fef1078 --- /dev/null +++ b/app/organization/media/migrations/0002_auto_20160929_1310.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.7 on 2016-09-29 11:10 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('organization-media', '0001_initial'), + ] + + operations = [ + migrations.RenameModel( + old_name='VideoCategory', + new_name='MediaCategory', + ), + migrations.AlterModelOptions( + name='mediacategory', + options={'verbose_name': 'media category', 'verbose_name_plural': 'media categories'}, + ), + migrations.AddField( + model_name='audio', + name='category', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='audios', to='organization-media.MediaCategory', verbose_name='category'), + ), + ] diff --git a/app/organization/media/models.py b/app/organization/media/models.py index c7dcb68c..e7f95411 100644 --- a/app/organization/media/models.py +++ b/app/organization/media/models.py @@ -58,12 +58,13 @@ class Audio(Media): open_source_mime_type = 'audio/ogg' closed_source_mime_type = 'audio/mp4' + category = models.ForeignKey('MediaCategory', verbose_name=_('category'), related_name='audios', blank=True, null=True, on_delete=models.SET_NULL) class Meta: verbose_name = _('audio') def get_absolute_url(self): - return reverse("festival-video-detail", kwargs={"slug": self.slug}) + return reverse("festival-audio-detail", kwargs={"slug": self.slug}) class Video(Media): @@ -71,28 +72,27 @@ class Video(Media): open_source_mime_type = 'video/webm' closed_source_mime_type = 'video/mp4' - category = models.ForeignKey('VideoCategory', verbose_name=_('category'), related_name='videos', blank=True, null=True, on_delete=models.SET_NULL) + category = models.ForeignKey('MediaCategory', verbose_name=_('category'), related_name='videos', blank=True, null=True, on_delete=models.SET_NULL) class Meta: verbose_name = _('video') - @property - def html(self): - #TODO: get html content from medias.ircam.fr with request module - pass - def get_absolute_url(self): return reverse("festival-video-detail", kwargs={"slug": self.slug}) -class VideoCategory(Slugged): - """Video Category""" +class MediaCategory(Slugged): + """Media Category""" class Meta: - verbose_name = _('video category') + verbose_name = _('media category') + verbose_name_plural = _('media categories') def count(self): - return self.videos.published().count()+1 + try: + return self.videos.published().count()+1 + except: + return self.audios.published().count()+1 class Playlist(Slugged): -- 2.39.5