from organization.network.models import *
from organization.pages.models import *
from organization.core.admin import *
-from organization.pages.models import PageAudio, PageVideo
+from organization.pages.admin import PageImageInline, PageBlockInline, PageAudioInline, PageVideoInline
-class PageAudioInline(StackedDynamicInlineAdmin):
-
- model = PageAudio
- exclude = ("short_url", "keywords", "description", "slug", )
-
-
-class PageVideoInline(StackedDynamicInlineAdmin):
-
- model = PageVideo
- exclude = ("short_url", "keywords", "description", "slug", )
-
-
-# class OrganizationImageInline(TabularDynamicInlineAdmin):
-#
-# model = ModelImage
-#
-
class OrganizationAdmin(BaseTranslationModelAdmin):
model = Organization
- # inlines = [OrganizationImageInline,]
+ #inlines = [OrganizationImageInline,]
-class DepartmentPageBlockInline(StackedDynamicInlineAdmin):
+class DepartmentPageAdmin(PageAdmin):
- model = PageBlock
+ inlines = [PageImageInline, PageBlockInline, PageAudioInline, PageVideoInline, ]
-class DepartmentPageImageInline(TabularDynamicInlineAdmin):
+class DepartmentAdmin(BaseTranslationModelAdmin):
- model = PageImage
+ model = Department
-class DepartmentPageAdmin(PageAdmin):
+class TeamAdmin(BaseTranslationModelAdmin):
- inlines = [DepartmentPageImageInline, DepartmentPageBlockInline, PageAudioInline, PageVideoInline, ]
+ model = Team
-class DepartmentAdmin(BaseTranslationModelAdmin):
+class TeamPageAdmin(PageAdmin):
- model = Department
+ inlines = [PageImageInline, PageBlockInline, PageAudioInline, PageVideoInline, ]
-class TeamAdmin(BaseTranslationModelAdmin):
+class PersonAdminBase(BaseTranslationModelAdmin):
- model = Team
+ model = Person
-class TeamPageImageInline(TabularDynamicInlineAdmin):
+class PersonActivityInline(StackedDynamicInlineAdmin):
- model = PageImage
+ model = PersonActivity
+ fk_name = 'person'
-class TeamPageBlockInline(StackedDynamicInlineAdmin):
- model = PageBlock
+class PersonAudioInline(StackedDynamicInlineAdmin):
+ model = PersonAudio
-class TeamPageAdmin(PageAdmin):
- inlines = [TeamPageImageInline, TeamPageBlockInline, PageAudioInline, PageVideoInline, ]
+class PersonVideoInline(StackedDynamicInlineAdmin):
+ model = PersonVideo
-class PersonAdminBase(BaseTranslationModelAdmin):
- model = Person
+class PersonLinkInline(StackedDynamicInlineAdmin):
+ model = PersonLink
-# class PersonLinkInline(StackedDynamicInlineAdmin):
-#
-# model = DisplayableLink
+class PersonImageInline(TabularDynamicInlineAdmin):
-class PersonActivityInline(StackedDynamicInlineAdmin):
+ model = PersonImage
- model = PersonActivity
- fk_name = 'person'
+class PersonBlockInline(StackedDynamicInlineAdmin):
+
+ model = PersonBlock
-# class PersonImageInline(TabularDynamicInlineAdmin):
-#
-# model = DisplayableImage
-#
class PersonAdmin(BaseTranslationModelAdmin):
model = Person
- # inlines = [PersonImageInline, PersonActivityInline, PersonLinkInline, ]
+ inlines = [PersonActivityInline, PersonAudioInline, PersonImageInline, PersonVideoInline, PersonBlockInline, PersonLinkInline ]
first_fields = ['last_name', 'first_name', 'title', 'gender', 'user']
def get_fieldsets(self, request, obj = None):
--- /dev/null
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2016-09-02 09:54
+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', '0002_auto_20160901_1737'),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='PersonAudio',
+ 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.Person', verbose_name='project')),
+ ],
+ options={
+ 'abstract': False,
+ },
+ bases=('organization-media.audio',),
+ ),
+ migrations.CreateModel(
+ name='PersonBlock',
+ 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.Person', verbose_name='project')),
+ ],
+ options={
+ 'ordering': ('_order',),
+ },
+ ),
+ migrations.CreateModel(
+ name='PersonImage',
+ 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.Person', verbose_name='project')),
+ ],
+ options={
+ 'ordering': ('_order',),
+ },
+ ),
+ migrations.CreateModel(
+ name='PersonLink',
+ 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.Person', verbose_name='project')),
+ ],
+ options={
+ 'verbose_name_plural': 'links',
+ 'verbose_name': 'link',
+ 'abstract': False,
+ },
+ ),
+ migrations.CreateModel(
+ name='PersonVideo',
+ 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.Person', verbose_name='project')),
+ ],
+ options={
+ 'abstract': False,
+ },
+ bases=('organization-media.video',),
+ ),
+ ]
from mezzanine.utils.models import AdminThumbMixin, upload_to
from organization.core.models import *
+from organization.media.models import *
from django_countries.fields import CountryField
# from .nationalities.fields import NationalityField
super(Person, self).save(*args, **kwargs)
+class PersonAudio(Audio):
+
+ project = models.ForeignKey(Person, verbose_name=_('project'), related_name='audios', blank=True, null=True, on_delete=models.SET_NULL)
+
+
+class PersonVideo(Video):
+
+ project = models.ForeignKey(Person, verbose_name=_('project'), related_name='videos', blank=True, null=True, on_delete=models.SET_NULL)
+
+
+class PersonLink(Link):
+
+ project = models.ForeignKey(Person, verbose_name=_('project'), related_name='links', blank=True, null=True, on_delete=models.SET_NULL)
+
+
+class PersonImage(Image):
+
+ project = models.ForeignKey(Person, verbose_name=_('project'), related_name='images', blank=True, null=True, on_delete=models.SET_NULL)
+
+
+class PersonBlock(Block):
+
+ project = models.ForeignKey(Person, verbose_name=_('project'), related_name='blocks', blank=True, null=True, on_delete=models.SET_NULL)
+
class ActivityStatus(Named):