summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPierre-Yves Chibon <pingou@pingoured.fr>2012-05-18 17:00:52 +0200
committerPierre-Yves Chibon <pingou@pingoured.fr>2012-05-18 17:00:52 +0200
commitd2df1b43402b74f23a67f73ad8d69f8c2130da59 (patch)
treea1ca24aff52c4dde6ddcbde6401b41a44cc15da2
parent8a5a85760d1d2257d6f0a2b5f5cf096559442663 (diff)
Order the output from the query by time
-rw-r--r--kittystore/kittysastore.py32
1 files changed, 20 insertions, 12 deletions
diff --git a/kittystore/kittysastore.py b/kittystore/kittysastore.py
index 7eede24..f40817c 100644
--- a/kittystore/kittysastore.py
+++ b/kittystore/kittysastore.py
@@ -21,7 +21,7 @@ from kittystore import KittyStore
from kittystore.kittysamodel import get_class_object
-from sqlalchemy import create_engine, distinct, MetaData, and_
+from sqlalchemy import create_engine, distinct, MetaData, and_, desc
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
from sqlalchemy.orm.exc import NoResultFound
@@ -76,12 +76,14 @@ class KittySAStore(KittyStore):
# Beginning of thread == No 'References' header
email = get_class_object(list_to_table_name(list_name), 'email',
self.metadata)
- return self.session.query(email).filter(
+ mails = self.session.query(email).filter(
and_(
email.date >= start,
email.date <= end,
email.references == None)
- ).all()
+ ).order_by(email.date).all()
+ mails.reverse()
+ return mails
def get_archives_length(self, list_name):
""" Return a dictionnary of years, months for which there are
@@ -149,7 +151,7 @@ class KittySAStore(KittyStore):
mail = None
try:
mail = self.session.query(email).filter_by(
- thread_id=thread_id).all()
+ thread_id=thread_id).order_by(email.date).all()
except NoResultFound:
pass
return mail
@@ -192,9 +194,11 @@ class KittySAStore(KittyStore):
"""
email = get_class_object(list_to_table_name(list_name), 'email',
self.metadata)
- return self.session.query(email).filter(
+ mails = self.session.query(email).filter(
email.content.like('%{0}%'.format(keyword))
- ).all()
+ ).order_by(email.date).all()
+ mails.reverse()
+ return mails
def search_content_subject(self, list_name, keyword):
""" Returns a list of email containing the specified keyword in
@@ -209,10 +213,11 @@ class KittySAStore(KittyStore):
self.metadata)
mails = self.session.query(email).filter(
email.content.like('%{0}%'.format(keyword))
- ).all()
+ ).order_by(email.date).all()
mails.extend(self.session.query(email).filter(
email.subject.like('%{0}%'.format(keyword))
- ).all())
+ ).order_by(email.date).all())
+ mails.reverse()
return mails
def search_sender(self, list_name, keyword):
@@ -227,10 +232,11 @@ class KittySAStore(KittyStore):
self.metadata)
mails = self.session.query(email).filter(
email.sender.like('%{0}%'.format(keyword))
- ).all()
+ ).order_by(email.date).all()
mails.extend(self.session.query(email).filter(
email.email.like('%{0}%'.format(keyword))
- ).all())
+ ).order_by(email.date).all())
+ mails.reverse()
return mails
def search_subject(self, list_name, keyword):
@@ -243,6 +249,8 @@ class KittySAStore(KittyStore):
"""
email = get_class_object(list_to_table_name(list_name), 'email',
self.metadata)
- return self.session.query(email).filter(
+ mails = self.session.query(email).filter(
email.subject.like('%{0}%'.format(keyword))
- ).all()
+ ).order_by(email.date).all()
+ mails.reverse()
+ return mails