diff --git a/pelican/contents.py b/pelican/contents.py index 1587a1eb..9c2327d4 100644 --- a/pelican/contents.py +++ b/pelican/contents.py @@ -2,6 +2,7 @@ from pelican.utils import slugify, truncate_html_words from pelican.log import * from pelican.settings import _DEFAULT_CONFIG +from datetime import datetime from os import getenv from sys import platform, stdin @@ -23,8 +24,6 @@ class Page(object): self._content = content self.translations = [] - self.status = "published" # default value - local_metadata = dict(settings.get('DEFAULT_METADATA', ())) local_metadata.update(metadata) @@ -87,7 +86,10 @@ class Page(object): # manage status if not hasattr(self, 'status'): self.status = settings['DEFAULT_STATUS'] - + if not settings['WITH_FUTURE_DATES']: + if hasattr(self, 'date') and self.date > datetime.now(): + self.status = 'draft' + # set summary if not hasattr(self, 'summary'): self.summary = truncate_html_words(self.content, 50) diff --git a/pelican/settings.py b/pelican/settings.py index c7ac35ff..f74e085d 100644 --- a/pelican/settings.py +++ b/pelican/settings.py @@ -21,6 +21,7 @@ _DEFAULT_CONFIG = {'PATH': None, 'PDF_GENERATOR': False, 'DEFAULT_CATEGORY': 'misc', 'FALLBACK_ON_FS_DATE': True, + 'WITH_FUTURE_DATES': True, 'CSS_FILE': 'main.css', 'REVERSE_ARCHIVE_ORDER': False, 'REVERSE_CATEGORY_ORDER': False,