From 6d37fb8866dae686d377f2dbf90867bc7a8c5d26 Mon Sep 17 00:00:00 2001 From: Emilie Date: Thu, 25 Aug 2016 15:35:56 +0200 Subject: [PATCH] Task #134: Article related to department --- .../migrations/0003_auto_20160825_1232.py | 25 +++++++++++++++++ .../migrations/0003_auto_20160825_1232.py | 28 +++++++++++++++++++ .../migrations/0004_auto_20160825_1259.py | 21 ++++++++++++++ .../migrations/0005_auto_20160825_1308.py | 21 ++++++++++++++ app/organization/magazine/models.py | 4 +-- app/organization/magazine/views.py | 16 +++++------ .../migrations/0004_auto_20160825_1232.py | 20 +++++++++++++ .../magazine/article/article_detail.html | 9 +++--- .../article/includes/article_card.html | 4 +-- requirements.txt | 1 + 10 files changed, 132 insertions(+), 17 deletions(-) create mode 100644 app/organization/core/migrations/0003_auto_20160825_1232.py create mode 100644 app/organization/magazine/migrations/0003_auto_20160825_1232.py create mode 100644 app/organization/magazine/migrations/0004_auto_20160825_1259.py create mode 100644 app/organization/magazine/migrations/0005_auto_20160825_1308.py create mode 100644 app/organization/pages/migrations/0004_auto_20160825_1232.py diff --git a/app/organization/core/migrations/0003_auto_20160825_1232.py b/app/organization/core/migrations/0003_auto_20160825_1232.py new file mode 100644 index 00000000..26fe0ee0 --- /dev/null +++ b/app/organization/core/migrations/0003_auto_20160825_1232.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.7 on 2016-08-25 10:32 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('organization-core', '0002_auto_20160824_1454'), + ] + + operations = [ + migrations.AlterField( + model_name='displayableimage', + name='type', + field=models.CharField(choices=[('logo', 'logo'), ('slider', 'slider'), ('card', 'card'), ('page_slider', 'page slider')], max_length=64, verbose_name='type'), + ), + migrations.AlterField( + model_name='modelimage', + name='type', + field=models.CharField(choices=[('logo', 'logo'), ('slider', 'slider'), ('card', 'card'), ('page_slider', 'page slider')], max_length=64, verbose_name='type'), + ), + ] diff --git a/app/organization/magazine/migrations/0003_auto_20160825_1232.py b/app/organization/magazine/migrations/0003_auto_20160825_1232.py new file mode 100644 index 00000000..b7fd3720 --- /dev/null +++ b/app/organization/magazine/migrations/0003_auto_20160825_1232.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.7 on 2016-08-25 10:32 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('organization-network', '0002_auto_20160824_0020'), + ('organization-magazine', '0002_auto_20160824_1454'), + ] + + operations = [ + migrations.AddField( + model_name='article', + name='department', + field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='organization-network.Department'), + preserve_default=False, + ), + migrations.AlterField( + model_name='articleimage', + name='type', + field=models.CharField(choices=[('logo', 'logo'), ('slider', 'slider'), ('card', 'card'), ('page_slider', 'page slider')], max_length=64, verbose_name='type'), + ), + ] diff --git a/app/organization/magazine/migrations/0004_auto_20160825_1259.py b/app/organization/magazine/migrations/0004_auto_20160825_1259.py new file mode 100644 index 00000000..0cc78f26 --- /dev/null +++ b/app/organization/magazine/migrations/0004_auto_20160825_1259.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.7 on 2016-08-25 10:59 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('organization-magazine', '0003_auto_20160825_1232'), + ] + + operations = [ + migrations.AlterField( + model_name='article', + name='department', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='department', to='organization-network.Department'), + ), + ] diff --git a/app/organization/magazine/migrations/0005_auto_20160825_1308.py b/app/organization/magazine/migrations/0005_auto_20160825_1308.py new file mode 100644 index 00000000..7db2aac3 --- /dev/null +++ b/app/organization/magazine/migrations/0005_auto_20160825_1308.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.7 on 2016-08-25 11:08 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('organization-magazine', '0004_auto_20160825_1259'), + ] + + operations = [ + migrations.AlterField( + model_name='article', + name='department', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='articles', to='organization-network.Department'), + ), + ] diff --git a/app/organization/magazine/models.py b/app/organization/magazine/models.py index 1bfb1484..ceab5e1f 100644 --- a/app/organization/magazine/models.py +++ b/app/organization/magazine/models.py @@ -10,7 +10,7 @@ from django.core.urlresolvers import reverse, reverse_lazy from mezzanine.core.models import RichText, Displayable, Slugged from mezzanine.pages.models import Page from mezzanine.blog.models import BlogPost - +from organization.network.models import Department from organization.core.models import * @@ -18,7 +18,7 @@ class Article(BlogPost, SubTitled): related_articles = models.ManyToManyField("self", verbose_name=_("Related articles"), blank=True) - + department = models.ForeignKey(Department, related_name='articles', limit_choices_to=dict(id__in=Department.objects.all()), blank=True, null=True, on_delete=models.SET_NULL) model_name = _('article') def get_absolute_url(self): diff --git a/app/organization/magazine/views.py b/app/organization/magazine/views.py index d9ea5699..8cfd7610 100644 --- a/app/organization/magazine/views.py +++ b/app/organization/magazine/views.py @@ -23,20 +23,20 @@ class ArticleDetailView(SlugMixin, DetailView): template_name='magazine/article/article_detail.html' context_object_name = 'article' - # def get_context_data(self, **kwargs): - # # context = super(ArticleDetailView, self).get_context_data(**kwargs) - # # if self.topic_parent: - # # context['topic_parent'] = self.topic_parent.all()[0] - # # if self.department_parent: - # # context['department_parent'] = self.department_parent.all()[0] - # return context + def get_context_data(self, **kwargs): + article = self.get_object() + context = super(ArticleDetailView, self).get_context_data(**kwargs) + if article.department: + context['department_weaving_css_class'] = article.department.pages.first().weaving_css_class + context['department_name'] = article.department.name + return context class ArticleListView(SlugMixin, ListView): model = Article template_name='magazine/article/article_list.html' - # context_object_name = 'article' + context_object_name = 'article' def get_context_data(self, **kwargs): context = super(ArticleListView, self).get_context_data(**kwargs) diff --git a/app/organization/pages/migrations/0004_auto_20160825_1232.py b/app/organization/pages/migrations/0004_auto_20160825_1232.py new file mode 100644 index 00000000..1f2453b7 --- /dev/null +++ b/app/organization/pages/migrations/0004_auto_20160825_1232.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.7 on 2016-08-25 10:32 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('organization-pages', '0003_auto_20160824_1550'), + ] + + operations = [ + migrations.AlterField( + model_name='pageimage', + name='type', + field=models.CharField(choices=[('logo', 'logo'), ('slider', 'slider'), ('card', 'card'), ('page_slider', 'page slider')], max_length=64, verbose_name='type'), + ), + ] diff --git a/app/templates/magazine/article/article_detail.html b/app/templates/magazine/article/article_detail.html index 0bd5118a..78f025e7 100644 --- a/app/templates/magazine/article/article_detail.html +++ b/app/templates/magazine/article/article_detail.html @@ -17,14 +17,13 @@ {% endblock %} {% block body_class %} - {% if department_parent %} - pattern pattern-bg {{ department_parent.weaving_css_class }} + {% if department_weaving_css_class %} + pattern pattern-bg {{ department_weaving_css_class }} {% endif %} {% endblock %} {% block breadcrumb_menu %} {{ block.super }} - {% endblock %} @@ -33,9 +32,9 @@
{% trans 'News' %}
- {% if article.keywords %} + {% if department_name %}
- {{ article.keywords.first }} + {{ department_name }}
{% endif %} diff --git a/app/templates/magazine/article/includes/article_card.html b/app/templates/magazine/article/includes/article_card.html index 133f0af8..eec757d5 100644 --- a/app/templates/magazine/article/includes/article_card.html +++ b/app/templates/magazine/article/includes/article_card.html @@ -11,9 +11,9 @@
{% trans 'News' %}
- {% if article.keywords %} + {% if article.department %}
- {{ article.keywords.first }} + {{ article.department.name }}
{% endif %} diff --git a/requirements.txt b/requirements.txt index 5d46cf12..f1dda04a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -14,3 +14,4 @@ django-extensions django-countries django-querysetsequence django-autocomplete-light +ipython -- 2.39.5