From 045a8f26b2cda43c0e204960112a4024c1d7f042 Mon Sep 17 00:00:00 2001 From: Wolfgang Taferner <wtaferner@users.noreply.github.com> Date: Sun, 3 Nov 2019 07:41:45 +0000 Subject: [PATCH] [FIX] base: multi-pages and multi-records traceback In case of a multi-record and multi-page (i.e. 2 pages per PDF) report the assertion is triggered b/c we have 4 pages and only two records with a PDF of 2 pages each, so the outline_page needs to be unique before assertion. len([0, 0, 2, 2]) != len([record_id1, record_id2]) len([0, 2]) == len([record_id1, record_id2]) closes odoo/odoo#40076 X-original-commit: 573e57773b78a5bcac97c9dab4f531a5826e94c0 Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com> --- odoo/addons/base/models/ir_actions_report.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/odoo/addons/base/models/ir_actions_report.py b/odoo/addons/base/models/ir_actions_report.py index 570ae7c9917f..94dee1a834a5 100644 --- a/odoo/addons/base/models/ir_actions_report.py +++ b/odoo/addons/base/models/ir_actions_report.py @@ -595,7 +595,8 @@ class IrActionsReport(models.Model): reader = PdfFileReader(pdf_content_stream) if reader.trailer['/Root'].get('/Dests'): outlines_pages = sorted( - [outline.getObject()[0] for outline in reader.trailer['/Root']['/Dests'].values()]) + set(outline.getObject()[0] for outline in reader.trailer['/Root']['/Dests'].values()) + ) assert len(outlines_pages) == len(res_ids) for i, num in enumerate(outlines_pages): to = outlines_pages[i + 1] if i + 1 < len(outlines_pages) else reader.numPages -- GitLab