From: Emilie Date: Fri, 2 Sep 2016 10:17:59 +0000 (+0200) Subject: Organization : adding Image, Video, Block, Audio X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=2c051d6497dd74c3e8450bf95b327f7cbc65b54f;p=mezzo.git Organization : adding Image, Video, Block, Audio --- diff --git a/app/organization/network/admin.py b/app/organization/network/admin.py index fb2ff1ee..582aeeb7 100644 --- a/app/organization/network/admin.py +++ b/app/organization/network/admin.py @@ -9,11 +9,39 @@ from organization.pages.models import * from organization.core.admin import * from organization.pages.admin import PageImageInline, PageBlockInline, PageAudioInline, PageVideoInline +class OrganizationAudioInline(StackedDynamicInlineAdmin): + + model = OrganizationAudio + + +class OrganizationVideoInline(StackedDynamicInlineAdmin): + + model = OrganizationVideo + + +class OrganizationLinkInline(StackedDynamicInlineAdmin): + + model = OrganizationLink + + +class OrganizationImageInline(TabularDynamicInlineAdmin): + + model = OrganizationImage + + +class OrganizationBlockInline(StackedDynamicInlineAdmin): + + model = OrganizationBlock + class OrganizationAdmin(BaseTranslationModelAdmin): model = Organization - #inlines = [OrganizationImageInline,] + inlines = [ OrganizationAudioInline, + OrganizationImageInline, + OrganizationVideoInline, + OrganizationBlockInline, + OrganizationLinkInline ] class DepartmentPageAdmin(PageAdmin): diff --git a/app/organization/network/migrations/0004_organizationaudio_organizationblock_organizationimage_organizationlink_organizationvideo.py b/app/organization/network/migrations/0004_organizationaudio_organizationblock_organizationimage_organizationlink_organizationvideo.py new file mode 100644 index 00000000..1569f231 --- /dev/null +++ b/app/organization/network/migrations/0004_organizationaudio_organizationblock_organizationimage_organizationlink_organizationvideo.py @@ -0,0 +1,87 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.7 on 2016-09-02 10:11 +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 = [ + ('organization-media', '0001_initial'), + ('organization-core', '0001_initial'), + ('organization-network', '0003_personaudio_personblock_personimage_personlink_personvideo'), + ] + + operations = [ + migrations.CreateModel( + name='OrganizationAudio', + fields=[ + ('audio_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='organization-media.Audio')), + ('project', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='audios', to='organization-network.Organization', verbose_name='project')), + ], + options={ + 'abstract': False, + }, + bases=('organization-media.audio',), + ), + migrations.CreateModel( + name='OrganizationBlock', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('content', mezzanine.core.fields.RichTextField(verbose_name='Content')), + ('_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')), + ('with_separator', models.BooleanField(default=False)), + ('background_color', models.CharField(blank=True, choices=[('black', 'black'), ('yellow', 'yellow'), ('red', 'red')], max_length=32, verbose_name='background color')), + ('project', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='blocks', to='organization-network.Organization', verbose_name='project')), + ], + options={ + 'ordering': ('_order',), + }, + ), + migrations.CreateModel( + name='OrganizationImage', + 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')), + ('project', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='images', to='organization-network.Organization', verbose_name='project')), + ], + options={ + 'ordering': ('_order',), + }, + ), + migrations.CreateModel( + name='OrganizationLink', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('url', models.URLField(blank=True, max_length=512, verbose_name='URL')), + ('link_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='organization-core.LinkType', verbose_name='link type')), + ('project', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='links', to='organization-network.Organization', verbose_name='project')), + ], + options={ + 'verbose_name_plural': 'links', + 'abstract': False, + 'verbose_name': 'link', + }, + ), + migrations.CreateModel( + name='OrganizationVideo', + fields=[ + ('video_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='organization-media.Video')), + ('project', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='videos', to='organization-network.Organization', verbose_name='project')), + ], + options={ + 'abstract': False, + }, + bases=('organization-media.video',), + ), + ] diff --git a/app/organization/network/models.py b/app/organization/network/models.py index 1dc688d5..9f7e610d 100644 --- a/app/organization/network/models.py +++ b/app/organization/network/models.py @@ -75,6 +75,30 @@ class Organization(Named, Address, URL): verbose_name = _('organization') +class OrganizationAudio(Audio): + + project = models.ForeignKey(Organization, verbose_name=_('project'), related_name='audios', blank=True, null=True, on_delete=models.SET_NULL) + + +class OrganizationVideo(Video): + + project = models.ForeignKey(Organization, verbose_name=_('project'), related_name='videos', blank=True, null=True, on_delete=models.SET_NULL) + + +class OrganizationLink(Link): + + project = models.ForeignKey(Organization, verbose_name=_('project'), related_name='links', blank=True, null=True, on_delete=models.SET_NULL) + + +class OrganizationImage(Image): + + project = models.ForeignKey(Organization, verbose_name=_('project'), related_name='images', blank=True, null=True, on_delete=models.SET_NULL) + + +class OrganizationBlock(Block): + + project = models.ForeignKey(Organization, verbose_name=_('project'), related_name='blocks', blank=True, null=True, on_delete=models.SET_NULL) + class OrganizationType(Named): """(OrganizationType description)""" @@ -136,7 +160,6 @@ class TeamPage(Page, SubTitled, RichText): verbose_name = _('team page') - class Person(Displayable, AdminThumbMixin): """(Person description)""" diff --git a/app/organization/network/translation.py b/app/organization/network/translation.py index 9bd85d7c..8f330ee0 100644 --- a/app/organization/network/translation.py +++ b/app/organization/network/translation.py @@ -73,3 +73,33 @@ class PersonImageTranslationOptions(TranslationOptions): class PersonBlockTranslationOptions(TranslationOptions): pass + + +@register(OrganizationAudio) +class OrganizationAudioTranslationOptions(TranslationOptions): + + pass + + +@register(OrganizationVideo) +class OrganizationVideoTranslationOptions(TranslationOptions): + + pass + + +@register(OrganizationLink) +class OrganizationLinkTranslationOptions(TranslationOptions): + + pass + + +@register(OrganizationImage) +class OrganizationImageTranslationOptions(TranslationOptions): + + pass + + +@register(OrganizationBlock) +class OrganizationBlockTranslationOptions(TranslationOptions): + + pass