[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