forked from django-tastypie/django-tastypie
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Added compatibility for Django 1.4's time zone awareness. This also u…
…pdates the tox configuration quite a bit to make it a little bit more flexible. Also drop 1.2.X since the tests already weren't passing there and 1.2.X is about to get dropped from Django core support.
- Loading branch information
1 parent
498afa6
commit 4c1dfb0
Showing
21 changed files
with
173 additions
and
97 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,5 +3,5 @@ mimeparse>=0.1.3 | |
python-dateutil==1.5 | ||
lxml | ||
PyYAML | ||
python_digest | ||
python-digest | ||
biplist |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,34 +1,35 @@ | ||
import email | ||
import datetime | ||
from django.utils import dateformat | ||
from tastypie.utils.timezone import make_aware, make_naive, aware_datetime | ||
|
||
# Try to use dateutil for maximum date-parsing niceness. Fall back to | ||
# hard-coded RFC2822 parsing if that's not possible. | ||
try: | ||
from dateutil.parser import parse as mk_datetime | ||
except ImportError: | ||
def mk_datetime(string): | ||
return datetime.datetime.fromtimestamp(time.mktime(email.utils.parsedate(string))) | ||
return make_aware(datetime.datetime.fromtimestamp(time.mktime(email.utils.parsedate(string)))) | ||
|
||
def format_datetime(dt): | ||
""" | ||
RFC 2822 datetime formatter | ||
""" | ||
return dateformat.format(dt, 'r') | ||
return dateformat.format(make_naive(dt), 'r') | ||
|
||
def format_date(d): | ||
""" | ||
RFC 2822 date formatter | ||
""" | ||
# workaround because Django's dateformat utility requires a datetime | ||
# object (not just date) | ||
dt = datetime.datetime(d.year, d.month, d.day, 0, 0, 0) | ||
dt = aware_datetime(d.year, d.month, d.day, 0, 0, 0) | ||
return dateformat.format(dt, 'j M Y') | ||
|
||
def format_time(t): | ||
""" | ||
RFC 2822 time formatter | ||
""" | ||
# again, workaround dateformat input requirement | ||
dt = datetime.datetime(2000, 1, 1, t.hour, t.minute, t.second) | ||
dt = aware_datetime(2000, 1, 1, t.hour, t.minute, t.second) | ||
return dateformat.format(dt, 'H:i:s O') |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
import datetime | ||
from django.conf import settings | ||
|
||
try: | ||
from django.utils import timezone | ||
|
||
def make_aware(value): | ||
if getattr(settings, "USE_TZ", False): | ||
default_tz = timezone.get_default_timezone() | ||
value = timezone.make_aware(value, default_tz) | ||
return value | ||
|
||
def make_naive(value): | ||
if getattr(settings, "USE_TZ", False) and timezone.is_aware(value): | ||
default_tz = timezone.get_default_timezone() | ||
value = timezone.make_naive(value, default_tz) | ||
return value | ||
|
||
def now(): | ||
return timezone.localtime(timezone.now()) | ||
|
||
except ImportError: | ||
now = datetime.datetime.now | ||
make_aware = make_naive = lambda x: x | ||
|
||
def aware_date(*args, **kwargs): | ||
return make_aware(datetime.date(*args, **kwargs)) | ||
|
||
def aware_datetime(*args, **kwargs): | ||
return make_aware(datetime.datetime(*args, **kwargs)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,16 +1,17 @@ | ||
import datetime | ||
from django.db import models | ||
from tastypie.utils import now | ||
|
||
|
||
class Product(models.Model): | ||
artnr = models.CharField(max_length=8, primary_key=True) | ||
name = models.CharField(max_length=32, null=False, blank=True, default='') | ||
created = models.DateTimeField(default=datetime.datetime.now) | ||
updated = models.DateTimeField(default=datetime.datetime.now) | ||
created = models.DateTimeField(default=now) | ||
updated = models.DateTimeField(default=now) | ||
|
||
def __unicode__(self): | ||
return "%s - %s" % (self.artnr, self.name) | ||
|
||
def save(self, *args, **kwargs): | ||
self.updated = datetime.datetime.now() | ||
self.updated = now() | ||
return super(Product, self).save(*args, **kwargs) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.