Update usage of datetime.now to Django timezone aware now()

This commit is contained in:
Roberto Rosario
2014-06-29 17:00:07 -04:00
parent a46642015b
commit d640eacec8
16 changed files with 54 additions and 47 deletions

View File

@@ -64,18 +64,16 @@ if YAML_AVAILABLE:
FIXTURE_TYPES_CHOICES += (FIXTURE_TYPE_BETTER_YAML, _(u'Better YAML')),
# better_yaml is not working with natural keys
FIXTURE_METADATA_REMARK_CHARACTER = '#'
BOOTSTRAP_EXTENSION = 'txt'
BOOTSTRAP_REPOSITORY_INDEX_FILE = '_repo_index.txt'
BOOTSTRAP_REPOSITORY_URL = 'http://bootstrap.mayan-edms.com'
BOOTSTRAP_SETUP_MAGIC_NUMBER = 'bootstrap setup'
DATETIME_STRING_FORMAT = '%a, %d %b %Y %H:%M:%S +0000'
FIXTURE_METADATA_CREATED = 'created'
FIXTURE_METADATA_EDITED = 'edited'
FIXTURE_METADATA_MAYAN_VERSION = 'mayan_edms_version'
FIXTURE_METADATA_FORMAT = 'format'
FIXTURE_METADATA_NAME = 'name'
FIXTURE_METADATA_SLUG = 'slug'
FIXTURE_METADATA_DESCRIPTION = 'description'
BOOTSTRAP_EXTENSION = 'txt'
BOOTSTRAP_SETUP_MAGIC_NUMBER = 'bootstrap setup'
BOOTSTRAP_REPOSITORY_URL = 'http://bootstrap.mayan-edms.com'
BOOTSTRAP_REPOSITORY_INDEX_FILE = '_repo_index.txt'
FIXTURE_METADATA_EDITED = 'edited'
FIXTURE_METADATA_FORMAT = 'format'
FIXTURE_METADATA_MAYAN_VERSION = 'mayan_edms_version'
FIXTURE_METADATA_NAME = 'name'
FIXTURE_METADATA_REMARK_CHARACTER = '#'
FIXTURE_METADATA_SLUG = 'slug'

View File

@@ -15,6 +15,7 @@ except ImportError:
from django.core import management
from django.core.files.uploadedfile import SimpleUploadedFile
from django.db import models
from django.utils.timezone import now
from django.utils.translation import ugettext_lazy as _
from .classes import BootstrapModel, FixtureMetadata
@@ -32,7 +33,7 @@ class BootstrapSetup(models.Model):
description = models.TextField(verbose_name=_(u'description'), blank=True)
fixture = models.TextField(verbose_name=_(u'fixture'), help_text=_(u'These are the actual database structure creation instructions.'))
type = models.CharField(max_length=16, verbose_name=_(u'type'), choices=FIXTURE_TYPES_CHOICES)
created = models.DateTimeField(verbose_name=_('creation date and time'), default=lambda: datetime.datetime.now(), editable=False)
created = models.DateTimeField(verbose_name=_('creation date and time'), default=lambda: now(), editable=False)
objects = BootstrapSetupManager()

View File

