From: Guillaume Pellerin Date: Tue, 27 Sep 2016 14:57:00 +0000 (+0200) Subject: Add EventAudio and EventVideo X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=fdd59c70ae96cd245e2ad29c7ec580efe3c820fc;p=mezzo.git Add EventAudio and EventVideo --- diff --git a/app/organization/agenda/admin.py b/app/organization/agenda/admin.py index d14e8b8d..01f53409 100644 --- a/app/organization/agenda/admin.py +++ b/app/organization/agenda/admin.py @@ -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 index 00000000..6983d766 --- /dev/null +++ b/app/organization/agenda/migrations/0004_eventaudio_eventvideo.py @@ -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',), + }, + ), + ] diff --git a/app/organization/agenda/models.py b/app/organization/agenda/models.py index c7a35b0e..cd090836 100644 --- a/app/organization/agenda/models.py +++ b/app/organization/agenda/models.py @@ -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" diff --git a/app/organization/agenda/translation.py b/app/organization/agenda/translation.py index c67994cc..335ae253 100644 --- a/app/organization/agenda/translation.py +++ b/app/organization/agenda/translation.py @@ -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):