Merge remote branch 'remotes/elrond/idea/shortcuts'

This commit is contained in:
Christopher Allan Webber 2011-06-05 15:36:51 -05:00
commit a7fcc027aa
7 changed files with 67 additions and 85 deletions

View File

@ -16,9 +16,9 @@
import uuid 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.db.util import ObjectId
from mediagoblin.auth import lib as auth_lib from mediagoblin.auth import lib as auth_lib
from mediagoblin.auth import forms as auth_forms from mediagoblin.auth import forms as auth_forms
@ -54,21 +54,16 @@ def register(request):
send_verification_email(entry, request) send_verification_email(entry, request)
# Redirect to register_success return redirect(request, "mediagoblin.auth.register_success")
return exc.HTTPFound(
location=request.urlgen("mediagoblin.auth.register_success"))
# render return render_to_response(request,
return Response( 'mediagoblin/auth/register.html',
render_template( {'register_form': register_form})
request, 'mediagoblin/auth/register.html',
{'register_form': register_form}))
def register_success(request): def register_success(request):
return Response( return render_to_response(request,
render_template( 'mediagoblin/auth/register_success.html', {})
request, 'mediagoblin/auth/register_success.html', {}))
def login(request): def login(request):
@ -93,8 +88,7 @@ def login(request):
if request.POST.get('next'): if request.POST.get('next'):
return exc.HTTPFound(location=request.POST['next']) return exc.HTTPFound(location=request.POST['next'])
else: else:
return exc.HTTPFound( return redirect(request, "index")
location=request.urlgen("index"))
else: else:
# Prevent detecting who's on this system by testing login # Prevent detecting who's on this system by testing login
@ -102,21 +96,18 @@ def login(request):
auth_lib.fake_login_attempt() auth_lib.fake_login_attempt()
login_failed = True login_failed = True
# render return render_to_response(request,
return Response( 'mediagoblin/auth/login.html',
render_template(
request, 'mediagoblin/auth/login.html',
{'login_form': login_form, {'login_form': login_form,
'next': request.GET.get('next') or request.POST.get('next'), 'next': request.GET.get('next') or request.POST.get('next'),
'login_failed': login_failed})) 'login_failed': login_failed})
def logout(request): def logout(request):
# Maybe deleting the user_id parameter would be enough? # Maybe deleting the user_id parameter would be enough?
request.session.delete() request.session.delete()
return exc.HTTPFound( return redirect(request, "index")
location=request.urlgen("index"))
def verify_email(request): def verify_email(request):
@ -141,11 +132,10 @@ def verify_email(request):
else: else:
verification_successful = False verification_successful = False
return Response( return render_to_response(request,
render_template( 'mediagoblin/auth/verify_email.html',
request, 'mediagoblin/auth/verify_email.html',
{'user': user, {'user': user,
'verification_successful': verification_successful})) 'verification_successful': verification_successful})
def verify_email_notice(request): 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 When the user tries to do some action that requires their account
to be verified beforehand, this view is called upon! to be verified beforehand, this view is called upon!
""" """
return Response( return render_to_response(request,
render_template( 'mediagoblin/auth/verification_needed.html', {})
request, 'mediagoblin/auth/verification_needed.html', {}))
def resend_activation(request): def resend_activation(request):
@ -171,11 +160,9 @@ def resend_activation(request):
send_verification_email(request.user, request) send_verification_email(request.user, request)
return exc.HTTPFound( return redirect(request, 'mediagoblin.auth.resend_verification_success')
location=request.urlgen('mediagoblin.auth.resend_verification_success'))
def resend_activation_success(request): def resend_activation_success(request):
return Response( return render_to_response(request,
render_template( 'mediagoblin/auth/resent_verification_email.html', {})
request, 'mediagoblin/auth/resent_verification_email.html', {}))

View File

