class Meta:
abstract = True
+
+
+class RelatedTitle(models.Model):
+
+ title = models.CharField(_('title'), max_length=1024, null=True, blank=True)
+
+ class Meta:
+ abstract = True
from django.contrib import admin
from django import forms
from copy import deepcopy
+from modeltranslation.admin import TranslationTabularInline
from mezzanine.core.admin import *
from mezzanine.pages.admin import PageAdmin
from organization.magazine.models import *
)
+class ArticleRelatedTitleAdmin(TranslationTabularInline):
+
+ model = ArticleRelatedTitle
+
+
class ArticleAdminDisplayable(DisplayableAdmin):
fieldsets = deepcopy(ArticleAdmin.fieldsets)
filter_horizontal = ['categories',]
inlines = [ArticleImageInline,
ArticlePersonAutocompleteInlineAdmin,
+ ArticleRelatedTitleAdmin,
DynamicContentArticleInline,
ArticlePlaylistInline]
--- /dev/null
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.10 on 2016-10-28 14:13
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('organization-magazine', '0014_brief_style'),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='ArticleRelatedTitle',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('title', models.CharField(blank=True, max_length=1024, null=True, verbose_name='title')),
+ ('article', models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='related_title', to='organization-magazine.Article', verbose_name='article')),
+ ],
+ options={
+ 'verbose_name': 'related title',
+ },
+ ),
+ migrations.AlterOrderWithRespectTo(
+ name='articlerelatedtitle',
+ order_with_respect_to='article',
+ ),
+ ]
--- /dev/null
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.10 on 2016-10-28 14:17
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('organization-magazine', '0015_auto_20161028_1613'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='articlerelatedtitle',
+ name='title_en',
+ field=models.CharField(blank=True, max_length=1024, null=True, verbose_name='title'),
+ ),
+ migrations.AddField(
+ model_name='articlerelatedtitle',
+ name='title_fr',
+ field=models.CharField(blank=True, max_length=1024, null=True, verbose_name='title'),
+ ),
+ ]
order_with_respect_to = "article"
+class ArticleRelatedTitle(RelatedTitle):
+
+ article = models.OneToOneField("Article", verbose_name=_('article'), related_name='related_title', blank=True, null=True, on_delete=models.SET_NULL)
+
+ class Meta:
+ verbose_name = _("related title")
+ order_with_respect_to = "article"
+
+
class ArticlePlaylist(PlaylistRelated):
article = models.ForeignKey(Article, verbose_name=_('article'), related_name='playlists', blank=True, null=True, on_delete=models.SET_NULL)
class ArticlePlaylistTranslationOptions(TranslationOptions):
pass
+
+
+@register(ArticleRelatedTitle)
+class ArticleRelatedTitleTranslationOptions(TranslationOptions):
+
+ fields = ('title', )
from django.contrib import admin
+from modeltranslation.admin import TranslationTabularInline
from mezzanine.utils.static import static_lazy as static
from copy import deepcopy
from mezzanine.core.admin import *
)
+class PageRelatedTitleAdmin(TranslationTabularInline):
+
+ model = PageRelatedTitle
+
+
class CustomPageAdmin(PageAdmin):
inlines = [PageBlockInline,
PageLinkInline,
PersonListBlockAutocompleteInlineAdmin,
PageProductListInline,
+ PageRelatedTitleAdmin,
DynamicContentPageInline
]
--- /dev/null
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.10 on 2016-10-28 13:16
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('pages', '0005_auto_20160923_1219'),
+ ('organization-pages', '0013_auto_20161026_1025'),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='PageRelatedTitle',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('title', models.CharField(blank=True, max_length=1024, null=True, verbose_name='title')),
+ ('page', models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='related_title', to='pages.Page', verbose_name='page')),
+ ],
+ options={
+ 'verbose_name': 'related title',
+ },
+ ),
+ migrations.AlterOrderWithRespectTo(
+ name='pagerelatedtitle',
+ order_with_respect_to='page',
+ ),
+ ]
--- /dev/null
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.10 on 2016-10-28 13:41
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('organization-pages', '0014_auto_20161028_1516'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='pagerelatedtitle',
+ name='title_en',
+ field=models.CharField(blank=True, max_length=1024, null=True, verbose_name='title'),
+ ),
+ migrations.AddField(
+ model_name='pagerelatedtitle',
+ name='title_fr',
+ field=models.CharField(blank=True, max_length=1024, null=True, verbose_name='title'),
+ ),
+ ]
order_with_respect_to = "page"
+class PageRelatedTitle(RelatedTitle):
+
+ page = models.OneToOneField(Page, verbose_name=_('page'), related_name='related_title', blank=True, null=True, on_delete=models.SET_NULL)
+
+ class Meta:
+ verbose_name = _("related title")
+ order_with_respect_to = "page"
+
+
class DynamicContentPage(DynamicContent, Orderable):
page = models.ForeignKey(Page, verbose_name=_('page'), related_name='dynamic_content_pages', blank=True, null=True, on_delete=models.SET_NULL)
class LinkImageTranslationOptions(TranslationOptions):
pass
+
+
+@register(PageRelatedTitle)
+class PageRelatedTitleTranslationOptions(TranslationOptions):
+
+ fields = ('title',)
{% load i18n mezzanine_tags keyword_tags organization_tags pages_tags %}
-{% if dynamic_content %}
+{% if dynamic_content.first.content_object %}
<hr class="mt0 mb0" />
<div class="white-bg pb2">
<div class="container">
<div class="row tac">
<div class="col-xs-12">
- <h2 class="dashed dashed--center mt2">{% trans "Also discover" %}</h2>
+ <h2 class="dashed dashed--center mt2">{% if object.related_title.title %}{{ object.related_title.title }}{% else %}{% trans "Also discover" %}{% endif %}</h2>
</div>
</div>
<div class="row tac">
{% endblock %}
{% block page_related_content %}
- {% with article.dynamic_content_articles.all as dynamic_content %}
+ {% with dynamic_content=article.dynamic_content_articles.all object=article %}
{% include "core/inc/related_content.html" %}
{% endwith %}
{% endblock %}
{% endwith %}
{% endblock %}
- {% block page_related_content %}
- {{ block.super }}
- {% endblock %}
{% endwith %}
{% include "core/inc/block.html" %}
{% endwith %}
{% endblock %}
-
-{% block page_related_content %}
- {% if page.departmentpage.department.articles.all %}
- <div class="white-bg pb2">
- <div class="page__block">
- <hr class="mt0" />
- <div class="container">
- <div class="row tac">
- <div class="col-xs-12">
- <h2 class="dashed dashed--center">{% trans "Also discover" %}</h2>
- </div>
- </div>
- <div class="row tac">
- {% for article in page.departmentpage.department.articles.all %}
- <div class="col-lg-3 col-md-4 col-sm-4 col-xs-6">
- {% include 'magazine/article/includes/article_card.html' %}
- </div>
- {% endfor %}
- </div>
- </div>
- </div>
- </div>
- {% endif %}
-{% endblock %}
<div class="white-bg">
{% block page_related_content %}
- {% with page.dynamic_content_pages.all as dynamic_content %}
+ {% with dynamic_content=page.dynamic_content_pages.all object=page %}
{% include "core/inc/related_content.html" %}
{% endwith %}
{% endblock %}