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
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', {})

View File

@ -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" % (

View File

@ -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})

View File

@ -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', {})

View File

@ -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

View File

@ -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

View File

@ -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})