[rhmessaging-commits] rhmessaging commits: r4405 - in mgmt/trunk/cumin/python/cumin: grid and 1 other directory.

rhmessaging-commits at lists.jboss.org rhmessaging-commits at lists.jboss.org
Thu Oct 28 17:04:19 EDT 2010


Author: eallen
Date: 2010-10-28 17:04:19 -0400 (Thu, 28 Oct 2010)
New Revision: 4405

Modified:
   mgmt/trunk/cumin/python/cumin/grid/job.py
   mgmt/trunk/cumin/python/cumin/qmfadapter.py
Log:
BZ 63536: Enable sorting on qmf tables

Modified: mgmt/trunk/cumin/python/cumin/grid/job.py
===================================================================
--- mgmt/trunk/cumin/python/cumin/grid/job.py	2010-10-28 15:45:02 UTC (rev 4404)
+++ mgmt/trunk/cumin/python/cumin/grid/job.py	2010-10-28 21:04:19 UTC (rev 4405)
@@ -114,6 +114,9 @@
             rows = self.process_list_results(results.data)
         else:
             rows = []
+
+        # sort the entore results set
+        rows = self.sort_rows(rows, options)
         page = rows[first_index:last_index]
 
         return page, results
@@ -134,6 +137,9 @@
         for column in self.columns:
             try:
                 val = record[column.name]
+                # translate status int into string so the column can be sorted correctly
+                if column.name == "JobStatus":
+                    val = JobStatusInfo.get_status_string(val)
             except KeyError:
                 val = None
                 if column.name == "JobId":
@@ -187,7 +193,7 @@
         self.job_id_col = self.JobIdColumn(app, "job", cls.GlobalJobId, cls.JobId, frame)
         self.add_column(self.job_id_col)
 
-        status_column = self.Status(app, "status", cls.JobStatus)
+        status_column = ObjectTableColumn(app, "status", cls.JobStatus)
         self.add_column(status_column)
 
         cmd_column = NonSortableObjectTableColumn(app, cls.Cmd.name, cls.Cmd)
@@ -252,7 +258,7 @@
             values['args'] = ()
         return values
 
-    class JobIdColumn(NonSortableObjectLinkColumn):
+    class JobIdColumn(ObjectLinkColumn):
         def render_cell_href(self, session, record):
             job_id = record[self.parent.job_id_column.field.index]
             #frame = self.page.page_widgets_by_path[self.frame_path]
@@ -261,7 +267,7 @@
             submission = self.parent.submission.get(session)
             return frame.get_href(session, submission._id, job_id)
 
-    class Status(NonSortableObjectTableColumn):
+    class Status(ObjectTableColumn):
         def render_cell_content(self, session, record):
             status = self.field.get_content(session, record)
             return JobStatusInfo.get_status_string(status)

Modified: mgmt/trunk/cumin/python/cumin/qmfadapter.py
===================================================================
--- mgmt/trunk/cumin/python/cumin/qmfadapter.py	2010-10-28 15:45:02 UTC (rev 4404)
+++ mgmt/trunk/cumin/python/cumin/qmfadapter.py	2010-10-28 21:04:19 UTC (rev 4405)
@@ -2,6 +2,7 @@
 from wooly.datatable import *
 
 from util import *
+from operator import itemgetter
 
 class QmfAdapter(DataAdapter):
     def __init__(self, app, method):
@@ -32,6 +33,8 @@
             results.data = self.default
 
         rows = self.process_results(results)
+        rows = self.sort_rows(rows, options)
+
         return rows[options.offset:options.offset + options.limit]
 
     def process_results(self, results):
@@ -56,6 +59,12 @@
             field_data.append(val)
         return field_data
 
+    def sort_rows(self, rows, options):
+        sort_field = options.sort_field
+        rev = options.sort_ascending == False
+
+        return sorted(rows, key=itemgetter(sort_field.index), reverse=rev)
+
 class ObjectQmfAdapter(QmfAdapter):
     def __init__(self, app, cls):
         super(ObjectQmfAdapter, self).__init__(app, cls._name)



More information about the rhmessaging-commits mailing list