# HG changeset patch # User neko259 # Date 2013-11-07 10:55:02 # Node ID 172f5ae7f40509b2e6cd6d8bd95edcc3127eb0a6 # Parent e2488cd8d2ab3f7ac4332767dd606a468d5c61a3 Use transactions only in views that need them diff --git a/boards/views.py b/boards/views.py --- a/boards/views.py +++ b/boards/views.py @@ -7,6 +7,7 @@ from django.http.response import HttpRes from django.template import RequestContext from django.shortcuts import render, redirect, get_object_or_404 from django.utils import timezone +from django.db import transaction from boards import forms import boards @@ -61,6 +62,7 @@ def index(request, page=0): context) +@transaction.commit_on_success def _new_post(request, form, thread_id=boards.models.NO_PARENT): """Add a new post (in thread or as a reply).""" @@ -226,22 +228,23 @@ def settings(request): is_moderator = user.is_moderator() if request.method == 'POST': - if is_moderator: - form = ModeratorSettingsForm(request.POST, - error_class=PlainErrorList) - else: - form = SettingsForm(request.POST, error_class=PlainErrorList) + with transaction.commit_on_success(): + if is_moderator: + form = ModeratorSettingsForm(request.POST, + error_class=PlainErrorList) + else: + form = SettingsForm(request.POST, error_class=PlainErrorList) - if form.is_valid(): - selected_theme = form.cleaned_data['theme'] + if form.is_valid(): + selected_theme = form.cleaned_data['theme'] - user.save_setting('theme', selected_theme) + user.save_setting('theme', selected_theme) - if is_moderator: - moderate = form.cleaned_data['moderate'] - user.save_setting(SETTING_MODERATE, moderate) + if is_moderator: + moderate = form.cleaned_data['moderate'] + user.save_setting(SETTING_MODERATE, moderate) - return redirect(settings) + return redirect(settings) else: selected_theme = _get_theme(request) @@ -288,6 +291,7 @@ def authors(request): return render(request, 'boards/authors.html', context) +@transaction.commit_on_success def delete(request, post_id): """Delete post""" @@ -304,6 +308,7 @@ def delete(request, post_id): return redirect(thread, post_id=post.thread.id) +@transaction.commit_on_success def ban(request, post_id): """Ban user""" @@ -331,6 +336,7 @@ def page_404(request): return render(request, 'boards/404.html', context) +@transaction.commit_on_success def tag_subscribe(request, tag_name): """Add tag to favorites""" @@ -343,6 +349,7 @@ def tag_subscribe(request, tag_name): return _redirect_to_next(request) +@transaction.commit_on_success def tag_unsubscribe(request, tag_name): """Remove tag from favorites""" diff --git a/neboard/settings.py b/neboard/settings.py --- a/neboard/settings.py +++ b/neboard/settings.py @@ -111,7 +111,6 @@ MIDDLEWARE_CLASSES = ( 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.middleware.common.CommonMiddleware', - 'django.middleware.transaction.TransactionMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'boards.middlewares.BanMiddleware',