]> git.parisson.com Git - mezzo.git/commitdiff
Add EventAudio and EventVideo
authorGuillaume Pellerin <guillaume.pellerin@ircam.fr>
Tue, 27 Sep 2016 14:57:00 +0000 (16:57 +0200)
committerGuillaume Pellerin <guillaume.pellerin@ircam.fr>
Tue, 27 Sep 2016 14:57:00 +0000 (16:57 +0200)
app/organization/agenda/admin.py
app/organization/agenda/migrations/0004_eventaudio_eventvideo.py [new file with mode: 0644]
app/organization/agenda/models.py
app/organization/agenda/translation.py

index d14e8b8d09259703d59347dd756ed2f850fce4fe..01f53409dcb3d0db6541da6faff5bf78293b6685 100644 (file)
@@ -27,6 +27,16 @@ class EventImageInline(TabularDynamicInlineAdmin):
     model = EventImage
 
 
+class EventAudioInline(TabularDynamicInlineAdmin):
+
+    model = EventAudio
+
+
+class EventVideoInline(TabularDynamicInlineAdmin):
+
+    model = EventVideo
+
+
 class EventDepartmentInline(StackedDynamicInlineAdmin):
 
     model = EventDepartment
@@ -53,7 +63,8 @@ class CustomEventAdmin(EventAdmin):
     if settings.EVENT_USE_FEATURED_IMAGE:
         list_display.insert(0, "admin_thumb")
     list_filter = deepcopy(DisplayableAdmin.list_filter) + ("location", "category")
-    inlines = [EventBlockInline, EventImageInline, EventDepartmentInline, EventPersonInline, EventLinkInline]
+    inlines = [EventBlockInline, EventImageInline, EventDepartmentInline, EventPersonInline,
+                EventLinkInline, EventAudioInline, EventVideoInline]
 
     def save_form(self, request, form, change):
         """
diff --git a/app/organization/agenda/migrations/0004_eventaudio_eventvideo.py b/app/organization/agenda/migrations/0004_eventaudio_eventvideo.py
new file mode 100644 (file)
index 0000000..6983d76
--- /dev/null
@@ -0,0 +1,54 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2016-09-27 14:55
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+import mezzanine.core.fields
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('mezzanine_agenda', '0008_auto_20160926_1552'),
+        ('organization-agenda', '0003_eventlink_eventperson'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='EventAudio',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('_order', mezzanine.core.fields.OrderField(null=True, verbose_name='Order')),
+                ('title', models.CharField(max_length=1024, verbose_name='title')),
+                ('description', models.TextField(blank=True, verbose_name='description')),
+                ('file', mezzanine.core.fields.FileField(max_length=1024, verbose_name='Image')),
+                ('credits', models.CharField(blank=True, max_length=256, null=True, verbose_name='credits')),
+                ('type', models.CharField(choices=[('logo', 'logo'), ('slider', 'slider'), ('card', 'card'), ('page_slider', 'page slider')], max_length=64, verbose_name='type')),
+                ('event', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='audios', to='mezzanine_agenda.Event', verbose_name='event')),
+            ],
+            options={
+                'verbose_name_plural': 'audios',
+                'verbose_name': 'audio',
+                'ordering': ('_order',),
+            },
+        ),
+        migrations.CreateModel(
+            name='EventVideo',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('_order', mezzanine.core.fields.OrderField(null=True, verbose_name='Order')),
+                ('title', models.CharField(max_length=1024, verbose_name='title')),
+                ('description', models.TextField(blank=True, verbose_name='description')),
+                ('file', mezzanine.core.fields.FileField(max_length=1024, verbose_name='Image')),
+                ('credits', models.CharField(blank=True, max_length=256, null=True, verbose_name='credits')),
+                ('type', models.CharField(choices=[('logo', 'logo'), ('slider', 'slider'), ('card', 'card'), ('page_slider', 'page slider')], max_length=64, verbose_name='type')),
+                ('event', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='videos', to='mezzanine_agenda.Event', verbose_name='event')),
+            ],
+            options={
+                'verbose_name_plural': 'videos',
+                'verbose_name': 'video',
+                'ordering': ('_order',),
+            },
+        ),
+    ]
index c7a35b0e4cc9baa0872e2b7df93c5eec3a429169..cd090836bf40907bb84a674bada13d2b67c1b3d2 100644 (file)
@@ -54,3 +54,23 @@ class EventLink(Link):
     class Meta:
         verbose_name = _("link")
         verbose_name_plural = _("links")
+
+
+class EventAudio(Image):
+
+    event = models.ForeignKey(Event, verbose_name=_('event'), related_name='audios', blank=True, null=True, on_delete=models.SET_NULL)
+
+    class Meta:
+        verbose_name = _("audio")
+        verbose_name_plural = _("audios")
+        order_with_respect_to = "event"
+
+
+class EventVideo(Image):
+
+    event = models.ForeignKey(Event, verbose_name=_('event'), related_name='videos', blank=True, null=True, on_delete=models.SET_NULL)
+
+    class Meta:
+        verbose_name = _("video")
+        verbose_name_plural = _("videos")
+        order_with_respect_to = "event"
index c67994cc0d897180d122cb38f5ae5826742f54e6..335ae253b01ffa5216763dd72de0ec9b189d7899 100644 (file)
@@ -15,6 +15,18 @@ class EventImageTranslationOptions(TranslationOptions):
     fields = ()
 
 
+@register(EventAudio)
+class EventAudioTranslationOptions(TranslationOptions):
+
+    fields = ()
+
+
+@register(EventVideo)
+class EventVideoTranslationOptions(TranslationOptions):
+
+    fields = ()
+
+
 @register(EventDepartment)
 class EventDepartmentTranslationOptions(TranslationOptions):
 
@@ -26,6 +38,7 @@ class EventPersonTranslationOptions(TranslationOptions):
 
     fields = ()
 
+
 @register(EventLink)
 class EventPersonTranslationOptions(TranslationOptions):