]> git.parisson.com Git - mezzo.git/commitdiff
Orderable Briefs on Home
authorEmilie <zawadzki@ircam.fr>
Fri, 5 Aug 2016 16:37:33 +0000 (18:37 +0200)
committerEmilie <zawadzki@ircam.fr>
Fri, 5 Aug 2016 16:37:33 +0000 (18:37 +0200)
13 files changed:
app/organization/featured/migrations/0003_remove_featured_briefs.py [new file with mode: 0644]
app/organization/featured/migrations/0004_featured_briefs.py [new file with mode: 0644]
app/organization/featured/views.py
app/organization/magazine/admin.py
app/organization/magazine/migrations/0009_article_parent_topic.py [deleted file]
app/organization/magazine/migrations/0009_brief_sort_order.py [new file with mode: 0644]
app/organization/magazine/models.py
app/organization/magazine/translation.py
app/organization/magazine/views.py
app/settings.py
app/templates/index.html
app/templates/magazine/brief/brief_list.html [new file with mode: 0644]
requirements.txt

diff --git a/app/organization/featured/migrations/0003_remove_featured_briefs.py b/app/organization/featured/migrations/0003_remove_featured_briefs.py
new file mode 100644 (file)
index 0000000..cd49208
--- /dev/null
@@ -0,0 +1,19 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2016-08-05 11:00
+from __future__ import unicode_literals
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('organization-featured', '0002_remove_featured_description'),
+    ]
+
+    operations = [
+        migrations.RemoveField(
+            model_name='featured',
+            name='briefs',
+        ),
+    ]
diff --git a/app/organization/featured/migrations/0004_featured_briefs.py b/app/organization/featured/migrations/0004_featured_briefs.py
new file mode 100644 (file)
index 0000000..19a7e30
--- /dev/null
@@ -0,0 +1,21 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2016-08-05 14:38
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('organization-magazine', '0009_brief_sort_order'),
+        ('organization-featured', '0003_remove_featured_briefs'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='featured',
+            name='briefs',
+            field=models.ManyToManyField(blank=True, related_name='featured', to='organization-magazine.Brief', verbose_name='briefs'),
+        ),
+    ]
index 48863eb2ea7d5c7dd997c374c7b7239e1db3bc1e..d77ed90ec5104370546ff2d9f764801eedd8aceb 100644 (file)
@@ -1,10 +1,17 @@
 from django.shortcuts import render
 from django.views.generic import DetailView, ListView, TemplateView
 from organization.core.views import SlugMixin
+from organization.magazine.models import Brief
 
 class HomeView(SlugMixin, TemplateView):
 
     template_name = 'index.html'
+    briefs = Brief.objects.all() # with .published, order by isn't working anymore
+
     def get_context_data(self, **kwargs):
         context = super(HomeView, self).get_context_data(**kwargs)
+        context['briefs'] = self.briefs
         return context
+
+    def get_queryset(self, **kwargs):
+        return self.model.objects.published()
index 9b98f0111cfc26cfbb1d22c647a491e05bb8561e..8556044b8e8e7e591d23a0fd0a62aad534142488 100644 (file)
@@ -3,6 +3,7 @@ from django import forms
 from copy import deepcopy
 from mezzanine.core.admin import DisplayableAdmin
 from mezzanine.pages.admin import PageAdmin
+from orderable.admin import OrderableAdmin, OrderableTabularInline
 from organization.magazine.models import Article, Brief ,Topic
 
 
@@ -14,14 +15,16 @@ class ArticleAdminDisplayable(DisplayableAdmin):
     fieldsets = deepcopy(ArticleAdmin.fieldsets)
     exclude = ('related_posts',)
 
-class BriefAdmin(admin.ModelAdmin):
+class BriefAdmin(OrderableTabularInline):
 
     model = Brief
 
-class BriefAdminDisplayable(DisplayableAdmin):
+class BriefAdminDisplayable(OrderableAdmin):
 
+    list_display = ('title', 'local_content', 'sort_order_display',)
     fieldsets = deepcopy(BriefAdmin.fieldsets)
 
+
 admin.site.register(Article, ArticleAdminDisplayable)
 admin.site.register(Brief, BriefAdminDisplayable)
 admin.site.register(Topic, PageAdmin)
