model = EventImage
+class EventAudioInline(TabularDynamicInlineAdmin):
+
+ model = EventAudio
+
+
+class EventVideoInline(TabularDynamicInlineAdmin):
+
+ model = EventVideo
+
+
class EventDepartmentInline(StackedDynamicInlineAdmin):
model = EventDepartment
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):
"""
--- /dev/null
+# -*- 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',),
+ },
+ ),
+ ]
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"