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
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(
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
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)
+++ /dev/null
-# 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"
# 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
# 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
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()
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)
"""
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
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()
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)
"""
# 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()