From 476ad03e150634de1bca95b8ff8fb54681635362 Mon Sep 17 00:00:00 2001 From: Psyton Date: Wed, 4 Apr 2012 12:47:07 +0700 Subject: [PATCH 1/2] Fixed timezone support for django 1.4 --- django_mailer/models.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/django_mailer/models.py b/django_mailer/models.py index b50897db..e0e70f3b 100644 --- a/django_mailer/models.py +++ b/django_mailer/models.py @@ -1,6 +1,14 @@ from django.db import models from django_mailer import constants, managers -import datetime + + +def default_now(): + from django import VERSION + if (VERSION[0] >= 1 and VERSION[1] >= 4): + from django.utils import timezone + return timezone.now() + import datetime + return datetime.datetime.now() PRIORITIES = ( @@ -31,7 +39,7 @@ class Message(models.Model): subject = models.CharField(max_length=255) encoded_message = models.TextField() - date_created = models.DateTimeField(default=datetime.datetime.now) + date_created = models.DateTimeField(default=default_now) class Meta: ordering = ('date_created',) @@ -53,7 +61,7 @@ class QueuedMessage(models.Model): default=constants.PRIORITY_NORMAL) deferred = models.DateTimeField(null=True, blank=True) retries = models.PositiveIntegerField(default=0) - date_queued = models.DateTimeField(default=datetime.datetime.now) + date_queued = models.DateTimeField(default=default_now) objects = managers.QueueManager() @@ -61,7 +69,7 @@ class Meta: ordering = ('priority', 'date_queued') def defer(self): - self.deferred = datetime.datetime.now() + self.deferred = default_now() self.save() @@ -74,7 +82,7 @@ class Blacklist(models.Model): """ email = models.EmailField(max_length=200) - date_added = models.DateTimeField(default=datetime.datetime.now) + date_added = models.DateTimeField(default=default_now) class Meta: ordering = ('-date_added',) @@ -89,7 +97,7 @@ class Log(models.Model): """ message = models.ForeignKey(Message, editable=False) result = models.PositiveSmallIntegerField(choices=RESULT_CODES) - date = models.DateTimeField(default=datetime.datetime.now) + date = models.DateTimeField(default=default_now) log_message = models.TextField() class Meta: From 4bc7bd2aba11aa64516eac337f39821cab2416a7 Mon Sep 17 00:00:00 2001 From: Psyton Date: Sat, 12 May 2012 07:09:35 +0700 Subject: [PATCH 2/2] Using conditional import --- django_mailer/__init__.py | 2 +- django_mailer/models.py | 14 +++++--------- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/django_mailer/__init__.py b/django_mailer/__init__.py index be0b1c22..b353de41 100644 --- a/django_mailer/__init__.py +++ b/django_mailer/__init__.py @@ -1,6 +1,6 @@ import logging -VERSION = (1, 2, 0) +VERSION = (1, 2, 2) logger = logging.getLogger('django_mailer') logger.setLevel(logging.DEBUG) diff --git a/django_mailer/models.py b/django_mailer/models.py index e0e70f3b..8ea12851 100644 --- a/django_mailer/models.py +++ b/django_mailer/models.py @@ -1,14 +1,10 @@ from django.db import models from django_mailer import constants, managers - - -def default_now(): - from django import VERSION - if (VERSION[0] >= 1 and VERSION[1] >= 4): - from django.utils import timezone - return timezone.now() - import datetime - return datetime.datetime.now() +try: + from django.utils.timezone import now as default_now +except ImportError: + # Django < 1.4 comes without timezone support + from datetime.datetime import now as default_now PRIORITIES = (