Remove mediagoblin.db.sql.fake.DESCENDING
authorSebastian Spaeth <Sebastian@SSpaeth.de>
Mon, 7 Jan 2013 10:15:04 +0000 (11:15 +0100)
committerSebastian Spaeth <Sebastian@SSpaeth.de>
Mon, 7 Jan 2013 10:15:04 +0000 (11:15 +0100)
This is the last remnant that requires us to keep db.sql.fake.py. Use
ModelName.desc() or sqlalchemy.sql.expression.desc(column) to achieve
descending sorts.

Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
mediagoblin/admin/views.py
mediagoblin/db/sql/base.py
mediagoblin/db/sql/fake.py [deleted file]
mediagoblin/db/util.py
mediagoblin/listings/views.py
mediagoblin/user_pages/views.py
mediagoblin/views.py

index d0665151968648b57c888a64f27aba418fc81932..073b1e257d7adba3699f9e077cd6f6d2749f9fe2 100644 (file)
@@ -16,7 +16,7 @@
 
 from werkzeug.exceptions import Forbidden
 
-from mediagoblin.db.util import DESCENDING
+from mediagoblin.db.sql.models import MediaEntry
 from mediagoblin.decorators import require_active_login
 from mediagoblin.tools.response import render_to_response
 
@@ -29,15 +29,15 @@ def admin_processing_panel(request):
     if not request.user.is_admin:
         raise Forbidden()
 
-    processing_entries = request.db.MediaEntry.find(
-        {'state': u'processing'}).sort('created', DESCENDING)
+    processing_entries = MediaEntry.query.filter_by(state = u'processing').\
+        order_by(MediaEntry.created.desc())
 
     # Get media entries which have failed to process
-    failed_entries = request.db.MediaEntry.find(
-        {'state': u'failed'}).sort('created', DESCENDING)
+    failed_entries = MediaEntry.query.filter_by(state = u'failed').\
+        order_by(MediaEntry.created.desc())
 
-    processed_entries = request.db.MediaEntry.find(
-            {'state': u'processed'}).sort('created', DESCENDING).limit(10)
+    processed_entries = MediaEntry.query.filter_by(state = u'processed').\
+        order_by(MediaEntry.created.desc()).limit(10)
 
     # Render to response
     return render_to_response(
index 2dceca75a5ce49bdb77a7f7117534f40d75d7969..3530011e1cf878433837140fb3c511075e2ba80a 100644 (file)
@@ -18,9 +18,6 @@
 from sqlalchemy.ext.declarative import declarative_base
 from sqlalchemy.orm import scoped_session, sessionmaker, object_session
 from sqlalchemy.orm.query import Query
-from sqlalchemy.sql.expression import desc
-from mediagoblin.db.sql.fake import DESCENDING
-
 
 def _get_query_model(query):
     cols = query.column_descriptions
@@ -29,10 +26,8 @@ def _get_query_model(query):
 
 
 class GMGQuery(Query):
-    def sort(self, key, direction):
+    def sort(self, key):
         key_col = getattr(_get_query_model(self), key)
-        if direction is DESCENDING:
-            key_col = desc(key_col)
         return self.order_by(key_col)
 
 
diff --git a/mediagoblin/db/sql/fake.py b/mediagoblin/db/sql/fake.py
deleted file mode 100644 (file)
index 51c5127..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-# GNU MediaGoblin -- federated, autonomous media hosting
-# 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
-# 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/>.
-
-
-"""
-This module contains some fake classes and functions to
-calm the rest of the code base. Or provide super minimal
-implementations.
-
-Currently:
-- DESCENDING "constant"
-"""
-
-
-DESCENDING = object()  # a unique object for this "constant"
index b7e9313439bf94a97c91eaa170e6170a23c87a04..ef3abf9b5b87367557fc034ff96958abe7a9e2c2 100644 (file)
@@ -15,6 +15,5 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 #TODO: check now after mongo removal if we can't rip out a layer of abstraction
-from mediagoblin.db.sql.fake import DESCENDING
 from mediagoblin.db.sql.util import atomic_update, check_media_slug_used, \
     media_entries_for_tag_slug, check_collection_slug_used
index 3064096cd540d332d16a2486cae823c13edf62e0..801821244a1b57f656d3b39bfba1fb1fd87ef0ee 100644 (file)
@@ -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.sql.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
@@ -45,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()
@@ -71,7 +71,7 @@ def tag_atom_feed(request):
     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())
     cursor = cursor.limit(ATOM_DEFAULT_NR_OF_UPDATED_ITEMS)
 
     """
index 78c020acd0c3daac819f42a364d7a2ed3974e9ae..1e5ea3a384e174d314b8c88a8b5de864e6918047 100644 (file)
@@ -18,7 +18,6 @@ import logging
 import datetime
 
 from mediagoblin import messages, mg_globals
-from mediagoblin.db.util import DESCENDING
 from mediagoblin.db.sql.models import (MediaEntry, Collection, CollectionItem,
                                        User)
 from mediagoblin.tools.response import render_to_response, render_404, redirect
@@ -56,7 +55,7 @@ def user_home(request, page):
 
     cursor = MediaEntry.query.\
         filter_by(uploader = user.id,
-                  state = u'processed').sort('created', DESCENDING)
+                  state = u'processed').order_by(MediaEntry.created.desc())
 
     pagination = Pagination(page, cursor)
     media_entries = pagination()
@@ -449,7 +448,7 @@ def atom_feed(request):
     cursor = MediaEntry.query.filter_by(
         uploader = user.id,
         state = u'processed').\
-        sort('created', DESCENDING).\
+        order_by(MediaEntry.created.desc()).\
         limit(ATOM_DEFAULT_NR_OF_UPDATED_ITEMS)
 
     """
index 9d34750b1265d5340e965eb926fb797a28d78858..14fbc4e67d5c5d6fbb805a794499ff3b26b02842 100644 (file)
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 from mediagoblin import mg_globals
+from mediagoblin.db.sql.models import MediaEntry
 from mediagoblin.tools.pagination import Pagination
 from mediagoblin.tools.response import render_to_response
-from mediagoblin.db.util import DESCENDING
 from mediagoblin.decorators import uses_pagination
 
 
 
 @uses_pagination
 def root_view(request, page):
-    cursor = request.db.MediaEntry.find(
-        {u'state': u'processed'}).sort('created', DESCENDING)
+    cursor = MediaEntry.query.filter_by(state=u'processed').\
+        order_by(MediaEntry.created.desc())
 
     pagination = Pagination(page, cursor)
     media_entries = pagination()