Update transaction handling as changed in Django 1.6
This commit is contained in:
@@ -2,23 +2,23 @@ from __future__ import absolute_import
|
||||
|
||||
import tempfile
|
||||
|
||||
from south.signals import post_migrate
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.contrib.auth import models as auth_models
|
||||
from django.contrib.auth.models import User
|
||||
from django.contrib.auth.management import create_superuser
|
||||
from django.dispatch import receiver
|
||||
from django.db.models.signals import post_save
|
||||
from django.contrib.auth.models import User
|
||||
from django.db import transaction, DatabaseError
|
||||
from django.db.models.signals import post_save
|
||||
from django.dispatch import receiver
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from south.signals import post_migrate
|
||||
|
||||
from navigation.api import register_links, register_top_menu
|
||||
|
||||
from .conf import settings as common_settings
|
||||
from .conf.settings import (AUTO_CREATE_ADMIN, AUTO_ADMIN_USERNAME,
|
||||
AUTO_ADMIN_PASSWORD, TEMPORARY_DIRECTORY)
|
||||
from .conf import settings as common_settings
|
||||
from .utils import validate_path
|
||||
from .models import AutoAdminSingleton
|
||||
from .utils import validate_path
|
||||
|
||||
|
||||
def has_usable_password(context):
|
||||
@@ -72,14 +72,14 @@ def create_superuser(sender, **kwargs):
|
||||
|
||||
@receiver(post_save, dispatch_uid='auto_admin_account_passwd_change', sender=User)
|
||||
def auto_admin_account_passwd_change(sender, instance, **kwargs):
|
||||
with transaction.commit_on_success():
|
||||
try:
|
||||
try:
|
||||
with transaction.atomic():
|
||||
auto_admin_properties = AutoAdminSingleton.objects.get()
|
||||
if instance == auto_admin_properties.account and instance.password != auto_admin_properties.password_hash:
|
||||
# Only delete the auto admin properties when the password has been changed
|
||||
auto_admin_properties.delete(force=True)
|
||||
except DatabaseError:
|
||||
transaction.rollback()
|
||||
except DatabaseError:
|
||||
pass
|
||||
|
||||
|
||||
if (validate_path(TEMPORARY_DIRECTORY) == False) or (not TEMPORARY_DIRECTORY):
|
||||
|
||||
@@ -1,30 +1,28 @@
|
||||
from __future__ import absolute_import
|
||||
|
||||
import pickle
|
||||
import json
|
||||
import pickle
|
||||
|
||||
from django.db import transaction
|
||||
from django.db import models, transaction
|
||||
from django.db.utils import DatabaseError
|
||||
from django.core import serializers
|
||||
from django.shortcuts import get_object_or_404
|
||||
from django.db import models
|
||||
from django.db.utils import DatabaseError
|
||||
|
||||
from .models import HistoryType, History
|
||||
from .runtime_data import history_types_dict
|
||||
|
||||
|
||||
@transaction.commit_on_success
|
||||
def register_history_type(history_type_dict):
|
||||
namespace = history_type_dict['namespace']
|
||||
name = history_type_dict['name']
|
||||
|
||||
try:
|
||||
history_type_obj, created = HistoryType.objects.get_or_create(
|
||||
namespace=namespace, name=name)
|
||||
history_type_obj.save()
|
||||
with transaction.atomic():
|
||||
history_type_obj, created = HistoryType.objects.get_or_create(
|
||||
namespace=namespace, name=name)
|
||||
history_type_obj.save()
|
||||
except DatabaseError:
|
||||
# Special case for syncdb
|
||||
transaction.rollback()
|
||||
pass
|
||||
|
||||
# Runtime
|
||||
history_types_dict.setdefault(namespace, {})
|
||||
|
||||
@@ -25,13 +25,13 @@ def trigger_first_time(sender, **kwargs):
|
||||
details.save()
|
||||
|
||||
|
||||
@transaction.commit_on_success
|
||||
def check_first_run():
|
||||
try:
|
||||
details = Installation.objects.get()
|
||||
with transaction.atomic():
|
||||
details = Installation.objects.get()
|
||||
except DatabaseError:
|
||||
# Avoid database errors when the app tables haven't been created yet
|
||||
transaction.rollback()
|
||||
pass
|
||||
else:
|
||||
if details.is_first_run:
|
||||
details.submit()
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
from __future__ import absolute_import
|
||||
|
||||
import logging
|
||||
import datetime
|
||||
import logging
|
||||
|
||||
from django.db import models, transaction
|
||||
from django.db.utils import IntegrityError
|
||||
from django.db import transaction
|
||||
from django.db import models
|
||||
|
||||
from .exceptions import LockError
|
||||
|
||||
@@ -13,16 +12,16 @@ logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class LockManager(models.Manager):
|
||||
@transaction.commit_on_success
|
||||
def acquire_lock(self, name, timeout=None):
|
||||
logger.debug('trying to acquire lock: %s' % name)
|
||||
lock = self.model(name=name, timeout=timeout)
|
||||
|
||||
try:
|
||||
lock.save(force_insert=True)
|
||||
logger.debug('acquired lock: %s' % name)
|
||||
return lock
|
||||
with transaction.atomic():
|
||||
lock.save(force_insert=True)
|
||||
logger.debug('acquired lock: %s' % name)
|
||||
return lock
|
||||
except IntegrityError, msg:
|
||||
transaction.rollback()
|
||||
logger.debug('IntegrityError: %s', msg)
|
||||
# There is already an existing lock
|
||||
# Check it's expiration date and if expired, reset it
|
||||
|
||||
@@ -43,18 +43,6 @@ register_links(['document_queue_disable', 'document_queue_enable', 'queue_docume
|
||||
register_maintenance_links([all_document_ocr_cleanup], namespace='ocr', title=_(u'OCR'))
|
||||
|
||||
|
||||
@transaction.commit_on_success
|
||||
def create_default_queue():
|
||||
try:
|
||||
default_queue, created = DocumentQueue.objects.get_or_create(name='default')
|
||||
except DatabaseError:
|
||||
transaction.rollback()
|
||||
else:
|
||||
if created:
|
||||
default_queue.label = ugettext(u'Default')
|
||||
default_queue.save()
|
||||
|
||||
|
||||
@receiver(post_save, dispatch_uid='document_post_save', sender=DocumentVersion)
|
||||
def document_post_save(sender, instance, **kwargs):
|
||||
logger.debug('received post save signal')
|
||||
@@ -69,7 +57,8 @@ def document_post_save(sender, instance, **kwargs):
|
||||
|
||||
@receiver(post_syncdb, dispatch_uid='create_default_queue', sender=ocr_models)
|
||||
def create_default_queue_signal_handler(sender, **kwargs):
|
||||
create_default_queue()
|
||||
default_queue, created = DocumentQueue.objects.get_or_create(name='default')
|
||||
|
||||
|
||||
register_interval_job('task_process_document_queues', _(u'Checks the OCR queue for pending documents.'), task_process_document_queues, seconds=QUEUE_PROCESSING_INTERVAL)
|
||||
|
||||
|
||||
@@ -18,8 +18,8 @@ form_view = {'text': _('Registration'), 'view': 'form_view', 'famfam': 'telephon
|
||||
register_links(['form_view'], [about_view, license_view], menu_name='secondary_menu')
|
||||
register_links(['form_view', 'about_view', 'license_view'], [form_view], menu_name='secondary_menu')
|
||||
|
||||
with transaction.commit_on_success():
|
||||
try:
|
||||
try:
|
||||
with transaction.atomic():
|
||||
RegistrationSingleton.objects.get()
|
||||
except DatabaseError:
|
||||
transaction.rollback()
|
||||
except DatabaseError:
|
||||
pass
|
||||
|
||||
@@ -3,30 +3,29 @@ from __future__ import absolute_import
|
||||
from ast import literal_eval
|
||||
import logging
|
||||
|
||||
from django.db import models
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.contrib.contenttypes import generic
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.db import transaction
|
||||
from django.db import models, transaction
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from acls.utils import apply_default_acls
|
||||
from common.compressed_files import CompressedFile, NotACompressedFile
|
||||
from converter.api import get_available_transformations_choices
|
||||
from converter.literals import DIMENSION_SEPARATOR
|
||||
from documents.models import Document
|
||||
from documents.events import HISTORY_DOCUMENT_CREATED
|
||||
from document_indexing.api import update_indexes
|
||||
from documents.events import HISTORY_DOCUMENT_CREATED
|
||||
from documents.models import Document
|
||||
from history.api import create_history
|
||||
from metadata.api import save_metadata_list
|
||||
from scheduler.api import register_interval_job, remove_job
|
||||
from acls.utils import apply_default_acls
|
||||
|
||||
from .managers import SourceTransformationManager
|
||||
from .literals import (SOURCE_CHOICES, SOURCE_CHOICES_PLURAL,
|
||||
SOURCE_INTERACTIVE_UNCOMPRESS_CHOICES, SOURCE_CHOICE_WEB_FORM,
|
||||
SOURCE_CHOICE_STAGING, SOURCE_ICON_DISK, SOURCE_ICON_DRIVE,
|
||||
SOURCE_ICON_CHOICES, SOURCE_CHOICE_WATCH, SOURCE_UNCOMPRESS_CHOICES,
|
||||
SOURCE_UNCOMPRESS_CHOICE_Y)
|
||||
from .managers import SourceTransformationManager
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -85,7 +84,7 @@ class BaseModel(models.Model):
|
||||
file_object.close()
|
||||
return {'is_compressed': is_compressed}
|
||||
|
||||
@transaction.commit_on_success
|
||||
@transaction.atomic
|
||||
def upload_single_file(self, file_object, filename=None, use_file_name=False, document_type=None, metadata_dict_list=None, user=None, document=None, new_version_data=None):
|
||||
new_document = not document
|
||||
|
||||
|
||||
@@ -106,14 +106,14 @@ TEMPLATE_LOADERS = (
|
||||
)
|
||||
|
||||
MIDDLEWARE_CLASSES = (
|
||||
'common.middleware.strip_spaces_widdleware.SpacelessMiddleware',
|
||||
'django.middleware.common.CommonMiddleware',
|
||||
'django.contrib.sessions.middleware.SessionMiddleware',
|
||||
'django.middleware.transaction.TransactionMiddleware',
|
||||
'django.middleware.locale.LocaleMiddleware',
|
||||
'django.middleware.common.CommonMiddleware',
|
||||
'django.middleware.csrf.CsrfViewMiddleware',
|
||||
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||||
'django.contrib.messages.middleware.MessageMiddleware',
|
||||
'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
||||
'django.middleware.locale.LocaleMiddleware',
|
||||
'common.middleware.strip_spaces_widdleware.SpacelessMiddleware',
|
||||
'common.middleware.login_required_middleware.LoginRequiredMiddleware',
|
||||
'permissions.middleware.permission_denied_middleware.PermissionDeniedMiddleware',
|
||||
'pagination.middleware.PaginationMiddleware',
|
||||
|
||||
Reference in New Issue
Block a user