--- /dev/null
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2016-07-28 13:36
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import mezzanine.core.fields
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('organization-magazine', '0002_delete_category'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='article',
+ name='photo',
+ field=mezzanine.core.fields.FileField(blank=True, max_length=1024, verbose_name='photo'),
+ ),
+ migrations.AddField(
+ model_name='article',
+ name='photo_alignment',
+ field=models.CharField(blank=True, choices=[('left', 'left'), ('center', 'center'), ('right', 'right')], default='left', max_length=32, verbose_name='photo alignment'),
+ ),
+ migrations.AddField(
+ model_name='article',
+ name='photo_card',
+ field=mezzanine.core.fields.FileField(blank=True, max_length=1024, verbose_name='card photo'),
+ ),
+ migrations.AddField(
+ model_name='article',
+ name='photo_card_credits',
+ field=models.CharField(blank=True, max_length=255, null=True, verbose_name='photo card credits'),
+ ),
+ migrations.AddField(
+ model_name='article',
+ name='photo_credits',
+ field=models.CharField(blank=True, max_length=255, null=True, verbose_name='photo credits'),
+ ),
+ migrations.AddField(
+ model_name='article',
+ name='photo_description',
+ field=models.TextField(blank=True, verbose_name='photo description'),
+ ),
+ migrations.AddField(
+ model_name='article',
+ name='photo_slider',
+ field=mezzanine.core.fields.FileField(blank=True, max_length=1024, verbose_name='slider photo'),
+ ),
+ migrations.AddField(
+ model_name='article',
+ name='photo_slider_credits',
+ field=models.CharField(blank=True, max_length=255, null=True, verbose_name='photo slider credits'),
+ ),
+ ]
--- /dev/null
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2016-07-28 13:49
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('organization-magazine', '0003_auto_20160728_1536'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='article',
+ name='related_article',
+ field=models.ManyToManyField(blank=True, related_name='_article_related_article_+', to='organization-magazine.Article', verbose_name='Related posts'),
+ ),
+ ]
--- /dev/null
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2016-07-28 13:51
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('organization-magazine', '0004_article_related_article'),
+ ]
+
+ operations = [
+ migrations.RemoveField(
+ model_name='article',
+ name='related_article',
+ ),
+ migrations.AddField(
+ model_name='article',
+ name='related_articles',
+ field=models.ManyToManyField(blank=True, related_name='_article_related_articles_+', to='organization-magazine.Article', verbose_name='Related posts'),
+ ),
+ ]
--- /dev/null
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2016-07-28 14:32
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('organization-magazine', '0005_auto_20160728_1551'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='article',
+ name='related_articles',
+ field=models.ManyToManyField(blank=True, related_name='_article_related_articles_+', to='organization-magazine.Article', verbose_name='Related articles'),
+ ),
+ ]
from mezzanine.core.models import RichText, Displayable, Slugged
from mezzanine.blog.models import BlogPost
from organization.core.models import Named, Description
+from organization.media.models import Photo
-
-class Article(BlogPost):
+class Article(BlogPost, Photo):
sub_title = models.CharField(_('sub title'), blank=True, max_length=1000)
-
+ related_articles = models.ManyToManyField("self",
+ verbose_name=_("Related articles"), blank=True)
+ model_name = _('article')
def get_absolute_url(self):
return reverse("magazine-article-detail", kwargs={"slug": self.slug})
{% block page_title %}
+ {% if article.keywords %}
+ {{ article.keywords.first }} | {{ article.model_name }}
+ {% endif %}
+
{% editable article.title %}
<h1>{{ article.title }}</h1>
{% endeditable %}
+ {% editable article.sub_title %}
+ <h2>{{ article.sub_title }}</h2>
+ {% endeditable %}
+
{% endblock %}
{% block page_content %}
+
{% editable article.content %}
{{ article.content|richtext_filters|safe }}
{% endeditable %}
+ {% block page_sub_content %}
+ {% if article.related_articles.all %}
-{% endblock %}
+ <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_sub_content %}
- {{ block.super }}
-
- {% comment %}
- Don't know why this doesn't work :(
- {% endcomment %}
-
- {% if related_posts %}
- <h2 class="dashed dashed--center">{% trans "Also discover" %}</h2>
- {% for post in related_posts %}
- {% include 'magazine/article/includes/article_card.html' %}
- {% endfor %}
- {% endif %}
-
- <div class="tac">
- <h2 class="dashed dashed--center">{% trans "Also discover" %}</h2>
- <div class="row">
- {% include 'magazine/article/includes/article_card.html' %}
- </div>
- </div>
{% endblock %}
{% block page_sidebar %}
{% load i18n pages_tags mezzanine_tags %}
<div class="col-md-3 col-sm-4 col-xs-6">
- <a class="article-box" href="{{ article.get_absolute_url }}">
+ <a class="article-box" href="{% url 'magazine-article-detail' article.slug %}">
<div class="article-box__header">
<figure class="article-box__image">
- <img src="//placehold.it/710x475" data-src="//placehold.it/710x475" class="lazyload" />
+ <img src="{{ MEDIA_URL }}{% thumbnail article.photo_card.url 427 286 %}" data-src="{{ MEDIA_URL }}{% thumbnail article.photo_card.url 427 286 %}" class="lazyload" />
</figure>
<div class="article-box__tags">
<div class="tag tag--small tag--category">
{% trans 'Actualité' %}
</div>
+ {% if article.keywords %}
<div class="tag tag--small dashed dashed--gray">
- transmission
+ {{ article.keywords.first }}
</div>
+ {% endif %}
</div>
</div>
+
<div class="article-box__content tal">
<h3 class="article-box__title">{{ article.title }}</h3>
<div class="article-box__subtitle">
{{ article.publish_date|date:"DATE_FORMAT" }}
- {% if article.categories %}
- {% for category in article.categories.all %}
- | <strong>{{ category }}</strong>
- {% endfor %}
- {% endif %}
</div>
<div class="article-box__desc">
{{ article.content|richtext_filters|safe|truncatechars:200 }}