[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