From b8fcca088f7b8344e825b6c9b02e0cd503e81e50 Mon Sep 17 00:00:00 2001 From: CarmenMiranda Date: Tue, 23 Jan 2024 22:23:06 +0000 Subject: [PATCH] [FIX] controller_report_xls: Font Height Before this change there was a traceback when a `font-size` was added: ```python File "/usr/local/lib/python3.8/dist-packages/xlwt/BIFFRecords.py", line 725, in __init__ self._rec_data = pack('<5H4B%ds' % uname_len, height, options, colour_index, weight, escapement, Exception The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/odoo/instance/odoo/odoo/http.py", line 654, in _handle_exception return super(JsonRequest, self)._handle_exception(exception) File "/home/odoo/instance/odoo/odoo/http.py", line 301, in _handle_exception raise exception.with_traceback(None) from new_cause struct.error: required argument is not an integer ``` That happened because the `height` expected for the fonts is an integer value and the `get_font_height` was returning `float` values, for example: "125.0", now we are rounding the new size to 0 decimals to return the closest integer for that size. --- controller_report_xls/reports/xfstyle.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/controller_report_xls/reports/xfstyle.py b/controller_report_xls/reports/xfstyle.py index 9e227c27e4b..8ce23d2d123 100644 --- a/controller_report_xls/reports/xfstyle.py +++ b/controller_report_xls/reports/xfstyle.py @@ -291,8 +291,8 @@ def get_font_height(height): factor = 1.5 elif height == "XX-LARGE": factor = 2 - new_size = float(size * factor * 20) - return new_size + # NOTE: Rounding without decimals because the expected `height` needs to be an `integer` value + return round(size * factor * 20) def get_horizontal_align(halign, align):