From: Emilie Date: Thu, 7 Jul 2016 16:32:26 +0000 (+0200) Subject: Article view X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=c6faab55d29d2bb11fd853149715f6dd03d79a85;p=mezzo.git Article view --- diff --git a/app/organization/magazine/urls.py b/app/organization/magazine/urls.py new file mode 100644 index 00000000..6eb9a9b7 --- /dev/null +++ b/app/organization/magazine/urls.py @@ -0,0 +1,16 @@ +from __future__ import unicode_literals + +from django.conf.urls import patterns, include, url +from django.conf.urls.i18n import i18n_patterns +from django.contrib import admin + +from mezzanine.core.views import direct_to_template +from mezzanine.conf import settings + +from organization.magazine.views import * + + +urlpatterns = [ + url(r'^article/$', ArticleListView.as_view(), name="magazine-article-list"), + url(r'^article/detail/(?P.*)/$', ArticleDetailView.as_view(), name="magazine-article-detail"), +] diff --git a/app/organization/magazine/views.py b/app/organization/magazine/views.py index 91ea44a2..c3dc0f46 100644 --- a/app/organization/magazine/views.py +++ b/app/organization/magazine/views.py @@ -1,3 +1,32 @@ from django.shortcuts import render +from organization.magazine.models import Article +from organization.core.views import SlugMixin # Create your views here. +class ArticleDetailView(SlugMixin, DetailView): + + model = Article + 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) + return context + + +def blog_post_detail(request, slug, year=None, month=None, day=None, + template="blog/blog_post_detail.html", + extra_context=None): + """. Custom templates are checked for using the name + ``blog/blog_post_detail_XXX.html`` where ``XXX`` is the blog + posts's slug. + """ + blog_posts = BlogPost.objects.published( + for_user=request.user).select_related() + blog_post = get_object_or_404(blog_posts, slug=slug) + related_posts = blog_post.related_posts.published(for_user=request.user) + context = {"blog_post": blog_post, "editable_obj": blog_post, + "related_posts": related_posts} + context.update(extra_context or {}) + templates = [u"blog/blog_post_detail_%s.html" % str(slug), template] + return TemplateResponse(request, templates, context) diff --git a/app/templates/templates/magazine/article/article_detail.html b/app/templates/templates/magazine/article/article_detail.html new file mode 100644 index 00000000..038899f9 --- /dev/null +++ b/app/templates/templates/magazine/article/article_detail.html @@ -0,0 +1,148 @@ +{% extends "blog/blog_post_list.html" %} +{% load mezzanine_tags comment_tags keyword_tags rating_tags i18n disqus_tags featured_tags %} + +{% block meta_title %}{{ blog_post.meta_title }}{% endblock %} + +{% block meta_keywords %}{% metablock %} +{% keywords_for blog_post as tags %} +{% for tag in tags %}{% if not forloop.first %}, {% endif %}{{ tag }}{% endfor %} +{% endmetablock %}{% endblock %} + +{% block meta_description %}{% metablock %} +{{ blog_post.description }} +{% endmetablock %}{% endblock %} + +{% block title %} +{% editable blog_post.title %}{{ blog_post.title }}{% endeditable %} +{% endblock %} + +{% block breadcrumb_menu %} +{{ block.super }} +
  • {{ blog_post.title }}
  • +{% endblock %} + +{% block main %} +coucou +{% block blog_post_detail_postedby %} +{% editable blog_post.publish_date %} + +{% endeditable %} +{% endblock %} +{% block blog_post_detail_commentlink %} +

    + {% if blog_post.allow_comments %} + {% if settings.COMMENTS_DISQUS_SHORTNAME %} + ({% spaceless %} + {% trans "Comments" %} + {% endspaceless %}) + {% else %}({% spaceless %} + {% blocktrans count comments_count=blog_post.comments_count %}{{ comments_count }} comment{% plural %}{{ comments_count }} comments{% endblocktrans %} + {% endspaceless %}) + {% endif %} + {% endif %} +

    +{% endblock %} + +{% comment %} +{% block blog_post_detail_featured_image %} +{% if settings.BLOG_USE_FEATURED_IMAGE and blog_post.featured_image %} +

    +{% endif %} +{% endblock %} +{% endcomment %} + +{% if settings.COMMENTS_DISQUS_SHORTNAME %} +{% include "generic/includes/disqus_counts.html" %} +{% endif %} + +{% block blog_post_detail_content %} +{% editable blog_post.content %} +{{ blog_post.content|richtext_filters|safe }} +{% endeditable %} +{% endblock %} + +{% block blog_post_detail_keywords %} +{% keywords_for blog_post as tags %} +{% if tags %} +{% spaceless %} + +{% endspaceless %} +{% endif %} +{% endblock %} + +{% comment %} +{% block blog_post_detail_rating %} +
    +
    + {% rating_for blog_post %} +
    +
    +{% endblock %} +{% endcomment %} + +{% block event_detail_sharebuttons %} + {% with blog_post as object %} + {% include "includes/share_buttons.html" %} + {% endwith %} +{% endblock %} + +{% block blog_post_previous_next %} + +{% endblock %} + + +{% block blog_post_detail_related_posts %} +{% if related_posts or blog_post.events.all %} + +{% endif %} +{% endblock %} + +{% block blog_post_detail_comments %} +{% if blog_post.allow_comments %}{% comments_for blog_post %}{% endif %} +{% endblock %} + +{% endblock %} diff --git a/app/urls.py b/app/urls.py index 10df47eb..d7b36737 100644 --- a/app/urls.py +++ b/app/urls.py @@ -28,6 +28,7 @@ if settings.USE_MODELTRANSLATION: urlpatterns += [ url(r'^festival/', include('organization.festival.urls')), + url(r'^magazine/', include('organization.magazine.urls')), url("^%s/" % settings.EVENT_SLUG, include("mezzanine_agenda.urls")), # We don't want to presume how your homepage works, so here are a