Create redir_obj and use it around.
This is a shortcut function to redirect to the main page for an object. Objects currently supported: media entries and collections. And go around and replace various places to use this.
This commit is contained in:
parent
8f88b1f6dc
commit
2e6ee596ad
@ -28,7 +28,8 @@ from mediagoblin.edit.lib import may_edit_media
|
||||
from mediagoblin.decorators import (require_active_login, active_user_from_url,
|
||||
get_media_entry_by_id,
|
||||
user_may_alter_collection, get_user_collection)
|
||||
from mediagoblin.tools.response import render_to_response, redirect
|
||||
from mediagoblin.tools.response import render_to_response, \
|
||||
redirect, redirect_obj
|
||||
from mediagoblin.tools.translate import pass_to_ugettext as _
|
||||
from mediagoblin.tools.text import (
|
||||
convert_to_tag_list_of_dicts, media_tags_as_string)
|
||||
@ -74,8 +75,7 @@ def edit_media(request, media):
|
||||
media.slug = slug
|
||||
media.save()
|
||||
|
||||
return redirect(request,
|
||||
location=media.url_for_self(request.urlgen))
|
||||
return redirect_obj(request, media)
|
||||
|
||||
if request.user.is_admin \
|
||||
and media.uploader != request.user.id \
|
||||
@ -331,9 +331,7 @@ def edit_collection(request, collection):
|
||||
|
||||
collection.save()
|
||||
|
||||
return redirect(request, "mediagoblin.user_pages.user_collection",
|
||||
user=collection.get_creator.username,
|
||||
collection=collection.slug)
|
||||
return redirect_obj(request, collection)
|
||||
|
||||
if request.user.is_admin \
|
||||
and collection.creator != request.user.id \
|
||||
|
@ -99,3 +99,10 @@ def redirect(request, *args, **kwargs):
|
||||
if querystring:
|
||||
location += querystring
|
||||
return werkzeug.utils.redirect(location)
|
||||
|
||||
|
||||
def redirect_obj(request, obj):
|
||||
"""Redirect to the page for the given object.
|
||||
|
||||
Requires obj to have a .url_for_self method."""
|
||||
return redirect(request, location=obj.url_for_self(request.urlgen))
|
||||
|
@ -20,7 +20,8 @@ import datetime
|
||||
from mediagoblin import messages, mg_globals
|
||||
from mediagoblin.db.models import (MediaEntry, MediaTag, Collection,
|
||||
CollectionItem, User)
|
||||
from mediagoblin.tools.response import render_to_response, render_404, redirect
|
||||
from mediagoblin.tools.response import render_to_response, render_404, \
|
||||
redirect, redirect_obj
|
||||
from mediagoblin.tools.translate import pass_to_ugettext as _
|
||||
from mediagoblin.tools.pagination import Pagination
|
||||
from mediagoblin.user_pages import forms as user_forms
|
||||
@ -178,7 +179,7 @@ def media_post_comment(request, media):
|
||||
media_uploader.wants_comment_notification):
|
||||
send_comment_email(media_uploader, comment, media, request)
|
||||
|
||||
return redirect(request, location=media.url_for_self(request.urlgen))
|
||||
return redirect_obj(request, media)
|
||||
|
||||
|
||||
@get_media_entry_by_id
|
||||
@ -255,9 +256,7 @@ def media_collect(request, media):
|
||||
_('"%s" added to collection "%s"')
|
||||
% (media.title, collection.title))
|
||||
|
||||
return redirect(request, "mediagoblin.user_pages.media_home",
|
||||
user=media.get_uploader.username,
|
||||
media=media.slug_or_id)
|
||||
return redirect_obj(request, media)
|
||||
|
||||
|
||||
#TODO: Why does @user_may_delete_media not implicate @require_active_login?
|
||||
@ -282,8 +281,7 @@ def media_confirm_delete(request, media):
|
||||
messages.add_message(
|
||||
request, messages.ERROR,
|
||||
_("The media was not deleted because you didn't check that you were sure."))
|
||||
return redirect(request,
|
||||
location=media.url_for_self(request.urlgen))
|
||||
return redirect_obj(request, media)
|
||||
|
||||
if ((request.user.is_admin and
|
||||
request.user.id != media.uploader)):
|
||||
@ -369,9 +367,7 @@ def collection_item_confirm_remove(request, collection_item):
|
||||
request, messages.ERROR,
|
||||
_("The item was not removed because you didn't check that you were sure."))
|
||||
|
||||
return redirect(request, "mediagoblin.user_pages.user_collection",
|
||||
user=username,
|
||||
collection=collection.slug)
|
||||
return redirect_obj(request, collection)
|
||||
|
||||
if ((request.user.is_admin and
|
||||
request.user.id != collection_item.in_collection.creator)):
|
||||
@ -419,9 +415,7 @@ def collection_confirm_delete(request, collection):
|
||||
request, messages.ERROR,
|
||||
_("The collection was not deleted because you didn't check that you were sure."))
|
||||
|
||||
return redirect(request, "mediagoblin.user_pages.user_collection",
|
||||
user=username,
|
||||
collection=collection.slug)
|
||||
return redirect_obj(request, collection)
|
||||
|
||||
if ((request.user.is_admin and
|
||||
request.user.id != collection.creator)):
|
||||
|
Loading…
x
Reference in New Issue
Block a user