@ -18,6 +18,7 @@
from bson.errors import InvalidId from bson.errors import InvalidId
from webob import exc from webob import exc
from mediagoblin.util import redirect
from mediagoblin.db.util import ObjectId from mediagoblin.db.util import ObjectId
@ -38,9 +39,8 @@ def require_active_login(controller):
def new_controller_func(request, *args, **kwargs): def new_controller_func(request, *args, **kwargs):
if request.user and \ if request.user and \
request.user.get('status') == u'needs_email_verification': request.user.get('status') == u'needs_email_verification':
return exc.HTTPFound( return redirect(request,
location = request.urlgen( 'mediagoblin.auth.verify_email_notice')
'mediagoblin.auth.verify_email_notice'))
elif not request.user or request.user.get('status') != u'active': elif not request.user or request.user.get('status') != u'active':
return exc.HTTPFound( return exc.HTTPFound(
location="%s?next=%s" % ( location="%s?next=%s" % (

View File

@ -15,9 +15,9 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>. # 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 import forms
from mediagoblin.edit.lib import may_edit_media from mediagoblin.edit.lib import may_edit_media
from mediagoblin.decorators import require_active_login, get_user_media_entry 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['slug'] = request.POST['slug']
media.save() media.save()
# redirect return redirect(request, "mediagoblin.user_pages.media_home",
return exc.HTTPFound( user=media.uploader()['username'], media=media['slug'])
location=request.urlgen("mediagoblin.user_pages.media_home",
user=media.uploader()['username'], media=media['slug']))
# render return render_to_response(request,
return Response( 'mediagoblin/edit/edit.html',
render_template(
request, 'mediagoblin/edit/edit.html',
{'media': media, {'media': media,
'form': form})) 'form': form})

View File

@ -17,10 +17,9 @@
from os.path import splitext from os.path import splitext
from cgi import FieldStorage from cgi import FieldStorage
from webob import Response, exc
from werkzeug.utils import secure_filename 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.decorators import require_active_login
from mediagoblin.submit import forms as submit_forms from mediagoblin.submit import forms as submit_forms
from mediagoblin.process_media import process_media_initial from mediagoblin.process_media import process_media_initial
@ -76,19 +75,13 @@ def submit_start(request):
# queue it for processing # queue it for processing
process_media_initial.delay(unicode(entry['_id'])) process_media_initial.delay(unicode(entry['_id']))
# redirect return redirect(request, "mediagoblin.submit.success")
return exc.HTTPFound(
location=request.urlgen("mediagoblin.submit.success"))
# render return render_to_response(request,
return Response( 'mediagoblin/submit/start.html',
render_template( {'submit_form': submit_form})
request, 'mediagoblin/submit/start.html',
{'submit_form': submit_form}))
def submit_success(request): def submit_success(request):
# render return render_to_response(request,
return Response( 'mediagoblin/submit/success.html', {})
render_template(
request, 'mediagoblin/submit/success.html', {}))

View File

@ -14,9 +14,9 @@
# You should have received a copy of the GNU Affero General Public License # 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/>. # 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.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 from mediagoblin.decorators import uses_pagination, get_user_media_entry
@ -42,21 +42,19 @@ def user_home(request, page):
if media_entries == None: if media_entries == None:
return exc.HTTPNotFound() return exc.HTTPNotFound()
return Response( return render_to_response(request,
render_template( 'mediagoblin/user_pages/user.html',
request, 'mediagoblin/user_pages/user.html',
{'user': user, {'user': user,
'media_entries': media_entries, 'media_entries': media_entries,
'pagination': pagination})) 'pagination': pagination})
@get_user_media_entry @get_user_media_entry
def media_home(request, media): def media_home(request, media):
"""'Homepage' of a MediaEntry()""" """'Homepage' of a MediaEntry()"""
return Response( return render_to_response(request,
render_template( 'mediagoblin/user_pages/media.html',
request, 'mediagoblin/user_pages/media.html', {'media': media})
{'media': media}))
ATOM_DEFAULT_NR_OF_UPDATED_ITEMS = 5 ATOM_DEFAULT_NR_OF_UPDATED_ITEMS = 5

View File

@ -29,6 +29,7 @@ from babel.localedata import exists
import jinja2 import jinja2
import translitcodec import translitcodec
from paste.deploy.loadwsgi import NicerConfigParser from paste.deploy.loadwsgi import NicerConfigParser
from webob import Response, exc
from mediagoblin import globals as mgoblin_globals from mediagoblin import globals as mgoblin_globals
from mediagoblin.db.util import ObjectId from mediagoblin.db.util import ObjectId
@ -117,6 +118,16 @@ def clear_test_template_context():
TEMPLATE_TEST_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): def setup_user_in_request(request):
""" """
Examine a request and tack on a request.user parameter if that's Examine a request and tack on a request.user parameter if that's

View File

@ -14,16 +14,13 @@
# You should have received a copy of the GNU Affero General Public License # 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/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
from webob import Response from mediagoblin.util import render_to_response
from mediagoblin.util import render_template
from mediagoblin.db.util import DESCENDING from mediagoblin.db.util import DESCENDING
def root_view(request): def root_view(request):
media_entries = request.db.MediaEntry.find( media_entries = request.db.MediaEntry.find(
{u'state': u'processed'}).sort('created', DESCENDING) {u'state': u'processed'}).sort('created', DESCENDING)
return Response( return render_to_response(request,
render_template( 'mediagoblin/root.html',
request, 'mediagoblin/root.html', {'media_entries': media_entries})
{'media_entries': media_entries}))