model = PageBlock
+class PageImageInline(TabularDynamicInlineAdmin):
+
+ model = PageImage
+
+
admin.site.register(BasicPage, PageAdmin)
--- /dev/null
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2016-07-25 22:38
+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 = [
+ ('pages', '0002_auto_20160725_0143'),
+ ('organization-core', '0005_auto_20160725_0201'),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='PageImage',
+ 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')),
+ ('file', mezzanine.core.fields.FileField(max_length=1024, verbose_name='Image')),
+ ('description', models.TextField(blank=True, verbose_name='photo description')),
+ ('credits', models.CharField(blank=True, max_length=256, null=True, verbose_name='photo credits')),
+ ('page', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='pages.Page')),
+ ],
+ options={
+ 'ordering': ('_order',),
+ 'verbose_name_plural': 'Images',
+ 'verbose_name': 'Image',
+ },
+ ),
+ ]
--- /dev/null
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2016-07-25 22:42
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('organization-core', '0006_pageimage'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='pageimage',
+ name='description_en',
+ field=models.TextField(blank=True, null=True, verbose_name='photo description'),
+ ),
+ migrations.AddField(
+ model_name='pageimage',
+ name='description_fr',
+ field=models.TextField(blank=True, null=True, verbose_name='photo description'),
+ ),
+ ]
from mezzanine.pages.models import Page, RichText
from mezzanine.core.fields import RichTextField, OrderField, FileField
-from mezzanine.core.models import Displayable, Slugged
+from mezzanine.core.models import Displayable, Slugged, Orderable
COLOR_CHOICES = (('black', _('black')), ('yellow', _('yellow')), ('red', _('red')))
class Meta:
verbose_name = 'page block'
+
+
+class PageImage(Orderable):
+ """
+ An image for a page
+ """
+
+ file = FileField(_("Image"), max_length=1024, format="Image", upload_to="images/pages")
+ description = models.TextField(_('photo description'), blank=True)
+ credits = models.CharField(_('photo credits'), max_length=256, blank=True, null=True)
+ page = models.ForeignKey(Page)
+
+
+ class Meta:
+ verbose_name = _("Image")
+ verbose_name_plural = _("Images")
+ order_with_respect_to = "page"
+
+ def __str__(self):
+ value = self.description
+ if not value:
+ value = self.file.name
+ if not value:
+ value = ""
+ return value
from modeltranslation.translator import translator, register, TranslationOptions
from mezzanine.pages.models import Page, RichText
from mezzanine.pages.translation import TranslatedRichText
-from organization.core.models import BasicPage, PageBlock
+from organization.core.models import BasicPage, PageBlock, PageImage
# @register(SubTitle)
# class SubTitleTranslationOptions(TranslationOptions):
class PageBlockTranslationOptions(TranslationOptions):
fields = ('title', 'content')
+
+
+@register(PageImage)
+class PageImageTranslationOptions(TranslationOptions):
+
+ fields = ('description',)
from mezzanine.core.admin import *
from mezzanine.pages.admin import PageAdmin
from organization.team.models import *
-from organization.core.admin import PageBlockInline
+from organization.core.admin import PageBlockInline, PageImageInline
class OrganizationAdmin(BaseTranslationModelAdmin):
model = Activity
-class ActivityInline(StackedDynamicInlineAdmin):
+class ActivityInline(TabularDynamicInlineAdmin):
model = Activity
class TeamAdmin(PageAdmin):
- inlines = [PageBlockInline,]
-
- def in_menu(self):
- return True
+ inlines = [PageBlockInline, PageImageInline]
class PersonAdminBase(admin.ModelAdmin):
from mezzanine.core.models import RichText, Displayable, Slugged
from mezzanine.core.fields import RichTextField, OrderField, FileField
from mezzanine.utils.models import AdminThumbMixin, upload_to
+from mezzanine.galleries.models import BaseGallery
from organization.media.models import Photo
from organization.core.models import Named, Titled, Description, SubTitle