@@ -2,6 +2,8 @@ from __future__ import absolute_import
import datetime
from django.utils.timezone import now
from mayan import __version__
from navigation.api import register_links
@@ -21,7 +23,7 @@ register_links([BootstrapSetup], [link_bootstrap_setup_list, link_bootstrap_setu
register_links(['bootstrap_setup_list', 'bootstrap_setup_create', 'bootstrap_setup_dump', 'bootstrap_setup_import_from_file', 'bootstrap_setup_import_from_url', 'bootstrap_setup_repository_sync'], [link_bootstrap_setup_list, link_bootstrap_setup_create, link_bootstrap_setup_dump, link_bootstrap_setup_import_from_file, link_bootstrap_setup_import_from_url, link_bootstrap_setup_repository_sync], menu_name='secondary_menu')
FixtureMetadata(FIXTURE_METADATA_CREATED, generate_function=lambda fixture_instance: fixture_instance.created.strftime(DATETIME_STRING_FORMAT), read_function=lambda x: datetime.datetime.strptime(x, DATETIME_STRING_FORMAT), property_name='created')
FixtureMetadata(FIXTURE_METADATA_EDITED, generate_function=lambda fixture_instance: datetime.datetime.now().strftime(DATETIME_STRING_FORMAT))
FixtureMetadata(FIXTURE_METADATA_EDITED, generate_function=lambda fixture_instance: now().strftime(DATETIME_STRING_FORMAT))
FixtureMetadata(FIXTURE_METADATA_MAYAN_VERSION, generate_function=lambda fixture_instance: __version__)
FixtureMetadata(FIXTURE_METADATA_FORMAT, generate_function=lambda fixture_instance: fixture_instance.type, property_name='type')
FixtureMetadata(FIXTURE_METADATA_NAME, generate_function=lambda fixture_instance: fixture_instance.name, property_name='name')

View File

@@ -5,6 +5,7 @@ import logging
from django.db import models
from django.core.exceptions import PermissionDenied
from django.utils.timezone import now
from acls.models import AccessEntry
from documents.models import Document
@@ -25,7 +26,7 @@ class DocumentCheckoutManager(models.Manager):
return Document.objects.filter(pk__in=self.model.objects.all().values_list('document__pk', flat=True))
def expired_check_outs(self):
expired_list = Document.objects.filter(pk__in=self.model.objects.filter(expiration_datetime__lte=datetime.datetime.now()).values_list('document__pk', flat=True))
expired_list = Document.objects.filter(pk__in=self.model.objects.filter(expiration_datetime__lte=now()).values_list('document__pk', flat=True))
logger.debug('expired_list: %s' % expired_list)
return expired_list

View File

@@ -6,6 +6,7 @@ import logging
from django.contrib.contenttypes import generic
from django.contrib.contenttypes.models import ContentType
from django.db import models
from django.utils.timezone import now
from django.utils.translation import ugettext_lazy as _
from documents.models import Document
@@ -41,7 +42,7 @@ class DocumentCheckout(models.Model):
def save(self, *args, **kwargs):
if not self.pk:
self.checkout_datetime = datetime.datetime.now()
self.checkout_datetime = now()
result = super(DocumentCheckout, self).save(*args, **kwargs)
create_history(HISTORY_DOCUMENT_CHECKED_OUT, source_object=self.document, data={'user': self.user_object, 'document': self.document})
return result

View File

@@ -6,6 +6,7 @@ from django import forms
from django.conf import settings
from django.core import validators
from django.utils.safestring import mark_safe
from django.utils.timezone import now
from django.utils.translation import ugettext_lazy as _
from .literals import STATE_ICONS, STATE_LABELS
@@ -103,5 +104,5 @@ class SplitTimeDeltaField(forms.MultiValueField):
raise forms.ValidationError(self.error_messages['invalid_minutes'])
timedelta = datetime.timedelta(days=data_list[0], hours=data_list[1], minutes=data_list[2])
return datetime.datetime.now() + timedelta
return now() + timedelta
return None

View File

@@ -1,9 +1,9 @@
from __future__ import absolute_import
from ast import literal_eval
import datetime
from django.db import models
from django.utils.timezone import now
from .conf.settings import RECENT_COUNT
@@ -35,7 +35,7 @@ class RecentDocumentManager(models.Manager):
new_recent, created = self.model.objects.get_or_create(user=user, document=document)
if not created:
# document already in the recent list, just update the accessed date and time
new_recent.datetime_accessed = datetime.datetime.now()
new_recent.datetime_accessed = now()
new_recent.save()
for recent_to_delete in self.model.objects.filter(user=user)[RECENT_COUNT:]:
recent_to_delete.delete()

View File

@@ -16,6 +16,7 @@ except ImportError:
from django.db import models
from django.contrib.auth.models import User
from django.core.exceptions import ValidationError
from django.utils.timezone import now
from django.utils.translation import ugettext
from django.utils.translation import ugettext_lazy as _
@@ -103,7 +104,7 @@ class Document(models.Model):
def save(self, *args, **kwargs):
if not self.pk:
self.uuid = UUID_FUNCTION()
self.date_added = datetime.datetime.now()
self.date_added = now()
super(Document, self).save(*args, **kwargs)
def get_cached_image_name(self, page, version):
@@ -368,7 +369,7 @@ class DocumentVersion(models.Model):
"""
new_document = not self.pk
if not self.pk:
self.timestamp = datetime.datetime.now()
self.timestamp = now()
# Only do this for new documents
transformations = kwargs.pop('transformations', None)
@@ -633,7 +634,7 @@ class RecentDocument(models.Model):
"""
user = models.ForeignKey(User, verbose_name=_(u'user'), editable=False)
document = models.ForeignKey(Document, verbose_name=_(u'document'), editable=False)
datetime_accessed = models.DateTimeField(verbose_name=_(u'accessed'), default=lambda: datetime.datetime.now(), db_index=True)
datetime_accessed = models.DateTimeField(verbose_name=_(u'accessed'), default=lambda: now(), db_index=True)
objects = RecentDocumentManager()

View File

@@ -1,18 +1,17 @@
from __future__ import absolute_import
import urlparse
import urllib
import urlparse
from datetime import datetime
from django.db import models
from django.utils.translation import ugettext as _
from django.contrib.auth.models import User
from django.core.urlresolvers import reverse
from django.db import models
from django.utils.encoding import smart_unicode, smart_str
from django.utils.timezone import now
from django.utils.translation import ugettext as _
from .managers import RecentSearchManager
from .classes import SearchModel
from .managers import RecentSearchManager
class RecentSearch(models.Model):
@@ -28,7 +27,7 @@ class RecentSearch(models.Model):
def __unicode__(self):
document_search = SearchModel.get('documents.Document')
query_dict = urlparse.parse_qs(urllib.unquote_plus(smart_str(self.query)))
if self.is_advanced():
@@ -46,7 +45,7 @@ class RecentSearch(models.Model):
return u'%s (%s)' % (display_string, self.hits)
def save(self, *args, **kwargs):
self.datetime_created = datetime.now()
self.datetime_created = now()
super(RecentSearch, self).save(*args, **kwargs)
def url(self):

View File

@@ -1,8 +1,9 @@
from datetime import datetime
from django.db import models
from django.utils.translation import ugettext as _
from django.contrib.auth.models import User
from django.db import models
from django.utils.timezone import now
from django.utils.translation import ugettext as _
from documents.models import Document
@@ -17,7 +18,7 @@ class Folder(models.Model):
def save(self, *args, **kwargs):
if not self.pk:
self.datetime_created = datetime.now()
self.datetime_created = now()
super(Folder, self).save(*args, **kwargs)
@models.permalink

View File

@@ -2,15 +2,14 @@ from __future__ import absolute_import
import json
import pickle
from datetime import datetime
from django.db import models
from django.contrib.contenttypes.models import ContentType
from django.contrib.contenttypes import generic
from django.utils.translation import ugettext_lazy as _
from django.contrib.contenttypes.models import ContentType
from django.core import serializers
from django.db import models
from django.utils.timezone import now
from django.utils.translation import ugettext_lazy as _
#from history.managers import HistoryManager
from .runtime_data import history_types_dict
@@ -48,7 +47,7 @@ class History(models.Model):
def save(self, *args, **kwargs):
if not self.pk:
self.datetime = datetime.now()
self.datetime = now()
super(History, self).save(*args, **kwargs)
def get_label(self):

View File

@@ -5,6 +5,7 @@ import logging
from django.db import models, transaction
from django.db.utils import IntegrityError
from django.utils.timezone import now
from .exceptions import LockError
@@ -32,7 +33,7 @@ class LockManager(models.Manager):
logger.debug('lock: %s does not exist' % name)
raise LockError('Unable to acquire lock')
if datetime.datetime.now() > lock.creation_datetime + datetime.timedelta(seconds=lock.timeout):
if now() > lock.creation_datetime + datetime.timedelta(seconds=lock.timeout):
logger.debug('reseting deleting stale lock: %s' % name)
lock.timeout = timeout
logger.debug('trying to reacquire stale lock: %s' % name)

View File

@@ -1,9 +1,8 @@
from __future__ import absolute_import
import datetime
from django.db import models
from django.utils.translation import ugettext_lazy as _
from django.utils.timezone import now
from .managers import LockManager
from .conf.settings import DEFAULT_LOCK_TIMEOUT
@@ -20,7 +19,7 @@ class Lock(models.Model):
return self.name
def save(self, *args, **kwargs):
self.creation_datetime = datetime.datetime.now()
self.creation_datetime = now()
if not self.timeout and not kwargs.get('timeout'):
self.timeout = DEFAULT_LOCK_TIMEOUT
@@ -31,7 +30,7 @@ class Lock(models.Model):
lock = Lock.objects.get(name=self.name, creation_datetime=self.creation_datetime)
lock.delete()
except Lock.DoesNotExist:
# Out lock expired and was reassigned
# Our lock has expired and was reassigned
pass
class Meta:

View File

@@ -3,12 +3,13 @@
import datetime
from django.contrib.auth.models import User
from django.utils.timezone import now
from smart_settings.api import register_settings
default_available_functions = {
'current_date': datetime.datetime.now().date,
'current_date': now().date,
}
default_available_models = {

View File

@@ -4,6 +4,7 @@ from datetime import datetime
from django.db import models
from django.core.exceptions import ObjectDoesNotExist
from django.utils.timezone import now
from django.utils.translation import ugettext
from django.utils.translation import ugettext_lazy as _
@@ -55,7 +56,7 @@ class QueueDocument(models.Model):
if self.state == QUEUEDOCUMENT_STATE_PROCESSING:
raise ReQueueError
else:
self.datetime_submitted = datetime.now()
self.datetime_submitted = now()
self.state = QUEUEDOCUMENT_STATE_PENDING
self.delay = False
self.result = None

View File

@@ -5,6 +5,7 @@ import logging
import platform
from django.db.models import Q
from django.utils.timezone import now
from job_processor.api import process_job
from lock_manager import Lock, LockError
@@ -51,7 +52,7 @@ def task_process_document_queues():
# TODO: reset_orphans()
q_pending = Q(state=QUEUEDOCUMENT_STATE_PENDING)
q_delayed = Q(delay=True)
q_delay_interval = Q(datetime_submitted__lt=datetime.now() - timedelta(seconds=REPLICATION_DELAY))
q_delay_interval = Q(datetime_submitted__lt=now() - timedelta(seconds=REPLICATION_DELAY))
for document_queue in DocumentQueue.objects.filter(state=DOCUMENTQUEUE_STATE_ACTIVE):
current_local_processing_count = QueueDocument.objects.filter(
state=QUEUEDOCUMENT_STATE_PROCESSING).filter(