diff options
author | Christopher Allan Webber <cwebber@dustycloud.org> | 2011-06-05 15:36:51 -0500 |
---|---|---|
committer | Christopher Allan Webber <cwebber@dustycloud.org> | 2011-06-05 15:36:51 -0500 |
commit | a7fcc027aa5f3f080a288eedeb5d153ca71a53d7 (patch) | |
tree | 3a464904b2c4420b4f239be411e755ba80498a32 | |
parent | cb9bac0c83b7dd6d9153fc153b7282c26fe466f6 (diff) | |
parent | 9150244afa45628dd752a67272129d30d6c72224 (diff) | |
download | mediagoblin-a7fcc027aa5f3f080a288eedeb5d153ca71a53d7.tar.lz mediagoblin-a7fcc027aa5f3f080a288eedeb5d153ca71a53d7.tar.xz mediagoblin-a7fcc027aa5f3f080a288eedeb5d153ca71a53d7.zip |
Merge remote branch 'remotes/elrond/idea/shortcuts'
-rw-r--r-- | mediagoblin/auth/views.py | 61 | ||||
-rw-r--r-- | mediagoblin/decorators.py | 6 | ||||
-rw-r--r-- | mediagoblin/edit/views.py | 20 | ||||
-rw-r--r-- | mediagoblin/submit/views.py | 21 | ||||
-rw-r--r-- | mediagoblin/user_pages/views.py | 22 | ||||
-rw-r--r-- | mediagoblin/util.py | 11 | ||||
-rw-r--r-- | mediagoblin/views.py | 11 |
7 files changed, 67 insertions, 85 deletions
diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 2d24328d..36d23e53 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -16,9 +16,9 @@ import uuid -from webob import Response, exc +from webob import exc -from mediagoblin.util import render_template +from mediagoblin.util import render_to_response, redirect from mediagoblin.db.util import ObjectId from mediagoblin.auth import lib as auth_lib from mediagoblin.auth import forms as auth_forms @@ -54,21 +54,16 @@ def register(request): send_verification_email(entry, request) - # Redirect to register_success - return exc.HTTPFound( - location=request.urlgen("mediagoblin.auth.register_success")) + return redirect(request, "mediagoblin.auth.register_success") - # render - return Response( - render_template( - request, 'mediagoblin/auth/register.html', - {'register_form': register_form})) + return render_to_response(request, + 'mediagoblin/auth/register.html', + {'register_form': register_form}) def register_success(request): - return Response( - render_template( - request, 'mediagoblin/auth/register_success.html', {})) + return render_to_response(request, + 'mediagoblin/auth/register_success.html', {}) def login(request): @@ -93,8 +88,7 @@ def login(request): if request.POST.get('next'): return exc.HTTPFound(location=request.POST['next']) else: - return exc.HTTPFound( - location=request.urlgen("index")) + return redirect(request, "index") else: # Prevent detecting who's on this system by testing login @@ -102,21 +96,18 @@ def login(request): auth_lib.fake_login_attempt() login_failed = True - # render - return Response( - render_template( - request, 'mediagoblin/auth/login.html', - {'login_form': login_form, - 'next': request.GET.get('next') or request.POST.get('next'), - 'login_failed': login_failed})) + return render_to_response(request, + 'mediagoblin/auth/login.html', + {'login_form': login_form, + 'next': request.GET.get('next') or request.POST.get('next'), + 'login_failed': login_failed}) def logout(request): # Maybe deleting the user_id parameter would be enough? request.session.delete() - return exc.HTTPFound( - location=request.urlgen("index")) + return redirect(request, "index") def verify_email(request): @@ -141,11 +132,10 @@ def verify_email(request): else: verification_successful = False - return Response( - render_template( - request, 'mediagoblin/auth/verify_email.html', - {'user': user, - 'verification_successful': verification_successful})) + return render_to_response(request, + 'mediagoblin/auth/verify_email.html', + {'user': user, + 'verification_successful': verification_successful}) def verify_email_notice(request): """ @@ -154,9 +144,8 @@ def verify_email_notice(request): When the user tries to do some action that requires their account to be verified beforehand, this view is called upon! """ - return Response( - render_template( - request, 'mediagoblin/auth/verification_needed.html', {})) + return render_to_response(request, + 'mediagoblin/auth/verification_needed.html', {}) def resend_activation(request): @@ -171,11 +160,9 @@ def resend_activation(request): send_verification_email(request.user, request) - return exc.HTTPFound( - location=request.urlgen('mediagoblin.auth.resend_verification_success')) + return redirect(request, 'mediagoblin.auth.resend_verification_success') def resend_activation_success(request): - return Response( - render_template( - request, 'mediagoblin/auth/resent_verification_email.html', {})) + return render_to_response(request, + 'mediagoblin/auth/resent_verification_email.html', {}) diff --git a/mediagoblin/decorators.py b/mediagoblin/decorators.py index 34575320..c2fe3f9f 100644 --- a/mediagoblin/decorators.py +++ b/mediagoblin/decorators.py @@ -18,6 +18,7 @@ from bson.errors import InvalidId from webob import exc +from mediagoblin.util import redirect from mediagoblin.db.util import ObjectId @@ -38,9 +39,8 @@ def require_active_login(controller): def new_controller_func(request, *args, **kwargs): if request.user and \ request.user.get('status') == u'needs_email_verification': - return exc.HTTPFound( - location = request.urlgen( - 'mediagoblin.auth.verify_email_notice')) + return redirect(request, + 'mediagoblin.auth.verify_email_notice') elif not request.user or request.user.get('status') != u'active': return exc.HTTPFound( location="%s?next=%s" % ( diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index 027a426c..04b73567 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -15,9 +15,9 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. -from webob import Response, exc +from webob import exc -from mediagoblin.util import render_template +from mediagoblin.util import render_to_response, redirect from mediagoblin.edit import forms from mediagoblin.edit.lib import may_edit_media from mediagoblin.decorators import require_active_login, get_user_media_entry @@ -51,14 +51,10 @@ def edit_media(request, media): media['slug'] = request.POST['slug'] media.save() - # redirect - return exc.HTTPFound( - location=request.urlgen("mediagoblin.user_pages.media_home", - user=media.uploader()['username'], media=media['slug'])) + return redirect(request, "mediagoblin.user_pages.media_home", + user=media.uploader()['username'], media=media['slug']) - # render - return Response( - render_template( - request, 'mediagoblin/edit/edit.html', - {'media': media, - 'form': form})) + return render_to_response(request, + 'mediagoblin/edit/edit.html', + {'media': media, + 'form': form}) diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 256f5be9..d4ecc75a 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -17,10 +17,9 @@ from os.path import splitext from cgi import FieldStorage -from webob import Response, exc from werkzeug.utils import secure_filename -from mediagoblin.util import render_template +from mediagoblin.util import render_to_response, redirect from mediagoblin.decorators import require_active_login from mediagoblin.submit import forms as submit_forms from mediagoblin.process_media import process_media_initial @@ -76,19 +75,13 @@ def submit_start(request): # queue it for processing process_media_initial.delay(unicode(entry['_id'])) - # redirect - return exc.HTTPFound( - location=request.urlgen("mediagoblin.submit.success")) + return redirect(request, "mediagoblin.submit.success") - # render - return Response( - render_template( - request, 'mediagoblin/submit/start.html', - {'submit_form': submit_form})) + return render_to_response(request, + 'mediagoblin/submit/start.html', + {'submit_form': submit_form}) def submit_success(request): - # render - return Response( - render_template( - request, 'mediagoblin/submit/success.html', {})) + return render_to_response(request, + 'mediagoblin/submit/success.html', {}) diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 6ea3fe36..e2fbcc80 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -14,9 +14,9 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -from webob import Response, exc +from webob import exc from mediagoblin.db.util import DESCENDING -from mediagoblin.util import Pagination, render_template +from mediagoblin.util import Pagination, render_to_response from mediagoblin.decorators import uses_pagination, get_user_media_entry @@ -42,21 +42,19 @@ def user_home(request, page): if media_entries == None: return exc.HTTPNotFound() - return Response( - render_template( - request, 'mediagoblin/user_pages/user.html', - {'user': user, - 'media_entries': media_entries, - 'pagination': pagination})) + return render_to_response(request, + 'mediagoblin/user_pages/user.html', + {'user': user, + 'media_entries': media_entries, + 'pagination': pagination}) @get_user_media_entry def media_home(request, media): """'Homepage' of a MediaEntry()""" - return Response( - render_template( - request, 'mediagoblin/user_pages/media.html', - {'media': media})) + return render_to_response(request, + 'mediagoblin/user_pages/media.html', + {'media': media}) ATOM_DEFAULT_NR_OF_UPDATED_ITEMS = 5 diff --git a/mediagoblin/util.py b/mediagoblin/util.py index b675662e..cbb937ee 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -29,6 +29,7 @@ from babel.localedata import exists import jinja2 import translitcodec from paste.deploy.loadwsgi import NicerConfigParser +from webob import Response, exc from mediagoblin import globals as mgoblin_globals from mediagoblin.db.util import ObjectId @@ -117,6 +118,16 @@ def clear_test_template_context(): TEMPLATE_TEST_CONTEXT = {} +def render_to_response(request, template, context): + """Much like Django's shortcut.render()""" + return Response(render_template(request, template, context)) + + +def redirect(request, *args, **kwargs): + """Returns a HTTPFound(), takes a request and then urlgen params""" + return exc.HTTPFound(location=request.urlgen(*args, **kwargs)) + + def setup_user_in_request(request): """ Examine a request and tack on a request.user parameter if that's diff --git a/mediagoblin/views.py b/mediagoblin/views.py index ee0b520a..22673d59 100644 --- a/mediagoblin/views.py +++ b/mediagoblin/views.py @@ -14,16 +14,13 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -from webob import Response - -from mediagoblin.util import render_template +from mediagoblin.util import render_to_response from mediagoblin.db.util import DESCENDING def root_view(request): media_entries = request.db.MediaEntry.find( {u'state': u'processed'}).sort('created', DESCENDING) - return Response( - render_template( - request, 'mediagoblin/root.html', - {'media_entries': media_entries})) + return render_to_response(request, + 'mediagoblin/root.html', + {'media_entries': media_entries}) |