diff options
author | Joar Wandborg <git@wandborg.com> | 2011-07-07 18:04:19 +0200 |
---|---|---|
committer | Joar Wandborg <git@wandborg.com> | 2011-07-07 18:04:19 +0200 |
commit | af2fcba5c4ce16bde1a2267b95803bc2afc9e572 (patch) | |
tree | 6323a6a4f6a10f7660a92c918bea2d2f0321f125 /mediagoblin/user_pages | |
parent | 5ed4722de8106a512a4faacfedaae7b8eda7260b (diff) | |
download | mediagoblin-af2fcba5c4ce16bde1a2267b95803bc2afc9e572.tar.lz mediagoblin-af2fcba5c4ce16bde1a2267b95803bc2afc9e572.tar.xz mediagoblin-af2fcba5c4ce16bde1a2267b95803bc2afc9e572.zip |
Issue #431 - Prevent comment link expiry - Added functionality for comment linking
* `media.html`
* Changed comment textarea handle from `comment` => `field_comment`
* Active comment is hilighted with the CSS class name `comment_active`
and also with the hyperlink anchor #comment
* Changed media.html so that pagination always uses
Route('mediagoblin.user_pages.media_home') as base_url
* `user_pages/forms.py`
* Renamed MediaComment form field `comment` => `field_comment`
* `user_pages/routing.py`
* Added route for `/u/joar/m/123..456/c/234..567/`, points to `media_home`
* `user_pages/views.py`
* `media_home` now checks if the request contains a comment id parameter
then acts accordingly with pagination whether to call it with a
`jump_to_id` or not.
* `media_post_comment` - Updated MediaCommentForm field name
`comment` => `field_comment`
* `util.py`
* `redirect` now supports querystring arguments. - NOT USED (should we
keep it? I think so, it might be useful, sometime [don't call me a
code hoarder]).
* `Pagination.__init__` now accepts one further argument, the `jump_to_id`.
It assist the comment linking functionality in finding and returning the
proper page for a comment.
This feature will work for all kinds of objects. It might not be
optimal, but it is well functional :)
Diffstat (limited to 'mediagoblin/user_pages')
-rw-r--r-- | mediagoblin/user_pages/forms.py | 4 | ||||
-rw-r--r-- | mediagoblin/user_pages/routing.py | 3 | ||||
-rw-r--r-- | mediagoblin/user_pages/views.py | 10 |
3 files changed, 13 insertions, 4 deletions
diff --git a/mediagoblin/user_pages/forms.py b/mediagoblin/user_pages/forms.py index 9f7d2fbd..b234d739 100644 --- a/mediagoblin/user_pages/forms.py +++ b/mediagoblin/user_pages/forms.py @@ -17,5 +17,5 @@ import wtforms
class MediaCommentForm(wtforms.Form):
- comment = wtforms.TextAreaField('Comment',
- [wtforms.validators.Required()])
\ No newline at end of file + field_comment = wtforms.TextAreaField('Comment',
+ [wtforms.validators.Required()])
diff --git a/mediagoblin/user_pages/routing.py b/mediagoblin/user_pages/routing.py index 255b6f66..3be0617d 100644 --- a/mediagoblin/user_pages/routing.py +++ b/mediagoblin/user_pages/routing.py @@ -24,6 +24,9 @@ user_routes = [ Route('mediagoblin.user_pages.media_home', '/{user}/m/{media}/', requirements=dict(m_id="[0-9a-fA-F]{24}"), controller="mediagoblin.user_pages.views:media_home"), + Route('mediagoblin.user_pages.media_home.view_comment', + '/{user}/m/{media}/c/{comment}/', + controller="mediagoblin.user_pages.views:media_home"), Route('mediagoblin.edit.edit_media', "/{user}/m/{media}/edit/", controller="mediagoblin.edit.views:edit_media"), Route('mediagoblin.user_pages.atom_feed', '/{user}/atom/', diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 3a8684d3..ca1060a3 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -95,8 +95,14 @@ def media_home(request, media, page, **kwargs): """ 'Homepage' of a MediaEntry() """ + if ObjectId(request.matchdict.get('comment')): + pagination = Pagination( + page, media.get_comments(), MEDIA_COMMENTS_PER_PAGE, + ObjectId(request.matchdict.get('comment'))) + else: + pagination = Pagination( + page, media.get_comments(), MEDIA_COMMENTS_PER_PAGE) - pagination = Pagination(page, media.get_comments(), MEDIA_COMMENTS_PER_PAGE) comments = pagination() comment_form = user_forms.MediaCommentForm(request.POST) @@ -118,7 +124,7 @@ def media_post_comment(request): comment = request.db.MediaComment() comment['media_entry'] = ObjectId(request.matchdict['media']) comment['author'] = request.user['_id'] - comment['content'] = request.POST['comment'] + comment['content'] = request.POST['field_comment'] comment['content_html'] = cleaned_markdown_conversion(comment['content']) |