]> git.parisson.com Git - mezzo.git/commitdiff
Create generic template for slider
authorEmilie <zawadzki@ircam.fr>
Fri, 12 Aug 2016 10:52:14 +0000 (12:52 +0200)
committerEmilie <zawadzki@ircam.fr>
Fri, 12 Aug 2016 10:52:14 +0000 (12:52 +0200)
app/organization/magazine/admin.py
app/organization/magazine/migrations/0011_articleimage.py [new file with mode: 0644]
app/organization/magazine/models.py
app/organization/magazine/translation.py
app/templates/core/inc/slider.html [new file with mode: 0644]
app/templates/magazine/article/article_detail.html
app/templates/pages/page.html

index 083621e203cd5b3141f83ca3e6fbf37dfa05a9db..2693a7357e84aca9bad2569068344c7f74905032 100644 (file)
@@ -4,7 +4,12 @@ from copy import deepcopy
 from mezzanine.core.admin import *
 from mezzanine.pages.admin import PageAdmin
 from orderable.admin import OrderableAdmin, OrderableTabularInline
-from organization.magazine.models import Article, Brief ,Topic
+from organization.magazine.models import Article, Brief, Topic, ArticleImage
+
+
+class ArticleImageInline(TabularDynamicInlineAdmin):
+
+    model = ArticleImage
 
 
 class ArticleAdmin(admin.ModelAdmin):
@@ -17,6 +22,7 @@ class ArticleAdminDisplayable(DisplayableAdmin):
     fieldsets = deepcopy(ArticleAdmin.fieldsets)
     exclude = ('related_posts',)
     filter_horizontal = ['categories', 'related_articles', ]
+    inlines = [ArticleImageInline,]
 
 
 class BriefAdmin(OrderableTabularInline):
diff --git a/app/organization/magazine/migrations/0011_articleimage.py b/app/organization/magazine/migrations/0011_articleimage.py
new file mode 100644 (file)
index 0000000..704be0a
--- /dev/null
@@ -0,0 +1,35 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2016-08-12 09:07
+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-magazine', '0010_auto_20160808_0118'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='ArticleImage',
+            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')),
+                ('description', models.TextField(blank=True, verbose_name='description')),
+                ('description_fr', models.TextField(blank=True, null=True, verbose_name='description')),
+                ('description_en', models.TextField(blank=True, null=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')),
+                ('article_fk', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='organization-magazine.Article', verbose_name='article')),
+            ],
+            options={
+                'verbose_name_plural': 'images',
+                'verbose_name': 'image',
+                'ordering': ('_order',),
+            },
+        ),
+    ]
index 63a11f7092ed20d28030c870ce7f55755ea738f8..f53d79ecab017cb1c2e80f5a9f53cbaefb24331d 100644 (file)
@@ -7,10 +7,19 @@ from mezzanine.core.models import RichText, Displayable, Slugged
 from mezzanine.pages.models import Page
 from mezzanine.blog.models import BlogPost
 from orderable.models import Orderable
-from organization.core.models import Named, Description
+from organization.core.models import Named, Description, Image
 from organization.media.models import Photo
 
 
+class ArticleImage(Image):
+
+    article_fk = models.ForeignKey("Article", verbose_name=_('article'))
+
+    class Meta:
+        verbose_name = _("image")
+        verbose_name_plural = _("images")
+        order_with_respect_to = "article"
+
 class Article(BlogPost, Photo):
 
     sub_title = models.CharField(_('sub title'), blank=True, max_length=1000)
index 42d08c9471afcd351a882cc629f1d0d318ff768b..d2351c7745a723550e325633358d8d332d41d65b 100644 (file)
@@ -3,8 +3,8 @@ from mezzanine.pages.models import Page, RichText
 from modeltranslation.translator import TranslationOptions
 from mezzanine.core.translation import (TranslatedSlugged,
                                         TranslatedDisplayable,
-                                        TranslatedRichText)                                
-from organization.magazine.models import Article, Topic, Brief
+                                        TranslatedRichText)
+from organization.magazine.models import Article, Topic, Brief, ArticleImage
 
 @register(Article)
 class ArticleTranslationOptions(TranslationOptions):
@@ -21,3 +21,8 @@ class BriefTranslationOptions(TranslationOptions):
 class TopicTranslationOptions(TranslationOptions):
 
     fields = ()
+
+@register(ArticleImage)
+class ArticleImageTranslationOptions(TranslationOptions):
+
+    fields = ('description',)
diff --git a/app/templates/core/inc/slider.html b/app/templates/core/inc/slider.html
new file mode 100644 (file)
index 0000000..522598d
--- /dev/null
@@ -0,0 +1,5 @@
+{% for image in slider_images %}
+{{ image.description }}<br/>
+<img src="{{ MEDIA_URL}}{{ image.file }}" alt="" /><br/>
+{{ image.credits }}<br/>
+{% endfor %}
index d3741c594317ebddd83b28e2a32e739e7990cc19..6805f3822a20570ebc0b95d3a3dbdbd5de152274 100644 (file)
 
 {% block page_content %}
 
-
     {% editable article.content %}
         {{ article.content|richtext_filters|safe }}
     {% endeditable %}
-    {% block page_sub_content %}
-        {% if article.related_articles.all %}
 
-            <h2 class="dashed dashed--center">{% trans "Also discover" %}</h2>
-            {% for article in article.related_articles.all %}
-                {% include 'magazine/article/includes/article_card.html' %}
-            {% endfor %}
-        {% endif %}
-    {% endblock %}
+{% endblock %}
 
+{% block page_slider %}
+  {% if article.articleimage_set.all %}
+    {% with article.articleimage_set.all as slider_images %}
+        {% include 'core/inc/slider.html' %}
+    {% endwith %}
+  {% endif %}
+{% endblock %}
+
+{% block page_sub_content %}
+    {% if article.related_articles.all %}
+        <h2 class="dashed dashed--center">{% trans "Also discover" %}</h2>
+        {% for article in article.related_articles.all %}
+            {% include 'magazine/article/includes/article_card.html' %}
+        {% endfor %}
+    {% endif %}
 {% endblock %}
 
 {% block page_sidebar %}
index f908ad037a279eb03a251f946b55250063f9e126..fad24f9eed52b112044dea1045cf4f89b87ab7b5 100644 (file)
                         {{ page.content }}
                     {% endblock %}
                 </div>
+                <div class="col-sm-9 col-lg-8 white-bg page__content" data-summary-content>
+                    {% block page_slider %}
+                    {% endblock %}
+                </div>
+                <div class="col-sm-9 col-lg-8 white-bg page__content" data-summary-content>
+                  {% block page_sub_content %}
+                  {% endblock %}
+                </div>
             </div>
 
         </div>