X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=mediagoblin%2Flistings%2Fviews.py;h=a8824390be5417760dda0a50717e9497326afe62;hb=4504dbba9b111a0f6648f94c970c429b644f1ab4;hp=d96b9606040d340899222403c0a2fc6b8e52b7b7;hpb=1eff10fa0fbb93bf5669bbd09cb6e2ac6ad24813;p=mediagoblin.git diff --git a/mediagoblin/listings/views.py b/mediagoblin/listings/views.py index d96b9606..a8824390 100644 --- a/mediagoblin/listings/views.py +++ b/mediagoblin/listings/views.py @@ -14,7 +14,7 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -from mediagoblin.db.util import DESCENDING +from mediagoblin.db.util import media_entries_for_tag_slug, DESCENDING from mediagoblin.tools.pagination import Pagination from mediagoblin.tools.response import render_to_response @@ -29,13 +29,16 @@ def _get_tag_name_from_entries(media_entries, tag_slug): """ # ... this is slightly hacky looking :\ tag_name = tag_slug - # if media_entries.count(): + for entry in media_entries: for tag in entry.tags: if tag['slug'] == tag_slug: tag_name = tag['name'] break break + # TODO: Remove after SQL-switch, it's mongo specific + if hasattr(media_entries, "rewind"): + media_entries.rewind() return tag_name @@ -45,9 +48,7 @@ def tag_listing(request, page): """'Gallery'/listing for this tag slug""" tag_slug = request.matchdict[u'tag'] - cursor = request.db.MediaEntry.find( - {u'state': u'processed', - u'tags.slug': tag_slug}) + cursor = media_entries_for_tag_slug(request.db, tag_slug) cursor = cursor.sort('created', DESCENDING) pagination = Pagination(page, cursor) @@ -73,9 +74,7 @@ def tag_atom_feed(request): """ tag_slug = request.matchdict[u'tag'] - cursor = request.db.MediaEntry.find( - {u'state': u'processed', - u'tags.slug': tag_slug}) + cursor = media_entries_for_tag_slug(request.db, tag_slug) cursor = cursor.sort('created', DESCENDING) cursor = cursor.limit(ATOM_DEFAULT_NR_OF_UPDATED_ITEMS)