diff --git a/app/organization/magazine/migrations/0009_article_parent_topic.py b/app/organization/magazine/migrations/0009_article_parent_topic.py
deleted file mode 100644 (file)
index de2cba5..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by Django 1.9.7 on 2016-08-04 13:47
-from __future__ import unicode_literals
-
-from django.db import migrations, models
-import django.db.models.deletion
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('organization-magazine', '0008_topic_content'),
-    ]
-
-    operations = [
-        migrations.AddField(
-            model_name='article',
-            name='parent_topic',
-            field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, related_name='topic_content_type', to='organization-magazine.Topic', verbose_name='topic'),
-            preserve_default=False,
-        ),
-    ]
diff --git a/app/organization/magazine/migrations/0009_brief_sort_order.py b/app/organization/magazine/migrations/0009_brief_sort_order.py
new file mode 100644 (file)
index 0000000..8258483
--- /dev/null
@@ -0,0 +1,21 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2016-08-05 13:48
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('organization-magazine', '0008_topic_content'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='brief',
+            name='sort_order',
+            field=models.IntegerField(blank=True, db_index=True, default=1),
+            preserve_default=False,
+        ),
+    ]
index 6278452f7c717e0cfc3d6a105f98bba1d8501edd..63a11f7092ed20d28030c870ce7f55755ea738f8 100644 (file)
@@ -6,6 +6,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 orderable.models import Orderable
 from organization.core.models import Named, Description
 from organization.media.models import Photo
 
@@ -24,7 +25,7 @@ class Article(BlogPost, Photo):
         verbose_name = _('article')
 
 
-class Brief(Displayable, RichText):
+class Brief(Displayable, RichText, Orderable):
 
     text_button = models.CharField(blank=True, max_length=150, null=False, verbose_name='text button')
     local_content = models.URLField(blank=False, max_length=1000, null=False, verbose_name='local content')
@@ -34,6 +35,7 @@ class Brief(Displayable, RichText):
 
     class Meta:
         verbose_name = _('brief')
+        ordering = ['sort_order']
 
 class Topic(Page, RichText):
     """Topic for magazine menu"""
index ba8e66be983536eaa79c0bf24d864c038022ea08..42d08c9471afcd351a882cc629f1d0d318ff768b 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, Brief ,Topic
+                                        TranslatedRichText)                                
+from organization.magazine.models import Article, Topic, Brief
 
 @register(Article)
 class ArticleTranslationOptions(TranslationOptions):
@@ -17,7 +17,6 @@ class BriefTranslationOptions(TranslationOptions):
 
     fields = ('text_button', 'local_content')
 
-
 @register(Topic)
 class TopicTranslationOptions(TranslationOptions):
 
index 50f7cc735581bb191795a4e1ba3163d203066c12..d1699098eca59b60f46a9a57effb17edc0a5e0b5 100644 (file)
@@ -5,7 +5,7 @@ from django.views.generic import DetailView, ListView, TemplateView
 from django.views.generic.base import *
 from django.shortcuts import get_object_or_404
 
-from organization.magazine.models import Article, Brief, Topic
+from organization.magazine.models import Article, Topic ,Brief
 from organization.core.views import SlugMixin
 from django.template.defaultfilters import slugify
 
@@ -42,6 +42,16 @@ class BriefDetailView(SlugMixin, DetailView):
         context = super(BriefDetailView, self).get_context_data(**kwargs)
         return context
 
+class BriefListView(SlugMixin, ListView):
+
+    model = Brief
+    template_name='magazine/brief/brief_list.html'
+    context_object_name = 'brief'
+
+    def get_context_data(self, **kwargs):
+        context = super(BriefListView, self).get_context_data(**kwargs)
+        return context
+
 
 class TopicDetailView(SlugMixin, DetailView):
 
index 784fb7d4a28846a98bc4bf1dcc685f0cd56e12de..fa49164ea83ef4dad274d47f26c14de23e666a46 100644 (file)
@@ -221,6 +221,7 @@ INSTALLED_APPS = [
     'djangobower',
     "meta",
     "mezzanine_agenda",
+    "orderable",
     "organization.core",
     "organization.team",
     "organization.festival",
index 7d1b74fbd63385fbbef694dff92ee98151937fe6..56fedf4d8aa7083eaa1b235c3a067b0a76eaaf5e 100644 (file)
@@ -11,6 +11,7 @@
 
 {% block main %}
 {% page_menu "pages/menus/magazine.html" %}
+{% include "magazine/brief/brief_list.html" %}
 
 <ul>
   <li><a href="#" title="{% trans "News Headlines" %}">{% trans "News Headlines" %}</a></li>
diff --git a/app/templates/magazine/brief/brief_list.html b/app/templates/magazine/brief/brief_list.html
new file mode 100644 (file)
index 0000000..a0f3b45
--- /dev/null
@@ -0,0 +1,5 @@
+{% for brief in briefs %}
+  <h2>{{ brief.title }}</h2>
+  <p>{{ brief.description|truncatechars:100 }}</p>
+  <a href="{{ brief.local_content }}" title="brief.title">{{ brief.text_button }}</a>
+{% endfor %}
index 080247cda17ed84719479dcaa798c5a47a9d60c6..719302e3550f16f852c195c0d93344a3e978ef62 100644 (file)
@@ -12,3 +12,4 @@ django-bower
 django-debug-toolbar
 django-extensions
 django-countries
+django-orderable