]> git.parisson.com Git - mezzo.git/commitdiff
Task #328: add related titles
authorEmilie <zawadzki@ircam.fr>
Fri, 28 Oct 2016 14:26:11 +0000 (16:26 +0200)
committerEmilie <zawadzki@ircam.fr>
Fri, 28 Oct 2016 14:26:11 +0000 (16:26 +0200)
16 files changed:
app/organization/core/models.py
app/organization/magazine/admin.py
app/organization/magazine/migrations/0015_auto_20161028_1613.py [new file with mode: 0644]
app/organization/magazine/migrations/0016_auto_20161028_1617.py [new file with mode: 0644]
app/organization/magazine/models.py
app/organization/magazine/translation.py
app/organization/pages/admin.py
app/organization/pages/migrations/0014_auto_20161028_1516.py [new file with mode: 0644]
app/organization/pages/migrations/0015_auto_20161028_1541.py [new file with mode: 0644]
app/organization/pages/models.py
app/organization/pages/translation.py
app/templates/core/inc/related_content.html
app/templates/magazine/article/article_detail.html
app/templates/pages/custompage.html
app/templates/pages/departmentpage.html
app/templates/pages/page.html

index 0277e5d7ee86f695824b0b812439994103a28047..a145a3076a492739a0b1937d6f65793310756fbe 100644 (file)
@@ -253,3 +253,11 @@ class Address(models.Model):
 
     class Meta:
         abstract = True
+
+
+class RelatedTitle(models.Model):
+
+    title = models.CharField(_('title'), max_length=1024, null=True, blank=True)
+
+    class Meta:
+        abstract = True
index cf7e863c1ef80d462ccf46c5b295c538b964c007..8b9a45065aeb1e535e27c09265b93da8c0bc0fae 100644 (file)
@@ -1,6 +1,7 @@
 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 *
@@ -39,6 +40,11 @@ class DynamicContentArticleInline(TabularDynamicInlineAdmin):
         )
 
 
+class ArticleRelatedTitleAdmin(TranslationTabularInline):
+
+    model = ArticleRelatedTitle
+
+
 class ArticleAdminDisplayable(DisplayableAdmin):
 
     fieldsets = deepcopy(ArticleAdmin.fieldsets)
@@ -46,6 +52,7 @@ class ArticleAdminDisplayable(DisplayableAdmin):
     filter_horizontal = ['categories',]
     inlines = [ArticleImageInline,
               ArticlePersonAutocompleteInlineAdmin,
+              ArticleRelatedTitleAdmin,
               DynamicContentArticleInline,
               ArticlePlaylistInline]
 
diff --git a/app/organization/magazine/migrations/0015_auto_20161028_1613.py b/app/organization/magazine/migrations/0015_auto_20161028_1613.py
new file mode 100644 (file)
index 0000000..3607013
--- /dev/null
@@ -0,0 +1,31 @@
+# -*- 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',
+        ),
+    ]
diff --git a/app/organization/magazine/migrations/0016_auto_20161028_1617.py b/app/organization/magazine/migrations/0016_auto_20161028_1617.py
new file mode 100644 (file)
index 0000000..65ff4a1
--- /dev/null
@@ -0,0 +1,25 @@
+# -*- 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'),
+        ),
+    ]
index fad057f21496972a9629f6814b89444ae051b1f3..9272bf543c1e072bd3f28b89b5e1c05bbb501b50 100644 (file)
@@ -45,6 +45,15 @@ class ArticleImage(Image):
         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)
index e52ad434318076635c240097ff25cee13eccba8d..e8322017c7d20599bb4548546c8d80f5a0d6c326 100644 (file)
@@ -47,3 +47,9 @@ class DynamicContentArticleTranslationOptions(TranslationOptions):
 class ArticlePlaylistTranslationOptions(TranslationOptions):
 
     pass
+
+
+@register(ArticleRelatedTitle)
+class ArticleRelatedTitleTranslationOptions(TranslationOptions):
+
+    fields = ('title', )
index 9e346c0bbe4633b36b90b31e86f3abafafbcb265..33edf78391c7c6637fcdaf3de489d2bece536430 100644 (file)
@@ -1,4 +1,5 @@
 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 *
@@ -68,6 +69,11 @@ class DynamicContentPageInline(TabularDynamicInlineAdmin):
         )
 
 
+class PageRelatedTitleAdmin(TranslationTabularInline):
+
+    model = PageRelatedTitle
+
+
 class CustomPageAdmin(PageAdmin):
 
     inlines = [PageBlockInline,
@@ -76,6 +82,7 @@ class CustomPageAdmin(PageAdmin):
             PageLinkInline,
             PersonListBlockAutocompleteInlineAdmin,
             PageProductListInline,
+            PageRelatedTitleAdmin,
             DynamicContentPageInline
             ]
 
diff --git a/app/organization/pages/migrations/0014_auto_20161028_1516.py b/app/organization/pages/migrations/0014_auto_20161028_1516.py
new file mode 100644 (file)
index 0000000..8e9d0e2
--- /dev/null
@@ -0,0 +1,32 @@
+# -*- 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',
+        ),
+    ]
diff --git a/app/organization/pages/migrations/0015_auto_20161028_1541.py b/app/organization/pages/migrations/0015_auto_20161028_1541.py
new file mode 100644 (file)
index 0000000..2ba95f1
--- /dev/null
@@ -0,0 +1,25 @@
+# -*- 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'),
+        ),
+    ]
index 0832eaeffc534d46972a507373c660a70572bbd3..d674ca8daaef813b23661076c596ecd85ddd8457 100644 (file)
@@ -56,6 +56,15 @@ class PageLink(Link):
         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)
index aca424dd266aadb502ffdf8c472aca3341f30abf..fbddb7164b485c461b5f12137e75f1e7fa8c16b1 100644 (file)
@@ -68,3 +68,9 @@ class DynamicContentPageTranslationOptions(TranslationOptions):
 class LinkImageTranslationOptions(TranslationOptions):
 
     pass
+    
+
+@register(PageRelatedTitle)
+class PageRelatedTitleTranslationOptions(TranslationOptions):
+
+    fields = ('title',)
index 5599fc4d569bcf0c03d3b792d786792cf7cded3b..795c6e766d5819c1d43f39cf8d13a0e2bcf268e5 100644 (file)
@@ -1,11 +1,11 @@
 {% 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">
index df225d4b22bb258d2985fd5161028dac80003706..2552b324f5a6f697089a077418001246685ed1aa 100644 (file)
@@ -93,7 +93,7 @@
 {% 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 %}
index 406bdf5be6be147f3cb3dd6a536c226829d89ece..2ffb0b39f1f9015a3e3796975a4ad5a58af01ba1 100644 (file)
@@ -87,7 +87,4 @@
       {% endwith %}
     {% endblock %}
 
-    {% block page_related_content %}
-        {{ block.super }}
-    {% endblock %}
 {% endwith %}
index c3a459d98d8398d42b3ec1a8ec4433f50caa059e..c122ccdb42fd5011f73f98c2684ca6538d4aa375 100644 (file)
       {% 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 %}
index e86c36eac6616e9d27737e86f95cda0ceadac805..912b0ed38c184b0164f88672523b443caf59dd37 100644 (file)
     <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 %}