From 65223f4a163244bae77f8493919d194428fe741b Mon Sep 17 00:00:00 2001 From: Yajo Date: Sat, 13 Aug 2016 03:06:47 +0200 Subject: [PATCH] [FIX][report_xls] Protect import. (#64) [FIX][report_xls] Protect import. Even after merging 2bf93a1d49f7c79062ab7c237ceb794cdbdec983, import still breaks when trying to use module's stuff at class definition time when module is not imported. I move xsl types to a failure-safe scope. --- report_xls/report_xls.py | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/report_xls/report_xls.py b/report_xls/report_xls.py index 2a6c092e..ab41e6d2 100644 --- a/report_xls/report_xls.py +++ b/report_xls/report_xls.py @@ -29,13 +29,29 @@ from types import CodeType from openerp.report.report_sxw import report_sxw from openerp import pooler import logging + _logger = logging.getLogger(__name__) +xls_types_default = { + 'bool': False, + 'date': None, + 'text': '', + 'number': 0, +} + try: import xlwt from xlwt.Style import default_style -except ImportError: + + xls_types = { + 'bool': xlwt.Row.set_cell_boolean, + 'date': xlwt.Row.set_cell_date, + 'text': xlwt.Row.set_cell_text, + 'number': xlwt.Row.set_cell_number, + } +except ImportError: # pragma: no cover _logger.debug("Cannot import xlwt. This module will not be functional.") + xls_types = xls_types_default class AttrDict(dict): @@ -45,22 +61,7 @@ class AttrDict(dict): class report_xls(report_sxw): - - xls_types = { - 'bool': xlwt.Row.set_cell_boolean, - 'date': xlwt.Row.set_cell_date, - 'text': xlwt.Row.set_cell_text, - 'number': xlwt.Row.set_cell_number, - } - xls_types_default = { - 'bool': False, - 'date': None, - 'text': '', - 'number': 0, - } - # TO DO: move parameters infra to configurable data - # header/footer hf_params = { 'font_size': 8,