Switch over media processor to use the get_workbench decorator (#565)
[mediagoblin.git] / mediagoblin / views.py
index e7d9dbdddfb1bc4cdab1782d4ae776778df04fa5..6acd7e96f8aa8f56187a34eb7aa109f1a1d10c22 100644 (file)
@@ -1,5 +1,5 @@
 # GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011, 2012 MediaGoblin contributors.  See AUTHORS.
 #
 # 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
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 from mediagoblin import mg_globals
-from mediagoblin.util import render_to_response
-from mediagoblin.db.util import DESCENDING
+from mediagoblin.db.models import MediaEntry
+from mediagoblin.tools.pagination import Pagination
+from mediagoblin.tools.response import render_to_response
+from mediagoblin.decorators import uses_pagination
 
-def root_view(request):
-    media_entries = request.db.MediaEntry.find(
-        {u'state': u'processed'}).sort('created', DESCENDING)
-    
+
+
+@uses_pagination
+def root_view(request, page):
+    cursor = MediaEntry.query.filter_by(state=u'processed').\
+        order_by(MediaEntry.created.desc())
+
+    pagination = Pagination(page, cursor)
+    media_entries = pagination()
     return render_to_response(
         request, 'mediagoblin/root.html',
         {'media_entries': media_entries,
-         'allow_registration': mg_globals.app_config["allow_registration"]})
+         'allow_registration': mg_globals.app_config["allow_registration"],
+         'pagination': pagination})
 
 
 def simple_template_render(request):