From 0efe9e2796b6feb722acd075218d934aff5e841e Mon Sep 17 00:00:00 2001 From: Sebastian Spaeth Date: Mon, 7 Jan 2013 11:15:04 +0100 Subject: [PATCH] Remove mediagoblin.db.sql.fake.DESCENDING 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 --- mediagoblin/admin/views.py | 14 +++++++------- mediagoblin/db/sql/base.py | 7 +------ mediagoblin/db/sql/fake.py | 28 ---------------------------- mediagoblin/db/util.py | 1 - mediagoblin/listings/views.py | 8 ++++---- mediagoblin/user_pages/views.py | 5 ++--- mediagoblin/views.py | 6 +++--- 7 files changed, 17 insertions(+), 52 deletions(-) delete mode 100644 mediagoblin/db/sql/fake.py diff --git a/mediagoblin/admin/views.py b/mediagoblin/admin/views.py index d0665151..073b1e25 100644 --- a/mediagoblin/admin/views.py +++ b/mediagoblin/admin/views.py @@ -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( diff --git a/mediagoblin/db/sql/base.py b/mediagoblin/db/sql/base.py index 2dceca75..3530011e 100644 --- a/mediagoblin/db/sql/base.py +++ b/mediagoblin/db/sql/base.py @@ -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 index 51c5127b..00000000 --- a/mediagoblin/db/sql/fake.py +++ /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 . - - -""" -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" diff --git a/mediagoblin/db/util.py b/mediagoblin/db/util.py index b7e93134..ef3abf9b 100644 --- a/mediagoblin/db/util.py +++ b/mediagoblin/db/util.py @@ -15,6 +15,5 @@ # along with this program. If not, see . #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 diff --git a/mediagoblin/listings/views.py b/mediagoblin/listings/views.py index 3064096c..80182124 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 . -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) """ diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 78c020ac..1e5ea3a3 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -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) """ diff --git a/mediagoblin/views.py b/mediagoblin/views.py index 9d34750b..14fbc4e6 100644 --- a/mediagoblin/views.py +++ b/mediagoblin/views.py @@ -15,17 +15,17 @@ # along with this program. If not, see . 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() -- 2.25.1