* src/Plugins.py: Fix Reports menu.
svn: r3833
This commit is contained in:
parent
88571a5f03
commit
61b53ebb14
@ -11,6 +11,8 @@
|
|||||||
* src/plugins/DescendReport.py: Convert to new scheme.
|
* src/plugins/DescendReport.py: Convert to new scheme.
|
||||||
* src/plugins/IndivSummary.py: Convert to new scheme.
|
* src/plugins/IndivSummary.py: Convert to new scheme.
|
||||||
|
|
||||||
|
* src/Plugins.py: Fix Reports menu.
|
||||||
|
|
||||||
2004-12-21 Alex Roitman <shura@alex.neuro.umn.edu>
|
2004-12-21 Alex Roitman <shura@alex.neuro.umn.edu>
|
||||||
* src/docgen/AsciiDoc.py (reformat_para): Correctly check for
|
* src/docgen/AsciiDoc.py (reformat_para): Correctly check for
|
||||||
empty paragraph.
|
empty paragraph.
|
||||||
|
@ -116,7 +116,7 @@ class PluginDialog:
|
|||||||
"""Displays the dialog box that allows the user to select the
|
"""Displays the dialog box that allows the user to select the
|
||||||
report that is desired."""
|
report that is desired."""
|
||||||
|
|
||||||
def __init__(self,parent,db,active,list,msg,label=None,button_label=None,tool_tip=None):
|
def __init__(self,parent,db,active,item_list,msg,label=None,button_label=None,tool_tip=None):
|
||||||
"""Display the dialog box, and build up the list of available
|
"""Display the dialog box, and build up the list of available
|
||||||
reports. This is used to build the selection tree on the left
|
reports. This is used to build the selection tree on the left
|
||||||
hand side of the dailog box."""
|
hand side of the dailog box."""
|
||||||
@ -177,7 +177,11 @@ class PluginDialog:
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
self.run_tool = None
|
self.run_tool = None
|
||||||
self.build_tree(list)
|
self.report_vs_tool = len(item_list[0]) == 9
|
||||||
|
if self.report_vs_tool:
|
||||||
|
self.build_report_tree(item_list)
|
||||||
|
else:
|
||||||
|
self.build_tool_tree(item_list)
|
||||||
self.add_itself_to_menu()
|
self.add_itself_to_menu()
|
||||||
self.top.show()
|
self.top.show()
|
||||||
|
|
||||||
@ -205,7 +209,11 @@ class PluginDialog:
|
|||||||
def on_apply_clicked(self,obj):
|
def on_apply_clicked(self,obj):
|
||||||
"""Execute the selected report"""
|
"""Execute the selected report"""
|
||||||
|
|
||||||
if self.run_tool:
|
if self.report_vs_tool:
|
||||||
|
(report_class,options_class,title,category,name) = self.run_tool
|
||||||
|
Report.report(self.db,self.active,
|
||||||
|
report_class,options_class,title,name,category)
|
||||||
|
elif self.run_tool:
|
||||||
if self.update:
|
if self.update:
|
||||||
self.run_tool(self.db,self.active,self.update,self.parent)
|
self.run_tool(self.db,self.active,self.update,self.parent)
|
||||||
else:
|
else:
|
||||||
@ -224,6 +232,10 @@ class PluginDialog:
|
|||||||
self.statbox.show()
|
self.statbox.show()
|
||||||
data = self.imap[path]
|
data = self.imap[path]
|
||||||
|
|
||||||
|
if self.report_vs_tool:
|
||||||
|
(report_class,options_class,title,
|
||||||
|
category,name,doc,status,author,email) = data
|
||||||
|
else:
|
||||||
title = data[0]
|
title = data[0]
|
||||||
task = data[1]
|
task = data[1]
|
||||||
doc = data[2]
|
doc = data[2]
|
||||||
@ -237,9 +249,12 @@ class PluginDialog:
|
|||||||
self.title.set_use_markup(1)
|
self.title.set_use_markup(1)
|
||||||
self.author_name.set_text(author)
|
self.author_name.set_text(author)
|
||||||
self.author_email.set_text(email)
|
self.author_email.set_text(email)
|
||||||
|
if self.report_vs_tool:
|
||||||
|
self.run_tool = (report_class,options_class,title,category,name)
|
||||||
|
else:
|
||||||
self.run_tool = task
|
self.run_tool = task
|
||||||
|
|
||||||
def build_tree(self,list):
|
def build_tool_tree(self,item_list):
|
||||||
"""Populates a GtkTree with each menu item assocated with a entry
|
"""Populates a GtkTree with each menu item assocated with a entry
|
||||||
in the lists. The list must consist of a tuples with the following
|
in the lists. The list must consist of a tuples with the following
|
||||||
format:
|
format:
|
||||||
@ -253,7 +268,7 @@ class PluginDialog:
|
|||||||
|
|
||||||
# build the tree items and group together based on the category name
|
# build the tree items and group together based on the category name
|
||||||
item_hash = {}
|
item_hash = {}
|
||||||
for report in list:
|
for report in item_list:
|
||||||
t = (report[2],report[0],report[3],report[4],report[5],report[6])
|
t = (report[2],report[0],report[3],report[4],report[5],report[6])
|
||||||
if item_hash.has_key(report[1]):
|
if item_hash.has_key(report[1]):
|
||||||
item_hash[report[1]].append(t)
|
item_hash[report[1]].append(t)
|
||||||
@ -281,6 +296,48 @@ class PluginDialog:
|
|||||||
path = self.store.get_path(next)
|
path = self.store.get_path(next)
|
||||||
self.imap[path] = tab
|
self.imap[path] = tab
|
||||||
|
|
||||||
|
def build_report_tree(self,item_list):
|
||||||
|
"""Populates a GtkTree with each menu item assocated with a entry
|
||||||
|
in the lists. The list must consist of a tuples with the following
|
||||||
|
format:
|
||||||
|
|
||||||
|
(task_to_call, category, report name, description, image, status, author_name, author_email)
|
||||||
|
|
||||||
|
Items in the same category are grouped under the same submen. The
|
||||||
|
task_to_call is bound to the 'select' callback of the menu entry."""
|
||||||
|
|
||||||
|
ilist = []
|
||||||
|
|
||||||
|
# build the tree items and group together based on the category name
|
||||||
|
item_hash = {}
|
||||||
|
for report in item_list:
|
||||||
|
category = const.standalone_categories[report[3]]
|
||||||
|
if item_hash.has_key(category):
|
||||||
|
item_hash[category].append(report)
|
||||||
|
else:
|
||||||
|
item_hash[category] = [report]
|
||||||
|
|
||||||
|
# add a submenu for each category, and populate it with the
|
||||||
|
# GtkTreeItems that are associated with it.
|
||||||
|
key_list = item_hash.keys()
|
||||||
|
key_list.sort()
|
||||||
|
key_list.reverse()
|
||||||
|
|
||||||
|
prev = None
|
||||||
|
for key in key_list:
|
||||||
|
data = item_hash[key]
|
||||||
|
node = self.store.insert_after(None,prev)
|
||||||
|
self.store.set(node,0,key)
|
||||||
|
next = None
|
||||||
|
data.sort(lambda x,y: cmp(x[2],y[2]))
|
||||||
|
for item in data:
|
||||||
|
next = self.store.insert_after(node,next)
|
||||||
|
ilist.append((next,item))
|
||||||
|
self.store.set(next,0,item[2])
|
||||||
|
for next,tab in ilist:
|
||||||
|
path = self.store.get_path(next)
|
||||||
|
self.imap[path] = tab
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
# ReportPlugins interface class
|
# ReportPlugins interface class
|
||||||
|
Loading…
Reference in New Issue
Block a user