Merge remote branch 'remotes/gullydwarf-cfdv/f401_prev_next_media_nav'
Conflicts: mediagoblin/db/models.py mediagoblin/templates/mediagoblin/user_pages/media.html
This commit is contained in:
commit
230e1bd770
@ -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']})
|
||||
|
@ -30,7 +30,7 @@ document relevant to here:
|
||||
import copy
|
||||
|
||||
# Imports that other modules might use
|
||||
from pymongo import DESCENDING
|
||||
from pymongo import ASCENDING, DESCENDING
|
||||
from pymongo.errors import InvalidId
|
||||
from mongokit import ObjectId
|
||||
|
||||
|
@ -91,6 +91,7 @@
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="grid_4 omega media_sidebar">
|
||||
{% include "mediagoblin/utils/prev_next.html" %}
|
||||
<h3>Sidebar content here!</h3>
|
||||
<p>
|
||||
{% if media['uploader'] == request.user['_id'] %}
|
||||
|
45
mediagoblin/templates/mediagoblin/utils/prev_next.html
Normal file
45
mediagoblin/templates/mediagoblin/utils/prev_next.html
Normal file
@ -0,0 +1,45 @@
|
||||
{#
|
||||
# GNU MediaGoblin -- federated, autonomous media hosting
|
||||
# Copyright (C) 2011 Free Software Foundation, Inc
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#}
|
||||
|
||||
{# Provide navigation links to neighboring media entries, if possible #}
|
||||
{% set prev_entry_url = media.url_to_prev(request.urlgen) %}
|
||||
{% set next_entry_url = media.url_to_next(request.urlgen) %}
|
||||
|
||||
<div>
|
||||
{# There are no previous entries for the very first media entry #}
|
||||
{% if prev_entry_url %}
|
||||
<a href="{{ prev_entry_url }}">
|
||||
{# TODO - insert 'Previous' and 'X' image sources #}
|
||||
Previous
|
||||
</a>
|
||||
{% else %}
|
||||
{# This is the first entry. display greyed-out 'previous' image #}
|
||||
X
|
||||
{% endif %}
|
||||
|
||||
{# Likewise, this could be the very last media entry #}
|
||||
{% if next_entry_url %}
|
||||
<a href="{{ next_entry_url }}">
|
||||
{# TODO - insert 'Next' and 'X' image sources #}
|
||||
Next
|
||||
</a>
|
||||
{% else %}
|
||||
{# This is the last entry. display greyed-out 'next' image #}
|
||||
X
|
||||
{% endif %}
|
||||
</div>
|
Loading…
x
Reference in New Issue
Block a user