The QwebJSON.dumps default handler returned non-serializable objects
unchanged, causing Python's json encoder to report "Circular reference
detected". Use odoo.tools.json.json_default() as fallback to properly
convert ReadonlyDict, lazy, datetime, bytes, Domain and other types.
🤖 assisted by claude
account_fiscal_country_id depends on country_id which must be stored to be
converted to SQL. Without store=True, installing account module fails with
ValueError: Cannot convert res.company.country_id to SQL.
🤖 assisted by claude
Added explicit page copying after cloneReaderDocumentRoot() calls because
PyPDF2 3.x only copies document structure, not content pages.
🤖 assisted by claude
Fix additional PyPDF2 3.0+ deprecation error for cloneReaderDocumentRoot
method which was replaced with clone_reader_document_root.
Changes:
- Add cloneReaderDocumentRoot compatibility method to PdfFileWriter wrapper
- Update documentation to include the new method mapping
- Resolves account_edi PDF generation error
Resolves PyPDF2.errors.DeprecationError: cloneReaderDocumentRoot is deprecated
and was removed in PyPDF2 3.0.0. Use clone_reader_document_root instead.
🤖 assisted by claude
Add compatibility wrapper classes for PdfFileWriter/PdfFileReader
to support both PyPDF2 2.x and 3.x versions.
Changes:
- Add PdfWriter/PdfReader compatibility wrappers in odoo/tools/pdf.py
- Add compatibility classes in odoo/addons/base/models/ir_actions_report.py
- Create comprehensive documentation in doc/PATCH_PDFWRITER.md
Resolves PyPDF2.errors.DeprecationError: PdfFileWriter is deprecated
and was removed in PyPDF2 3.0.0.
🤖 assisted by claude
The diagram had a cycle where node 'CLI' was inside subgraph 'CLI', creating:
'Setting CLI as parent of CLI would create a cycle'
Fixed by renaming the node to 'CLIEP' (CLI Entrypoints) to avoid the naming conflict.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>