[Erp5-report] r43489 jm - in /erp5/trunk/products: ERP5Form/ ERP5Type/tests/
nobody at svn.erp5.org
nobody at svn.erp5.org
Sat Feb 19 11:30:37 CET 2011
Author: jm
Date: Sat Feb 19 11:30:36 2011
New Revision: 43489
URL: http://svn.erp5.org?rev=43489&view=rev
Log:
Do not use hasattr to test a persistent object
Modified:
erp5/trunk/products/ERP5Form/Report.py
erp5/trunk/products/ERP5Type/tests/ERP5TypeTestCase.py
Modified: erp5/trunk/products/ERP5Form/Report.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/Report.py?rev=43489&r1=43488&r2=43489&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/Report.py [utf8] (original)
+++ erp5/trunk/products/ERP5Form/Report.py [utf8] Sat Feb 19 11:30:36 2011
@@ -322,12 +322,15 @@ class ReportSection:
selection_list = [self.selection_name]
# when the Form which is specified by form_id, has a listbox, make prefixed_selection_name.
# which is based on specified selection_name in the listbox.
- if self.getFormId() and hasattr(context[self.getFormId()], 'listbox') :
- selection_name = context[self.getFormId()].listbox.get_value('selection_name')
- if render_prefix is not None:
- selection_name = '%s_%s' % (render_prefix, selection_name)
- REQUEST.other['prefixed_selection_name'] = selection_name
- selection_list += [selection_name]
+ form_id = self.getFormId()
+ if form_id:
+ listbox = getattr(context[form_id], 'listbox', None)
+ if listbox is not None:
+ selection_name = listbox.get_value('selection_name')
+ if render_prefix is not None:
+ selection_name = '%s_%s' % (render_prefix, selection_name)
+ REQUEST.other['prefixed_selection_name'] = selection_name
+ selection_list.append(selection_name)
# save report's selection and orignal form's selection,
#as ListBox will overwrite it
for selection_name in filter(lambda x: x is not None, selection_list):
@@ -387,10 +390,12 @@ class ReportSection:
portal_selections = context.portal_selections
selection_list = []
- if self.getFormId() and hasattr(context[self.getFormId()], 'listbox') :
- selection_name = context[self.getFormId()].listbox.get_value('selection_name')
- selection_list += [selection_name]
- selection_list += [self.selection_name]
+ form_id = self.getFormId()
+ if form_id:
+ listbox = getattr(context[form_id], 'listbox', None)
+ if listbox is not None:
+ selection_list.append(listbox.get_value('selection_name'))
+ selection_list.append(self.selection_name)
if self.temporary_selection:
for selection_name in selection_list:
if selection_name is not None:
Modified: erp5/trunk/products/ERP5Type/tests/ERP5TypeTestCase.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/tests/ERP5TypeTestCase.py?rev=43489&r1=43488&r2=43489&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/tests/ERP5TypeTestCase.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/tests/ERP5TypeTestCase.py [utf8] Sat Feb 19 11:30:36 2011
@@ -1151,15 +1151,13 @@ class ERP5ReportTestCase(ERP5TypeTestCas
def getReportSectionList(self, context, report_name):
"""Get the list of report sections in a report called on context."""
report = getattr(context, report_name)
- if hasattr(report, 'report_method'):
- report_method = getattr(context, report.report_method)
- return report_method()
- else:
- report_item_list = []
- for reportbox in [field for field in report.get_fields()
- if field.getRecursiveTemplateField().meta_type == 'ReportBox']:
- report_item_list.extend(reportbox.render())
- return report_item_list
+ report_method = getattr(report, 'report_method', None)
+ if report_method:
+ return getattr(context, report_method)()
+ return sum([field.render()
+ for field in report.get_fields()
+ if field.getRecursiveTemplateField().meta_type == 'ReportBox'],
+ [])
def getListBoxLineList(self, report_section):
"""Render the listbox in a report section, return None if no listbox exists
More information about the Erp5-report
mailing list