Changed datetime setter to use utils.timezone instead of naive datetime stamps, as per #728.

This commit is contained in:
Griatch 2015-03-27 07:04:19 +01:00
parent b0c71ee924
commit 3ebc55da82
7 changed files with 20 additions and 14 deletions

View file

@ -19,8 +19,8 @@ ChannelConnect object (this object is necessary to easily
be able to delete connections on the fly).
"""
from datetime import datetime
from django.conf import settings
from django.utils import timezone
from django.db import models
from evennia.typeclasses.models import TypedObject
from evennia.utils.idmapper.models import SharedMemoryModel
@ -309,7 +309,7 @@ class TempMsg(object):
self.message = message
self.lock_storage = lockstring
self.hide_from = hide_from and make_iter(hide_from) or []
self.date_sent = datetime.now()
self.date_sent = timezone.now()
@lazy_property
def locks(self):

View file

@ -3,6 +3,7 @@ The managers for the custom Player object and permissions.
"""
import datetime
from django.utils import timezone
from django.contrib.auth.models import UserManager
#from functools import update_wrapper
from evennia.typeclasses.managers import (returns_typeclass_list, returns_typeclass,
@ -59,7 +60,7 @@ class PlayerDBManager(TypedObjectManager, UserManager):
Returns a QuerySet containing the player User accounts that have been
connected within the last <days> days.
"""
end_date = datetime.datetime.now()
end_date = timezone.now()
tdelta = datetime.timedelta(days)
start_date = end_date - tdelta
return self.filter(date_joined__range=(start_date, end_date))
@ -72,7 +73,7 @@ class PlayerDBManager(TypedObjectManager, UserManager):
days - number of days backwards to check
"""
end_date = datetime.datetime.now()
end_date = timezone.now()
tdelta = datetime.timedelta(days)
start_date = end_date - tdelta
return self.filter(last_login__range=(

View file

@ -11,8 +11,8 @@ instead for most things).
"""
import datetime
from django.conf import settings
from django.utils import timezone
from evennia.typeclasses.models import TypeclassBase
from evennia.players.manager import PlayerManager
from evennia.players.models import PlayerDB
@ -558,7 +558,7 @@ class DefaultPlayer(PlayerDB):
_CONNECT_CHANNEL = ChannelDB.objects.filter(db_key=settings.DEFAULT_CHANNELS[1]["key"])[0]
except Exception:
logger.log_trace()
now = datetime.datetime.now()
now = timezone.now()
now = "%02i-%02i-%02i(%02i:%02i)" % (now.year, now.month,
now.day, now.hour, now.minute)
if _CONNECT_CHANNEL:

View file

@ -9,7 +9,7 @@ are stored on the Portal side)
import re
from time import time
from datetime import datetime
from django.utils import timezone
from django.conf import settings
from evennia.comms.models import ChannelDB
from evennia.utils import logger
@ -106,7 +106,7 @@ class ServerSession(Session):
self.cmdset_storage = settings.CMDSET_SESSION
# Update account's last login time.
self.player.last_login = datetime.now()
self.player.last_login = timezone.now()
self.player.save()
# add the session-level cmdset
@ -122,7 +122,7 @@ class ServerSession(Session):
if self.puppet:
player.unpuppet_object(sessid)
uaccount = player
uaccount.last_login = datetime.now()
uaccount.last_login = timezone.now()
uaccount.save()
# calling player hook
player.at_disconnect()

View file

@ -119,6 +119,8 @@ CYCLE_LOGFILES = True
# Local time zone for this installation. All choices can be found here:
# http://www.postgresql.org/docs/8.0/interactive/datetime-keywords.html#DATETIME-TIMEZONE-SET-TABLE
TIME_ZONE = 'UTC'
# Activate time zone in datetimes
USE_TZ = True
# Authentication backends. This is the code used to authenticate a user.
AUTHENTICATION_BACKENDS = (
'evennia.web.utils.backends.CaseInsensitiveModelBackend',)

View file

@ -14,12 +14,13 @@ log_typemsg(). This is for historical, back-compatible reasons.
"""
import os
from datetime import datetime
from traceback import format_exc
from twisted.python import log
from twisted.internet.threads import deferToThread
_LOGDIR = None
_TIMEZONE = None
def log_trace(errmsg=None):
"""
@ -114,15 +115,17 @@ def log_file(msg, filename="game.log"):
'game.log'. All logs will appear in the logs directory and log
entries will start on new lines following datetime info.
"""
global LOG_FILE_HANDLES, _LOGDIR
global LOG_FILE_HANDLES, _LOGDIR, _TIMEZONE
if not _LOGDIR:
from django.conf import settings
_LOGDIR = settings.LOG_DIR
if not _TIMEZONE:
from django.utils import timezone as _TIMEZONE
def callback(filehandle, msg):
"Writing to file and flushing result"
msg = "\n%s [-] %s" % (datetime.now(), msg.strip())
msg = "\n%s [-] %s" % (_TIMEZONE.now(), msg.strip())
filehandle.write(msg)
# since we don't close the handle, we need to flush
# manually or log file won't be written to until the

View file

@ -13,7 +13,6 @@ import types
import math
import re
import textwrap
import datetime
import random
import traceback
from importlib import import_module
@ -21,6 +20,7 @@ from inspect import ismodule, trace
from collections import defaultdict
from twisted.internet import threads, defer, reactor
from django.conf import settings
from django.utils import timezone
try:
import cPickle as pickle
@ -279,7 +279,7 @@ def datetime_format(dtobj):
year, month, day = dtobj.year, dtobj.month, dtobj.day
hour, minute, second = dtobj.hour, dtobj.minute, dtobj.second
now = datetime.datetime.now()
now = timezone.now()
if year < now.year:
# another year