#!/usr/bin/env python # -*- Python -*- """ This script looks at document timestamps going back three years, and if it finds ambiguous timestamps, shifts them backwards one hour in order to disambiguate them. """ import os, sys import datetime import pytz filename = os.path.abspath(__file__) basedir = os.path.abspath(os.path.join(os.path.dirname(__file__), "../..")) sys.path = [ basedir ] + sys.path os.environ["DJANGO_SETTINGS_MODULE"] = "ietf.settings" virtualenv_activation = os.path.join(basedir, "env", "bin", "activate_this.py") if os.path.exists(virtualenv_activation): execfile(virtualenv_activation, dict(__file__=virtualenv_activation)) import django django.setup() from django.conf import settings from ietf.doc.models import Document, DocEvent now = datetime.datetime.now() then = now - datetime.timedelta(days=365*3) for d in Document.objects.filter(time__gt=then).order_by('-time'): tz = pytz.timezone(settings.TIME_ZONE) try: t = tz.localize(d.time, is_dst=None) except pytz.AmbiguousTimeError as e: orig = d.time d.time = d.time - datetime.timedelta(minutes=60) print "%s:\n changed %s --> %s" % (d, orig, d.time) d.save() for d in DocEvent.objects.filter(time__gt=then).order_by('-time'): tz = pytz.timezone(settings.TIME_ZONE) try: t = tz.localize(d.time, is_dst=None) except pytz.AmbiguousTimeError as e: orig = d.time d.time = d.time - datetime.timedelta(minutes=60) print "%s:\n changed %s --> %s" % (d, orig, d.time) d.save()