model = EventImage
-class EventAudioInline(TabularDynamicInlineAdmin):
+class EventAudioInline(StackedDynamicInlineAdmin):
model = EventAudio
-class EventVideoInline(TabularDynamicInlineAdmin):
+class EventVideoInline(StackedDynamicInlineAdmin):
model = EventVideo
--- /dev/null
+# -*- 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',
+ ),
+ ]
--- /dev/null
+# -*- 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'),
+ ),
+ ]
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)
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)
admin.site.register(Video, VideoAdmin)
admin.site.register(Audio, AudioAdmin)
admin.site.register(Playlist, PlaylistAdmin)
-admin.site.register(VideoCategory)
+admin.site.register(MediaCategory)
--- /dev/null
+# -*- 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'),
+ ),
+ ]
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):
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):