[rhmessaging-commits] rhmessaging commits: r1504 - mgmt/cumin/python/cumin.
rhmessaging-commits at lists.jboss.org
rhmessaging-commits at lists.jboss.org
Mon Dec 17 14:18:02 EST 2007
Author: justi9
Date: 2007-12-17 14:18:02 -0500 (Mon, 17 Dec 2007)
New Revision: 1504
Modified:
mgmt/cumin/python/cumin/queue.py
mgmt/cumin/python/cumin/widgets.py
Log:
More table sorting improvements.
Modified: mgmt/cumin/python/cumin/queue.py
===================================================================
--- mgmt/cumin/python/cumin/queue.py 2007-12-17 18:49:24 UTC (rev 1503)
+++ mgmt/cumin/python/cumin/queue.py 2007-12-17 19:18:02 UTC (rev 1504)
@@ -23,18 +23,35 @@
self.add_child(self.unit)
self.header = TableHeader(app, "header")
- self.header.add_column(TableColumn())
- self.header.add_column(TableColumn("Name", "name"))
- self.header.add_column \
- (TableColumn("Exchange Bindings", None, "ralign"))
- self.header.add_column(TableColumn("Consumers", None, "ralign"))
- self.header.add_column(self.EnqueuedColumn(html_class="ralign"))
- self.header.add_column(self.DequeuedColumn(html_class="ralign"))
- self.header.add_column(self.DepthColumn(html_class="ralign"))
- self.header.add_column(TableColumn("Depth Accel.", None, "ralign"))
- self.header.add_column(TableColumn("Status", None))
self.add_child(self.header)
+ col = TableColumn(None)
+ self.header.add_column(col)
+
+ col = TableColumn("name", "name", "Name")
+ self.header.add_column(col)
+
+ col = TableColumn("bindings", None, "Exchange Bindings", "ralign")
+ self.header.add_column(col)
+
+ col = TableColumn("consumers", None, "Consumers", "ralign")
+ self.header.add_column(col)
+
+ col = self.EnqueuedColumn("enqueued", None, None, "ralign")
+ self.header.add_column(col)
+
+ col = self.DequeuedColumn("dequeued", None, None, "ralign")
+ self.header.add_column(col)
+
+ col = self.DepthColumn("depth", None, None, "ralign")
+ self.header.add_column(col)
+
+ col = TableColumn("accel", None, "Depth Accel.", "ralign")
+ self.header.add_column(col)
+
+ col = TableColumn("status", None, "Status")
+ self.header.add_column(col)
+
def get_title(self, session, vhost):
return "Queues %s" % fmt_count(self.get_item_count(session, vhost))
@@ -49,23 +66,28 @@
return "%s Enqueued" % self.header.parent().get_unit_plural \
(session)
- def get_sort_key(self, session):
- return None
+ def get_column(self, session, items):
+ unit = self.header.parent().unit.get(session)
+ return "queue_stats.%sTotalEnqueues" % \
+ (unit == "b" and "byte" or "msg")
class DequeuedColumn(TableColumn):
def get_title(self, session):
return "%s Dequeued" % self.header.parent().get_unit_plural \
(session)
- def get_sort_key(self, session):
- return None
+ def get_column(self, session, items):
+ unit = self.header.parent().unit.get(session)
+ return "queue_stats.%sTotalDequeues" % \
+ (unit == "b" and "byte" or "msg")
class DepthColumn(TableColumn):
def get_title(self, session):
return "%s Depth" % self.header.parent().get_unit_singular(session)
- def get_sort_key(self, session):
- return None
+ def get_column(self, session, items):
+ unit = self.header.parent().unit.get(session)
+ return "queue_stats.%sDepth" % (unit == "b" and "byte" or "msg")
def get_item_count(self, session, vhost):
return vhost.queues.count()
@@ -76,8 +98,8 @@
queues = queues.filter(Queue.q.vhostID == vhost.id)
queues = queues.filter(Queue.q.statsCurrID == QueueStats.q.id)
- sort_key = self.header.get_sort_key(session) or "name"
- queues = queues.orderBy(sort_key)
+ column = self.header.get_selected_column(session)
+ queues = column.get_sorted_items(session, queues)
start, end = self.get_bounds(session)
queues = queues[start:end]
Modified: mgmt/cumin/python/cumin/widgets.py
===================================================================
--- mgmt/cumin/python/cumin/widgets.py 2007-12-17 18:49:24 UTC (rev 1503)
+++ mgmt/cumin/python/cumin/widgets.py 2007-12-17 19:18:02 UTC (rev 1504)
@@ -330,15 +330,18 @@
self.columns = list() # of TableColumns
- self.sort = Parameter(app, "sort")
- self.add_parameter(self.sort)
+ self.column = Parameter(app, "col")
+ self.add_parameter(self.column)
def add_column(self, column):
self.columns.append(column)
column.header = self
- def get_sort_key(self, session):
- return self.sort.get(session)
+ def get_selected_column(self, session):
+ name = self.column.get(session)
+ for column in self.columns:
+ if column.name == name:
+ return column
def get_items(self, session, object):
return self.columns
@@ -350,35 +353,33 @@
return column.get_title(session)
def render_item_href(self, session, column):
- sort_key = column.get_sort_key(session)
+ branch = session.branch()
+ self.column.set(branch, column.name)
+ return branch.marshal()
- if sort_key:
- branch = session.branch()
- self.sort.set(branch, sort_key)
- href = branch.marshal()
- else:
- href = session.marshal()
-
- return href
-
# XXX for now, not a Widget
class TableColumn(object):
- def __init__(self, title=None, sort_key=None, html_class=None):
+ def __init__(self, name, column_name=None, title=None, class_=None):
+ self.name = name
+ self.column_name = column_name
self.title = title
- self.sort_key = sort_key
- self.html_class = html_class
+ self.class_ = class_
self.header = None
+ def get_column_name(self, session):
+ return self.column_name
+
def get_title(self, session):
return self.title
- def get_sort_key(self, session):
- return self.sort_key
-
def get_class(self, session):
- return self.html_class
+ return self.class_
+ def get_sorted_items(self, session, items):
+ # XXX sqlobject specific
+ return items.orderBy(self.get_column_name(session))
+
class PaginatedItemSet(ItemSet):
def __init__(self, app, name):
super(PaginatedItemSet, self).__init__(app, name)
More information about the rhmessaging-commits
mailing list