From ef00c130f9fa507a36b7f99b365f17dd314b2742 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=AD=C3=B0ir=20Valberg=20Gu=C3=B0mundsson?= Date: Fri, 10 Jun 2016 20:21:32 +0200 Subject: [PATCH] Make publication depend on 'published_at' field --- news/managers.py | 4 +++- news/templates/news_detail.html | 5 +++++ news/views.py | 9 +++++++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/news/managers.py b/news/managers.py index f4ee7415..c25424f5 100644 --- a/news/managers.py +++ b/news/managers.py @@ -1,9 +1,11 @@ from django.db.models import QuerySet +from django.utils import timezone class NewsItemQuerySet(QuerySet): def public(self): return self.filter( - public=True + public=True, + published_at__lt=timezone.now() ) diff --git a/news/templates/news_detail.html b/news/templates/news_detail.html index 7ccde145..26f147a1 100644 --- a/news/templates/news_detail.html +++ b/news/templates/news_detail.html @@ -3,6 +3,11 @@ {% block content %}
+ {% if draft %} +
+ This news item is not yet public. It will become public at {{ news_item.published_at|date:'Y-m-d H:i' }}. +
+ {% endif %}

{{ news_item.title }} {{ news_item.published_at|date:"Y-m-d" }}

{{ news_item.content|commonmark }} diff --git a/news/views.py b/news/views.py index aba60599..3e2af89a 100644 --- a/news/views.py +++ b/news/views.py @@ -1,4 +1,5 @@ from django.views.generic import ListView, DetailView +from django.utils import timezone from . import models @@ -14,3 +15,11 @@ class NewsDetail(DetailView): template_name = 'news_detail.html' context_object_name = 'news_item' + def get_context_data(self, **kwargs): + context = super(NewsDetail, self).get_context_data(**kwargs) + news_item = self.get_object() + context['draft'] = False + if news_item.public and news_item.published_at > timezone.now(): + context['draft'] = True + return context +