From b31acf707d3a77ccfe7e8a7eef66e3bddded061a Mon Sep 17 00:00:00 2001 From: Doug Blank Date: Sat, 7 Nov 2009 13:29:35 +0000 Subject: [PATCH] Allow special quick views to receive additional arguments svn: r13518 --- src/QuickReports.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/QuickReports.py b/src/QuickReports.py index d2f835f58..f1ecbe66c 100644 --- a/src/QuickReports.py +++ b/src/QuickReports.py @@ -122,7 +122,12 @@ def get_quick_report_list(qv_category=None): return names def run_quick_report_by_name(dbstate, uistate, report_name, handle, - container=None): + container=None, **kwargs): + """ + Run a QuickView by name. + **kwargs provides a way of passing special quick views additional + arguments. + """ report = None pmgr = GuiPluginManager.get_instance() for pdata in pmgr.get_reg_quick_reports(): @@ -131,7 +136,7 @@ def run_quick_report_by_name(dbstate, uistate, report_name, handle, break if report: return run_report(dbstate, uistate, report.category, - handle, report, container=container) + handle, report, container=container, **kwargs) else: raise AttributeError, ("No such quick report '%s'" % report_name) @@ -165,15 +170,17 @@ def run_quick_report_by_name_direct(report_name, database, document, handle): else: raise AttributeError, ("No such quick report id = '%s'" % report_name) -def run_report(dbstate, uistate, category, handle, pdata, container=None): +def run_report(dbstate, uistate, category, handle, pdata, container=None, + **kwargs): """ Run a Quick Report. Optionally container can be passed, rather than putting the report in a new window. + **kwargs are only used for special quick views that allow additional + arguments, and that are run by run_quick_report_by_name(). """ from docgen import TextBufDoc from Simple import make_basic_stylesheet - container = None pmgr = GuiPluginManager.get_instance() mod = pmgr.load_plugin(pdata) if not mod: @@ -210,11 +217,11 @@ def run_report(dbstate, uistate, category, handle, pdata, container=None): if obj: if container: result = d.open("", container=container) - func(dbstate.db, d, obj) + func(dbstate.db, d, obj, **kwargs) return result else: d.open("") - retval = func(dbstate.db, d, obj) + retval = func(dbstate.db, d, obj, **kwargs) d.close() return retval else: