]> git.parisson.com Git - mezzo.git/commitdiff
Organization : adding Image, Video, Block, Audio
authorEmilie <zawadzki@ircam.fr>
Fri, 2 Sep 2016 10:17:59 +0000 (12:17 +0200)
committerEmilie <zawadzki@ircam.fr>
Fri, 2 Sep 2016 10:17:59 +0000 (12:17 +0200)
app/organization/network/admin.py
app/organization/network/migrations/0004_organizationaudio_organizationblock_organizationimage_organizationlink_organizationvideo.py [new file with mode: 0644]
app/organization/network/models.py
app/organization/network/translation.py

index fb2ff1ee26c8e28dfbc6175c6ae61334c4ad3dc5..582aeeb79a7b7a61b567cad2b4c2ed2f3220a74b 100644 (file)
@@ -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 (file)
index 0000000..1569f23
--- /dev/null
@@ -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',),
+        ),
+    ]
index 1dc688d5d630020480f1096b9350d99a7610c31f..9f7e610da78771db6b51b74330d263fba08dd463 100644 (file)
@@ -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)"""
 
index 9bd85d7cee225cc1b70ffb6b065188b3e0561d07..8f330ee0bd974d25ad05f89c58a5cb400dea854e 100644 (file)
@@ -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