aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/listings/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'mediagoblin/listings/views.py')
-rw-r--r--mediagoblin/listings/views.py40
1 files changed, 20 insertions, 20 deletions
diff --git a/mediagoblin/listings/views.py b/mediagoblin/listings/views.py
index a8824390..35af7148 100644
--- a/mediagoblin/listings/views.py
+++ b/mediagoblin/listings/views.py
@@ -14,8 +14,8 @@
# 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/>.
-from mediagoblin.db.util import media_entries_for_tag_slug, DESCENDING
-
+from mediagoblin.db.models import MediaEntry
+from mediagoblin.db.util import media_entries_for_tag_slug
from mediagoblin.tools.pagination import Pagination
from mediagoblin.tools.response import render_to_response
from mediagoblin.decorators import uses_pagination
@@ -36,10 +36,6 @@ def _get_tag_name_from_entries(media_entries, 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
@@ -49,7 +45,7 @@ def tag_listing(request, page):
tag_slug = request.matchdict[u'tag']
cursor = media_entries_for_tag_slug(request.db, tag_slug)
- cursor = cursor.sort('created', DESCENDING)
+ cursor = cursor.order_by(MediaEntry.created.desc())
pagination = Pagination(page, cursor)
media_entries = pagination()
@@ -68,26 +64,30 @@ def tag_listing(request, page):
ATOM_DEFAULT_NR_OF_UPDATED_ITEMS = 15
-def tag_atom_feed(request):
+def atom_feed(request):
"""
generates the atom feed with the tag images
"""
- tag_slug = request.matchdict[u'tag']
-
- cursor = media_entries_for_tag_slug(request.db, tag_slug)
- cursor = cursor.sort('created', DESCENDING)
+ tag_slug = request.matchdict.get(u'tag')
+ feed_title = "MediaGoblin Feed"
+ if tag_slug:
+ cursor = media_entries_for_tag_slug(request.db, tag_slug)
+ link = request.urlgen('mediagoblin.listings.tags_listing',
+ qualified=True, tag=tag_slug )
+ feed_title += "for tag '%s'" % tag_slug
+ else: # all recent item feed
+ cursor = MediaEntry.query.filter_by(state=u'processed')
+ link = request.urlgen('index', qualified=True)
+ feed_title += "for all recent items"
+
+ cursor = cursor.order_by(MediaEntry.created.desc())
cursor = cursor.limit(ATOM_DEFAULT_NR_OF_UPDATED_ITEMS)
- """
- ATOM feed id is a tag URI (see http://en.wikipedia.org/wiki/Tag_URI)
- """
feed = AtomFeed(
- "MediaGoblin: Feed for tag '%s'" % tag_slug,
+ feed_title,
feed_url=request.url,
- id='tag:'+request.host+',2011:gallery.tag-%s' % tag_slug,
- links=[{'href': request.urlgen(
- 'mediagoblin.listings.tags_listing',
- qualified=True, tag=tag_slug ),
+ id=link,
+ links=[{'href': link,
'rel': 'alternate',
'type': 'text/html'}])
for entry in cursor: