From 5b7bf8ab263fc5746cf01de1e79e3f78f142a260 Mon Sep 17 00:00:00 2001 From: Emilie Date: Wed, 27 Jul 2016 16:43:35 +0200 Subject: [PATCH] Add Photo and BlockPage for Team, Department, Basic page + BooleanField into BlockPage --- README.rst | 3 + app/organization/core/admin.py | 5 +- .../migrations/0008_auto_20160727_1553.py | 56 +++++++++++ .../0009_pageblock_with_separator.py | 20 ++++ app/organization/core/models.py | 6 +- .../0003_remove_playlist_description.py | 19 ++++ app/organization/media/models.py | 6 +- app/organization/team/admin.py | 6 +- .../migrations/0011_auto_20160727_1631.py | 96 +++++++++++++++++++ app/organization/team/models.py | 4 +- 10 files changed, 211 insertions(+), 10 deletions(-) create mode 100644 app/organization/core/migrations/0008_auto_20160727_1553.py create mode 100644 app/organization/core/migrations/0009_pageblock_with_separator.py create mode 100644 app/organization/media/migrations/0003_remove_playlist_description.py create mode 100644 app/organization/team/migrations/0011_auto_20160727_1631.py diff --git a/README.rst b/README.rst index 2cc072ae..604b9ef9 100644 --- a/README.rst +++ b/README.rst @@ -83,6 +83,9 @@ Gulp require nodejs installed on your computer to work. bundle install +/!\ If you have an issue with ffi module, try to install dev package from ruby: +apt-get install ruby-dev + Compile static files ================== diff --git a/app/organization/core/admin.py b/app/organization/core/admin.py index 59b3ba7d..3f9b033f 100644 --- a/app/organization/core/admin.py +++ b/app/organization/core/admin.py @@ -14,5 +14,8 @@ class PageImageInline(TabularDynamicInlineAdmin): model = PageImage +class BasicPageAdmin(PageAdmin): -admin.site.register(BasicPage, PageAdmin) + inlines = [PageBlockInline, PageImageInline] + +admin.site.register(BasicPage, BasicPageAdmin) diff --git a/app/organization/core/migrations/0008_auto_20160727_1553.py b/app/organization/core/migrations/0008_auto_20160727_1553.py new file mode 100644 index 00000000..e246faf2 --- /dev/null +++ b/app/organization/core/migrations/0008_auto_20160727_1553.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.7 on 2016-07-27 13:53 +from __future__ import unicode_literals + +from django.db import migrations, models +import mezzanine.core.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ('organization-core', '0007_auto_20160726_0042'), + ] + + operations = [ + migrations.AddField( + model_name='basicpage', + name='photo', + field=mezzanine.core.fields.FileField(blank=True, max_length=1024, verbose_name='photo'), + ), + migrations.AddField( + model_name='basicpage', + name='photo_alignment', + field=models.CharField(blank=True, choices=[('left', 'left'), ('center', 'center'), ('right', 'right')], default='left', max_length=32, verbose_name='photo alignment'), + ), + migrations.AddField( + model_name='basicpage', + name='photo_card', + field=mezzanine.core.fields.FileField(blank=True, max_length=1024, verbose_name='card photo'), + ), + migrations.AddField( + model_name='basicpage', + name='photo_card_credits', + field=models.CharField(blank=True, max_length=255, null=True, verbose_name='photo card credits'), + ), + migrations.AddField( + model_name='basicpage', + name='photo_credits', + field=models.CharField(blank=True, max_length=255, null=True, verbose_name='photo credits'), + ), + migrations.AddField( + model_name='basicpage', + name='photo_description', + field=models.TextField(blank=True, verbose_name='photo description'), + ), + migrations.AddField( + model_name='basicpage', + name='photo_slider', + field=mezzanine.core.fields.FileField(blank=True, max_length=1024, verbose_name='slider photo'), + ), + migrations.AddField( + model_name='basicpage', + name='photo_slider_credits', + field=models.CharField(blank=True, max_length=255, null=True, verbose_name='photo slider credits'), + ), + ] diff --git a/app/organization/core/migrations/0009_pageblock_with_separator.py b/app/organization/core/migrations/0009_pageblock_with_separator.py new file mode 100644 index 00000000..49ac7b1c --- /dev/null +++ b/app/organization/core/migrations/0009_pageblock_with_separator.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.7 on 2016-07-27 14:38 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('organization-core', '0008_auto_20160727_1553'), + ] + + operations = [ + migrations.AddField( + model_name='pageblock', + name='with_separator', + field=models.BooleanField(default=False), + ), + ] diff --git a/app/organization/core/models.py b/app/organization/core/models.py index 9ce0d064..b9a5f5d4 100644 --- a/app/organization/core/models.py +++ b/app/organization/core/models.py @@ -6,7 +6,7 @@ from django.core.urlresolvers import reverse, reverse_lazy from mezzanine.pages.models import Page, RichText from mezzanine.core.fields import RichTextField, OrderField, FileField from mezzanine.core.models import Displayable, Slugged, Orderable - +from organization.media.models import Photo COLOR_CHOICES = (('black', _('black')), ('yellow', _('yellow')), ('red', _('red'))) @@ -55,7 +55,6 @@ class SubTitle(models.Model): class Meta: abstract = True - class Category(Named): """Category description)""" @@ -66,7 +65,7 @@ class Category(Named): return self.name -class BasicPage(Page, SubTitle, RichText): +class BasicPage(Page, SubTitle, Photo, RichText): class Meta: verbose_name = 'basic page' @@ -75,6 +74,7 @@ class BasicPage(Page, SubTitle, RichText): class PageBlock(Titled, RichText): page = models.ForeignKey(Page, verbose_name=_('page'), blank=True, null=True, on_delete=models.SET_NULL) + with_separator = models.BooleanField(default=False) background_color = models.CharField(_('background color'), max_length=32, choices=COLOR_CHOICES, blank=True) class Meta: diff --git a/app/organization/media/migrations/0003_remove_playlist_description.py b/app/organization/media/migrations/0003_remove_playlist_description.py new file mode 100644 index 00000000..23459290 --- /dev/null +++ b/app/organization/media/migrations/0003_remove_playlist_description.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.7 on 2016-07-27 13:53 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('organization-media', '0002_auto_20160721_1351'), + ] + + operations = [ + migrations.RemoveField( + model_name='playlist', + name='description', + ), + ] diff --git a/app/organization/media/models.py b/app/organization/media/models.py index 6d3269c9..a85187c2 100644 --- a/app/organization/media/models.py +++ b/app/organization/media/models.py @@ -8,8 +8,7 @@ from mezzanine.core.fields import RichTextField, OrderField, FileField from mezzanine.utils.models import AdminThumbMixin, upload_to from mezzanine_agenda.models import Event -from organization.core.models import * - +from django.conf import settings ALIGNMENT_CHOICES = (('left', _('left')), ('center', _('center')), ('right', _('right'))) MEDIA_BASE_URL = getattr(settings, 'MEDIA_BASE_URL', 'http://medias.ircam.fr/embed/media/') @@ -119,10 +118,11 @@ class VideoCategory(Slugged): return self.videos.published().count()+1 -class Playlist(Slugged, Description): +class Playlist(Slugged): """(Playlist description)""" audios = models.ManyToManyField('Audio', verbose_name=_('audios'), related_name='playlists', blank=True) + #description = models.OneToOneField('organization-core.Description', verbose_name=_('description'), related_name='description', blank=True, on_delete=models.CASCADE) def __str__(self): return self.title diff --git a/app/organization/team/admin.py b/app/organization/team/admin.py index 81ee1500..aa031152 100644 --- a/app/organization/team/admin.py +++ b/app/organization/team/admin.py @@ -26,6 +26,10 @@ class TeamAdmin(PageAdmin): inlines = [PageBlockInline, PageImageInline] +class DepartmentAdmin(PageAdmin): + + inlines = [PageBlockInline, PageImageInline] + class PersonAdminBase(admin.ModelAdmin): @@ -48,7 +52,7 @@ class PersonAdmin(BaseTranslationModelAdmin): admin.site.register(Organization, OrganizationAdmin) admin.site.register(OrganizationType) -admin.site.register(Department, PageAdmin) +admin.site.register(Department, DepartmentAdmin) admin.site.register(Team, TeamAdmin) # admin.site.register(Team) admin.site.register(Person, PersonAdmin) diff --git a/app/organization/team/migrations/0011_auto_20160727_1631.py b/app/organization/team/migrations/0011_auto_20160727_1631.py new file mode 100644 index 00000000..6c37a93a --- /dev/null +++ b/app/organization/team/migrations/0011_auto_20160727_1631.py @@ -0,0 +1,96 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.7 on 2016-07-27 14:31 +from __future__ import unicode_literals + +from django.db import migrations, models +import mezzanine.core.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ('organization-team', '0010_auto_20160725_0201'), + ] + + operations = [ + migrations.AddField( + model_name='department', + name='photo', + field=mezzanine.core.fields.FileField(blank=True, max_length=1024, verbose_name='photo'), + ), + migrations.AddField( + model_name='department', + name='photo_alignment', + field=models.CharField(blank=True, choices=[('left', 'left'), ('center', 'center'), ('right', 'right')], default='left', max_length=32, verbose_name='photo alignment'), + ), + migrations.AddField( + model_name='department', + name='photo_card', + field=mezzanine.core.fields.FileField(blank=True, max_length=1024, verbose_name='card photo'), + ), + migrations.AddField( + model_name='department', + name='photo_card_credits', + field=models.CharField(blank=True, max_length=255, null=True, verbose_name='photo card credits'), + ), + migrations.AddField( + model_name='department', + name='photo_credits', + field=models.CharField(blank=True, max_length=255, null=True, verbose_name='photo credits'), + ), + migrations.AddField( + model_name='department', + name='photo_description', + field=models.TextField(blank=True, verbose_name='photo description'), + ), + migrations.AddField( + model_name='department', + name='photo_slider', + field=mezzanine.core.fields.FileField(blank=True, max_length=1024, verbose_name='slider photo'), + ), + migrations.AddField( + model_name='department', + name='photo_slider_credits', + field=models.CharField(blank=True, max_length=255, null=True, verbose_name='photo slider credits'), + ), + migrations.AddField( + model_name='team', + name='photo', + field=mezzanine.core.fields.FileField(blank=True, max_length=1024, verbose_name='photo'), + ), + migrations.AddField( + model_name='team', + name='photo_alignment', + field=models.CharField(blank=True, choices=[('left', 'left'), ('center', 'center'), ('right', 'right')], default='left', max_length=32, verbose_name='photo alignment'), + ), + migrations.AddField( + model_name='team', + name='photo_card', + field=mezzanine.core.fields.FileField(blank=True, max_length=1024, verbose_name='card photo'), + ), + migrations.AddField( + model_name='team', + name='photo_card_credits', + field=models.CharField(blank=True, max_length=255, null=True, verbose_name='photo card credits'), + ), + migrations.AddField( + model_name='team', + name='photo_credits', + field=models.CharField(blank=True, max_length=255, null=True, verbose_name='photo credits'), + ), + migrations.AddField( + model_name='team', + name='photo_description', + field=models.TextField(blank=True, verbose_name='photo description'), + ), + migrations.AddField( + model_name='team', + name='photo_slider', + field=mezzanine.core.fields.FileField(blank=True, max_length=1024, verbose_name='slider photo'), + ), + migrations.AddField( + model_name='team', + name='photo_slider_credits', + field=models.CharField(blank=True, max_length=255, null=True, verbose_name='photo slider credits'), + ), + ] diff --git a/app/organization/team/models.py b/app/organization/team/models.py index 60905fc6..580d043f 100644 --- a/app/organization/team/models.py +++ b/app/organization/team/models.py @@ -78,7 +78,7 @@ class OrganizationType(Named): verbose_name = _('organization type') -class Department(Page, SubTitle, RichText): +class Department(Page, SubTitle, RichText, Photo): """(Department description)""" organization = models.ForeignKey('Organization', verbose_name=_('organization')) @@ -89,7 +89,7 @@ class Department(Page, SubTitle, RichText): verbose_name = _('department') -class Team(Page, SubTitle, RichText): +class Team(Page, SubTitle, RichText, Photo): """(Team description)""" # department = models.ForeignKey('Department', verbose_name=_('department'), related_name="teams", blank=True, null=True, on_delete=models.SET_NULL) -- 2.39.5