changeset 108:b6ec402d32bb

Properly add the config time to a page's datetime.
author Ludovic Chabant <ludovic@chabant.com>
date Wed, 15 Oct 2014 23:01:43 -0700
parents 10fc9c8bf682
children 438509f12332
files piecrust/page.py
diffstat 1 files changed, 14 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/piecrust/page.py	Wed Oct 15 23:01:05 2014 -0700
+++ b/piecrust/page.py	Wed Oct 15 23:01:43 2014 -0700
@@ -93,19 +93,25 @@
                             raise ConfigurationError(
                                     "Invalid time '%s' in page: %s" %
                                     (page_time, self.path)) from ex
-                        page_time = datetime.time(parsed_t.hour,
-                                parsed_t.minute, parsed_t.second)
+                        page_time = datetime.timedelta(
+                                hours=parsed_t.hour,
+                                minutes=parsed_t.minute,
+                                seconds=parsed_t.second)
 
                     elif isinstance(page_time, int):
                         # Total seconds... convert to a time struct.
-                        delta = datetime.timedelta(seconds=page_time)
-                        dummy = datetime.datetime(1970, 1, 1)
-                        dummy += delta
-                        page_time = dummy.time()
+                        page_time = datetime.timedelta(seconds=page_time)
+
+                    elif not isinstance(page_time, datetime.timedelta):
+                        raise ConfigurationError(
+                                "Invalid time '%s' in page: %s" %
+                                (page_time, self.path))
 
                     try:
-                        self._datetime = datetime.datetime.combine(
-                                page_date, page_time)
+                        self._datetime = datetime.datetime(
+                                page_date.year,
+                                page_date.month,
+                                page_date.day) + page_time
                     except Exception as ex:
                         raise ConfigurationError(
                                 "Invalid page time '%s' for: %s" % (