diff options
author | Christopher Allan Webber <cwebber@dustycloud.org> | 2011-06-29 20:27:48 -0500 |
---|---|---|
committer | Christopher Allan Webber <cwebber@dustycloud.org> | 2011-06-29 20:27:48 -0500 |
commit | 216cd9c85c81f3dacb5211aa3beefae344fce487 (patch) | |
tree | 1a3882a7b510aeaec2e6eb5ff3b2f3b4c9a5a9d4 /mediagoblin/user_pages/views.py | |
parent | b0d835fcd0f46025eee6c839e9bf26f513543898 (diff) | |
parent | 074ac832c3ccd22f58118d51606ede3a1e696b4c (diff) | |
download | mediagoblin-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.py | 51 |
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() |