From: Emilie Date: Fri, 12 Aug 2016 10:52:14 +0000 (+0200) Subject: Create generic template for slider X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=261a80375fb26d9fb0b2bbef085119b76a40aba5;p=mezzo.git Create generic template for slider --- diff --git a/app/organization/magazine/admin.py b/app/organization/magazine/admin.py index 083621e2..2693a735 100644 --- a/app/organization/magazine/admin.py +++ b/app/organization/magazine/admin.py @@ -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 index 00000000..704be0ac --- /dev/null +++ b/app/organization/magazine/migrations/0011_articleimage.py @@ -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',), + }, + ), + ] diff --git a/app/organization/magazine/models.py b/app/organization/magazine/models.py index 63a11f70..f53d79ec 100644 --- a/app/organization/magazine/models.py +++ b/app/organization/magazine/models.py @@ -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) diff --git a/app/organization/magazine/translation.py b/app/organization/magazine/translation.py index 42d08c94..d2351c77 100644 --- a/app/organization/magazine/translation.py +++ b/app/organization/magazine/translation.py @@ -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 index 00000000..522598dd --- /dev/null +++ b/app/templates/core/inc/slider.html @@ -0,0 +1,5 @@ +{% for image in slider_images %} +{{ image.description }}
+
+{{ image.credits }}
+{% endfor %} diff --git a/app/templates/magazine/article/article_detail.html b/app/templates/magazine/article/article_detail.html index d3741c59..6805f382 100644 --- a/app/templates/magazine/article/article_detail.html +++ b/app/templates/magazine/article/article_detail.html @@ -46,20 +46,27 @@ {% block page_content %} - {% editable article.content %} {{ article.content|richtext_filters|safe }} {% endeditable %} - {% block page_sub_content %} - {% if article.related_articles.all %} -

{% trans "Also discover" %}

- {% 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 %} +

{% trans "Also discover" %}

+ {% for article in article.related_articles.all %} + {% include 'magazine/article/includes/article_card.html' %} + {% endfor %} + {% endif %} {% endblock %} {% block page_sidebar %} diff --git a/app/templates/pages/page.html b/app/templates/pages/page.html index f908ad03..fad24f9e 100644 --- a/app/templates/pages/page.html +++ b/app/templates/pages/page.html @@ -43,6 +43,14 @@ {{ page.content }} {% endblock %} +
+ {% block page_slider %} + {% endblock %} +
+
+ {% block page_sub_content %} + {% endblock %} +