Issue #362 - Updated the MediaComment model

*   `MediaComment.get_comments()` now uses pagination
*   `MediaComment.get_comments()` now sorts by `created` DESC
*   `MediaComment.media_entry` is now **required**
*   `MediaComment.media_entry()` now returns parent `MediaEntry`
This commit is contained in:
Joar Wandborg 2011-06-29 01:16:51 +02:00
parent 6a585e4c52
commit 7bd8197f32

View File

@ -22,7 +22,8 @@ from mediagoblin import util
from mediagoblin.auth import lib as auth_lib 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 ObjectId from mediagoblin.db.util import DESCENDING, ObjectId
from mediagoblin.util import Pagination
################### ###################
# Custom validators # Custom validators
@ -116,6 +117,21 @@ class MediaEntry(Document):
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'])
@ -158,13 +174,13 @@ class MediaComment(Document):
'content_html': unicode} 'content_html': unicode}
required_fields = [ required_fields = [
'author', 'created', 'content'] 'media_entry', 'author', 'created', 'content']
default_values = { default_values = {
'created': datetime.datetime.utcnow} 'created': datetime.datetime.utcnow}
def media_entry(self): def media_entry(self):
pass return self.db.MediaEntry.find_one({'_id': self['media_entry']})
def author(self): def author(self):
return self.db.User.find_one({'_id': self['author']}) return self.db.User.find_one({'_id': self['author']})