env = env # noqa import re rep = env.ref('fusion_plating_reports.action_report_fp_bol_portrait') dlv = env['fusion.plating.delivery'].search([], order='id desc', limit=1) html, _ = rep.with_context(force_report_rendering=True )._render_qweb_html(rep.report_name, [dlv.id]) out = html.decode() if isinstance(html, bytes) else str(html) # Pull the sig-table block + a bit before m = re.search(r'(
)\s*
\s*\s*', out, re.S) if m: print('=== fp-keep-together block ===') print(m.group(1)[:3000]) else: # Fallback — just find the sig-table m2 = re.search(r'()', out, re.S) if m2: print('=== sig-table block ===') print(m2.group(1)) # Also dump the relevant CSS rules print('\n=== relevant css ===') for rule in re.findall(r'\.fp-report\s+\.(?:sig-|fp-keep)[^{]*\{[^}]*\}', out): print(rule)