diff options
author | Christopher Allan Webber <cwebber@dustycloud.org> | 2011-07-02 21:16:39 -0500 |
---|---|---|
committer | Christopher Allan Webber <cwebber@dustycloud.org> | 2011-07-02 21:16:39 -0500 |
commit | 230e1bd7706b823bf0e57877ec22d17e4903b1a2 (patch) | |
tree | 1c8bd2637dee656ad53cac13c9a04b4e2cd6c26d /mediagoblin/db/models.py | |
parent | 68b86d7ce9c9b667bfbcdd60e57ab72e313b1c27 (diff) | |
parent | 9c0fe63fadc848b5154c7c1d4b2ff72dd05bc1c6 (diff) | |
download | mediagoblin-230e1bd7706b823bf0e57877ec22d17e4903b1a2.tar.lz mediagoblin-230e1bd7706b823bf0e57877ec22d17e4903b1a2.tar.xz mediagoblin-230e1bd7706b823bf0e57877ec22d17e4903b1a2.zip |
Merge remote branch 'remotes/gullydwarf-cfdv/f401_prev_next_media_nav'
Conflicts:
mediagoblin/db/models.py
mediagoblin/templates/mediagoblin/user_pages/media.html
Diffstat (limited to 'mediagoblin/db/models.py')
-rw-r--r-- | mediagoblin/db/models.py | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index 1d91a14b..8aa35ca9 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -22,7 +22,7 @@ from mediagoblin import util 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.db.util import ASCENDING, DESCENDING, ObjectId ################### # Custom validators @@ -142,6 +142,32 @@ class MediaEntry(Document): 'mediagoblin.user_pages.media_home', user=uploader['username'], media=unicode(self['_id'])) + + def url_to_prev(self, urlgen): + """ + Provide a url to the previous entry from this user, if there is one + """ + cursor = self.db.MediaEntry.find({'_id' : {"$lt": self['_id']}, + 'uploader': self['uploader']}).sort( + '_id', DESCENDING).limit(1) + + if cursor.count(): + return urlgen('mediagoblin.user_pages.media_home', + user=self.uploader()['username'], + media=unicode(cursor[0]['_id'])) + + def url_to_next(self, urlgen): + """ + Provide a url to the next entry from this user, if there is one + """ + cursor = self.db.MediaEntry.find({'_id' : {"$gt": self['_id']}, + 'uploader': self['uploader']}).sort( + '_id', ASCENDING).limit(1) + + if cursor.count(): + return urlgen('mediagoblin.user_pages.media_home', + user=self.uploader()['username'], + media=unicode(cursor[0]['_id'])) def uploader(self): return self.db.User.find_one({'_id': self['uploader']}) |