[pkg-fso-commits] [SCM] FSO frameworkd Debian packaging branch, debian, updated. upstream/0.9.5.5-717-g0f98819
Sebastian Krzyszkowiak
seba.dos1 at gmail.com
Sat Aug 6 08:18:07 UTC 2011
The following commit has been merged in the debian branch:
commit 8b6a519a4964d2121e1258a5c7a3cbb58ad163d6
Author: Sebastian Krzyszkowiak <seba.dos1 at gmail.com>
Date: Wed Aug 26 15:09:04 2009 +0200
opimd: implement sorting
_sortby field in query specifies field name to use when sorting.
To reverse results, use non-false value of _sortdesc
diff --git a/framework/subsystems/opimd/pimd_generic.py b/framework/subsystems/opimd/pimd_generic.py
index d6d15c5..98d0b8f 100644
--- a/framework/subsystems/opimd/pimd_generic.py
+++ b/framework/subsystems/opimd/pimd_generic.py
@@ -98,7 +98,7 @@ class GenericEntry():
if len(field_ids) == 1:
# Return single result
field = self._fields[field_ids[0]]
- return field[1]
+ result = field[1]
else:
# Return multiple results
@@ -114,10 +114,12 @@ class GenericEntry():
thesame = 0
if thesame:
- return result[0]
- else:
- return result
+ result = result[0]
+ if result != '':
+ return result
+ else:
+ return None
def __repr__(self):
return str(self.get_content())
diff --git a/framework/subsystems/opimd/query_manager.py b/framework/subsystems/opimd/query_manager.py
index 8492d80..9f1862e 100644
--- a/framework/subsystems/opimd/query_manager.py
+++ b/framework/subsystems/opimd/query_manager.py
@@ -31,7 +31,7 @@ MODULE_NAME = "opimd"
from dbus.service import FallbackObject as DBusFBObject
from helpers import *
-#from opimd import *
+from operator import itemgetter
import logging
logger = logging.getLogger( MODULE_NAME )
@@ -76,7 +76,7 @@ class QueryMatcher(object):
result_count = len(matches)
# Sort matches by relevance and return the best hits
if result_count > 0:
- matches.sort(reverse = True)
+ matches.sort(reverse = True, key=itemgetter(0))
limit = result_count
if self.query_obj.has_key("_limit"):
@@ -88,6 +88,19 @@ class QueryMatcher(object):
for i in range(limit):
results.append(matches[i][1])
+ if self.query_obj.get('_sortby'):
+ reverse = self.query_obj.get('_sortdesc')
+ if reverse:
+ reverse = True
+ else:
+ reverse = False
+ sortby = self.query_obj['_sortby']
+
+ def compare(element):
+ return entries[element][sortby]
+
+ results.sort(key=compare, reverse = reverse)
+
return results
#----------------------------------------------------------------------------#
--
FSO frameworkd Debian packaging
More information about the pkg-fso-commits
mailing list