Issue #362 - Simple comments - Changes based on feedback recieved from #mediagoblin

*   `db.models` - Removed `MediaEntry.get_comments()` and replaced it with a helper
    which just returns a cursor for the comments query
*   `media.html` - Added `{% set comment_author = comment.author() %}`
*   `user_pages.views` - media_home() now passes `MediaEntry.get_comments()`
    directly to `Pagination`, handles pagination for comments.
    *   Added `MEDIA_COMMENTS_PER_PAGE` to define the number of comments per page
        in the `media_home()` view.
This commit is contained in:
Joar Wandborg 2011-07-01 15:26:29 +02:00
parent 40d18ad4c6
commit 6f59a3a324
3 changed files with 13 additions and 22 deletions

View File

@ -23,7 +23,6 @@ from mediagoblin.auth import lib as auth_lib
from mediagoblin import mg_globals
from mediagoblin.db import migrations
from mediagoblin.db.util import DESCENDING, ObjectId
from mediagoblin.util import Pagination
###################
# Custom validators
@ -109,24 +108,13 @@ class MediaEntry(Document):
migration_handler = migrations.MediaEntryMigration
def get_comments(self):
return self.db.MediaComment.find({
'media_entry': self['_id']}).sort('created', DESCENDING)
def main_mediafile(self):
pass
def get_comments(self, page):
cursor = self.db.MediaComment.find({
'media_entry': self['_id']}).sort('created', DESCENDING)
pagination = Pagination(page, cursor)
comments = pagination()
data = list()
for comment in comments:
comment['author'] = self.db.User.find_one({
'_id': comment['author']})
data.append(comment)
return (data, pagination)
def generate_slug(self):
self['slug'] = util.slugify(self['title'])

View File

@ -63,11 +63,12 @@
{% if comments %}
<h3>Comments</h3>
{% for comment in comments %}
{% set comment_author = comment.author() %}
<div class="comment_wrapper" id="comment-{{ comment['_id'] }}">
<div class="comment_author">By:
<a href="{{ request.urlgen('mediagoblin.user_pages.user_home',
user = comment['author']['username']) }}">
{{ comment['author']['username'] }}
user = comment_author['username']) }}">
{{ comment_author['username'] }}
</a>
</div>
<div class="comment_datetime">

View File

@ -82,17 +82,19 @@ def user_gallery(request, page):
'media_entries': media_entries,
'pagination': pagination})
MEDIA_COMMENTS_PER_PAGE = 50
@get_user_media_entry
@uses_pagination
def media_home(request, media, **kwargs):
def media_home(request, media, page, **kwargs):
"""
'Homepage' of a MediaEntry()
"""
comment_form = user_forms.MediaCommentForm(request.POST)
pagination = Pagination(page, media.get_comments(), MEDIA_COMMENTS_PER_PAGE)
comments = pagination()
(comments, pagination) = media.get_comments(kwargs.get('page'))
comment_form = user_forms.MediaCommentForm(request.POST)
return render_to_response(
request,