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:
parent
40d18ad4c6
commit
6f59a3a324
@ -23,7 +23,6 @@ from mediagoblin.auth import lib as auth_lib
|
|||||||
from mediagoblin import mg_globals
|
from mediagoblin import mg_globals
|
||||||
from mediagoblin.db import migrations
|
from mediagoblin.db import migrations
|
||||||
from mediagoblin.db.util import DESCENDING, ObjectId
|
from mediagoblin.db.util import DESCENDING, ObjectId
|
||||||
from mediagoblin.util import Pagination
|
|
||||||
|
|
||||||
###################
|
###################
|
||||||
# Custom validators
|
# Custom validators
|
||||||
@ -109,24 +108,13 @@ class MediaEntry(Document):
|
|||||||
|
|
||||||
migration_handler = migrations.MediaEntryMigration
|
migration_handler = migrations.MediaEntryMigration
|
||||||
|
|
||||||
|
def get_comments(self):
|
||||||
|
return self.db.MediaComment.find({
|
||||||
|
'media_entry': self['_id']}).sort('created', DESCENDING)
|
||||||
|
|
||||||
def main_mediafile(self):
|
def main_mediafile(self):
|
||||||
pass
|
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):
|
def generate_slug(self):
|
||||||
self['slug'] = util.slugify(self['title'])
|
self['slug'] = util.slugify(self['title'])
|
||||||
|
|
||||||
|
@ -63,11 +63,12 @@
|
|||||||
{% if comments %}
|
{% if comments %}
|
||||||
<h3>Comments</h3>
|
<h3>Comments</h3>
|
||||||
{% for comment in comments %}
|
{% for comment in comments %}
|
||||||
|
{% set comment_author = comment.author() %}
|
||||||
<div class="comment_wrapper" id="comment-{{ comment['_id'] }}">
|
<div class="comment_wrapper" id="comment-{{ comment['_id'] }}">
|
||||||
<div class="comment_author">By:
|
<div class="comment_author">By:
|
||||||
<a href="{{ request.urlgen('mediagoblin.user_pages.user_home',
|
<a href="{{ request.urlgen('mediagoblin.user_pages.user_home',
|
||||||
user = comment['author']['username']) }}">
|
user = comment_author['username']) }}">
|
||||||
{{ comment['author']['username'] }}
|
{{ comment_author['username'] }}
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="comment_datetime">
|
<div class="comment_datetime">
|
||||||
|
@ -82,17 +82,19 @@ def user_gallery(request, page):
|
|||||||
'media_entries': media_entries,
|
'media_entries': media_entries,
|
||||||
'pagination': pagination})
|
'pagination': pagination})
|
||||||
|
|
||||||
|
MEDIA_COMMENTS_PER_PAGE = 50
|
||||||
|
|
||||||
@get_user_media_entry
|
@get_user_media_entry
|
||||||
@uses_pagination
|
@uses_pagination
|
||||||
def media_home(request, media, **kwargs):
|
def media_home(request, media, page, **kwargs):
|
||||||
"""
|
"""
|
||||||
'Homepage' of a MediaEntry()
|
'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(
|
return render_to_response(
|
||||||
request,
|
request,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user