From 90e08b4863dfaecafee5b151478bda4513b12e85 Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Fri, 23 Mar 2012 19:29:40 -0500 Subject: Make all datetime objects fully timezone aware This is most of the transition to Django 1.4 `USE_TZ = True`. We need to ensure we don't mix aware and non-aware datetime objects when dealing with datetimes in the code. Add a utc_now() helper method that we can use most places, and ensure there is always a timezone attached when necessary. Signed-off-by: Dan McGee --- packages/management/commands/signoff_report.py | 5 +++-- packages/migrations/0007_auto__add_field_packagerelation_created.py | 5 ++++- packages/views/flag.py | 5 ++--- packages/views/signoff.py | 4 ++-- 4 files changed, 11 insertions(+), 8 deletions(-) (limited to 'packages') diff --git a/packages/management/commands/signoff_report.py b/packages/management/commands/signoff_report.py index 3b67f51..ddf930d 100644 --- a/packages/management/commands/signoff_report.py +++ b/packages/management/commands/signoff_report.py @@ -17,12 +17,13 @@ from django.db.models import Count from django.template import loader, Context from collections import namedtuple -from datetime import datetime, timedelta +from datetime import timedelta import logging from operator import attrgetter import sys from main.models import Repo +from main.utils import utc_now from packages.models import Signoff from packages.utils import get_signoff_groups @@ -65,7 +66,7 @@ def generate_report(email, repo_name): new_hours = 24 old_days = 14 - now = datetime.utcnow() + now = utc_now() new_cutoff = now - timedelta(hours=new_hours) old_cutoff = now - timedelta(days=old_days) diff --git a/packages/migrations/0007_auto__add_field_packagerelation_created.py b/packages/migrations/0007_auto__add_field_packagerelation_created.py index 37321fd..b030909 100644 --- a/packages/migrations/0007_auto__add_field_packagerelation_created.py +++ b/packages/migrations/0007_auto__add_field_packagerelation_created.py @@ -1,5 +1,6 @@ # encoding: utf-8 import datetime +from pytz import utc from south.db import db from south.v2 import SchemaMigration from django.db import models @@ -7,7 +8,9 @@ from django.db import models class Migration(SchemaMigration): def forwards(self, orm): - db.add_column('packages_packagerelation', 'created', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.utcnow()), keep_default=False) + old_date = datetime.datetime(2000, 1, 1) + old_date = old_date.replace(tzinfo=utc) + db.add_column('packages_packagerelation', 'created', self.gf('django.db.models.fields.DateTimeField')(default=old_date), keep_default=False) def backwards(self, orm): db.delete_column('packages_packagerelation', 'created') diff --git a/packages/views/flag.py b/packages/views/flag.py index c0990e8..0d2f900 100644 --- a/packages/views/flag.py +++ b/packages/views/flag.py @@ -1,5 +1,3 @@ -from datetime import datetime - from django import forms from django.conf import settings from django.contrib.auth.decorators import permission_required @@ -12,6 +10,7 @@ from django.views.decorators.cache import never_cache from ..models import FlagRequest from main.models import Package +from main.utils import utc_now def flaghelp(request): @@ -61,7 +60,7 @@ def flag(request, name, repo, arch): @transaction.commit_on_success def perform_updates(): - now = datetime.utcnow() + now = utc_now() pkgs.update(flag_date=now) # store our flag request flag_request = FlagRequest(created=now, diff --git a/packages/views/signoff.py b/packages/views/signoff.py index e3daf0d..cf00b0b 100644 --- a/packages/views/signoff.py +++ b/packages/views/signoff.py @@ -1,4 +1,3 @@ -from datetime import datetime from operator import attrgetter from django import forms @@ -13,6 +12,7 @@ from django.views.decorators.cache import never_cache from django.views.generic.simple import direct_to_template from main.models import Package, Arch, Repo +from main.utils import utc_now from ..models import SignoffSpecification, Signoff from ..utils import (get_signoff_groups, approved_by_signoffs, PackageSignoffGroup) @@ -45,7 +45,7 @@ def signoff_package(request, name, repo, arch, revoke=False): package, request.user, False) except Signoff.DoesNotExist: raise Http404 - signoff.revoked = datetime.utcnow() + signoff.revoked = utc_now() signoff.save() created = False else: -- cgit v1.2.3-24-g4f1b