aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/user_pages/views.py
diff options
context:
space:
mode:
authorChristopher Allan Webber <cwebber@dustycloud.org>2011-06-29 20:27:48 -0500
committerChristopher Allan Webber <cwebber@dustycloud.org>2011-06-29 20:27:48 -0500
commit216cd9c85c81f3dacb5211aa3beefae344fce487 (patch)
tree1a3882a7b510aeaec2e6eb5ff3b2f3b4c9a5a9d4 /mediagoblin/user_pages/views.py
parentb0d835fcd0f46025eee6c839e9bf26f513543898 (diff)
parent074ac832c3ccd22f58118d51606ede3a1e696b4c (diff)
downloadmediagoblin-216cd9c85c81f3dacb5211aa3beefae344fce487.tar.lz
mediagoblin-216cd9c85c81f3dacb5211aa3beefae344fce487.tar.xz
mediagoblin-216cd9c85c81f3dacb5211aa3beefae344fce487.zip
Merge remote branch 'remotes/jwandborg/feature_362-simple_comments'
Diffstat (limited to 'mediagoblin/user_pages/views.py')
-rw-r--r--mediagoblin/user_pages/views.py51
1 files changed, 44 insertions, 7 deletions
diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py
index d6cd6034..67a57d97 100644
--- a/mediagoblin/user_pages/views.py
+++ b/mediagoblin/user_pages/views.py
@@ -15,13 +15,18 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from webob import exc
-from mediagoblin.db.util import DESCENDING
-from mediagoblin.util import Pagination, render_to_response
+from mediagoblin.db.util import DESCENDING, ObjectId
+from mediagoblin.util import Pagination, render_to_response, redirect, \
+ clean_html
+from mediagoblin.user_pages import forms as user_forms
-from mediagoblin.decorators import uses_pagination, get_user_media_entry
+from mediagoblin.decorators import uses_pagination, get_user_media_entry, \
+ require_active_login
from werkzeug.contrib.atom import AtomFeed
+import markdown
+
@uses_pagination
def user_home(request, page):
"""'Homepage' of a User()"""
@@ -78,13 +83,45 @@ def user_gallery(request, page):
@get_user_media_entry
-def media_home(request, media):
- """'Homepage' of a MediaEntry()"""
+@uses_pagination
+def media_home(request, media, **kwargs):
+ """
+ 'Homepage' of a MediaEntry()
+ """
+
+ comment_form = user_forms.MediaCommentForm(request.POST)
+
+ (comments, pagination) = media.get_comments(kwargs.get('page'))
+
return render_to_response(
request,
'mediagoblin/user_pages/media.html',
- {'media': media})
+ {'media': media,
+ 'comments': comments,
+ 'pagination': pagination,
+ 'comment_form': comment_form})
+
+@require_active_login
+def media_post_comment(request):
+ """
+ recieves POST from a MediaEntry() comment form, saves the comment.
+ """
+ comment = request.db.MediaComment()
+ comment['media_entry'] = ObjectId(request.matchdict['media'])
+ comment['author'] = request.user['_id']
+ comment['content'] = request.POST['comment']
+
+ md = markdown.Markdown(
+ safe_mode = 'escape')
+ comment['content_html'] = clean_html(
+ md.convert(
+ comment['content']))
+
+ comment.save()
+ return redirect(request, 'mediagoblin.user_pages.media_home',
+ media = request.matchdict['media'],
+ user = request.matchdict['user'])
ATOM_DEFAULT_NR_OF_UPDATED_ITEMS = 5
@@ -117,4 +154,4 @@ def atom_feed(request):
updated=entry.get('created'),
url=entry.url_for_self(request.urlgen))
- return feed.get_response()
+ return feed.get_response()