aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/user_pages/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'mediagoblin/user_pages/views.py')
-rw-r--r--mediagoblin/user_pages/views.py43
1 files changed, 13 insertions, 30 deletions
diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py
index b3e613c4..738cc054 100644
--- a/mediagoblin/user_pages/views.py
+++ b/mediagoblin/user_pages/views.py
@@ -20,11 +20,13 @@ 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
-from mediagoblin.user_pages.lib import send_comment_email
+from mediagoblin.user_pages.lib import (send_comment_email,
+ add_media_to_collection)
from mediagoblin.decorators import (uses_pagination, get_user_media_entry,
get_media_entry_by_id,
@@ -183,7 +185,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
@@ -254,25 +256,13 @@ def media_collect(request, media):
_('"%s" already in collection "%s"')
% (media.title, collection.title))
else: # Add item to collection
- collection_item = request.db.CollectionItem()
- collection_item.collection = collection.id
- collection_item.media_entry = media.id
- collection_item.note = form.note.data
- collection_item.save()
-
- collection.items = collection.items + 1
- collection.save()
-
- media.collected = media.collected + 1
- media.save()
+ add_media_to_collection(collection, media, form.note.data)
messages.add_message(request, messages.SUCCESS,
_('"%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?
@@ -297,8 +287,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)):
@@ -384,9 +373,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)):
@@ -424,8 +411,8 @@ def collection_confirm_delete(request, collection):
item.delete()
collection.delete()
- messages.add_message(
- request, messages.SUCCESS, _('You deleted the collection "%s"' % collection_title))
+ messages.add_message(request, messages.SUCCESS,
+ _('You deleted the collection "%s"') % collection_title)
return redirect(request, "mediagoblin.user_pages.user_home",
user=username)
@@ -434,9 +421,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)):
@@ -543,9 +528,7 @@ def collection_atom_feed(request):
ATOM feed id is a tag URI (see http://en.wikipedia.org/wiki/Tag_URI)
"""
atomlinks = [{
- 'href': request.urlgen(
- 'mediagoblin.user_pages.user_collection',
- qualified=True, user=request.matchdict['user'], collection=collection.slug),
+ 'href': collection.url_for_self(request.urlgen, qualified=True),
'rel': 'alternate',
'type': 'text/html'
}]