Py3o Report Engine - Fusion server support

report_py3o_fusion_server
REPOSITORY
REPOSITORYOCA/reporting-engine
GIT
GIThttps://github.com/OCA/reporting-engine.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/reporting-engine/tree/18.0/report_py3o_fusion_server
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYReporting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, ACSONE SA/NV, XCG Consulting
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion, ACSONE SA/NV, XCG Consulting
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, JasminSForgeFlow
WEBSITE
WEBSITEhttps://github.com/OCA/reporting-engine
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:07
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/reporting-engine:
    - report_py3o
odoo/odoo:
    - web
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES mock
py3o.formats
py3o.template
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES libreoffice
DESCRIPTION
DESCRIPTION
This module was written to let a py3o fusion server handle format
conversion instead of local libreoffice. If you install this module
above the *report_py3o* module, you will have to deploy additionnal
software components and run 3 daemons (libreoffice, py3o.fusion and
py3o.renderserver). This additionnal complexiy comes with several
advantages:

- much better performances: Libreoffice runs permanently in the
  background, no need to spawn a new Libreoffice instance upon every
  document conversion.
- ability to configure PDF export options in Odoo. This brings many new
  possibilities such as the ability to generate:
  - PDF forms
  - PDF/A documents (required by some electronic invoicing standards
    such as [Factur-X](http://fnfe-mpe.org/factur-x/factur-x_en/))
  - watermarked PDF documents
  - password-protected PDF documents

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
py3o_pdf_options_form py3o.pdf.options.form py3o.pdf.options form New
py3o_pdf_options_tree py3o.pdf.options.tree py3o.pdf.options list New
py3o_server_configuration_form_view py3o.server.configuration.form.view py3o.server form New
py3o_server_configuration_tree_view py3o.server.configuration.tree.view py3o.server list New
view_ir_actions_report_base ir.actions.report field Inherits report_py3o.py3o_report_view
Models touched (4)

New fields (3)
  • pdf_options_id Many2one → py3o.pdf.options
    help='PDF options can be set per report, but also per Py3o Server. If both are defined, the options on the report are used.' ondelete='restrict' string='PDF Options' args: 'py3o.pdf.options'
  • py3o_is_local_fusion Boolean
    default=True help='Native formats will be processed without a server. You must use this mode if you call methods on your model into the template.' args: 'Local Fusion'
  • py3o_server_id Many2one → py3o.server
    args: 'py3o.server', 'Fusion Server'
Public methods (0)

No public methods.

New fields (40)
  • center_window Boolean
    string='Center Window on Screen'
  • changes Selection
    default='4' args: [('0', 'Not Permitted'), ('1', 'Inserting, Deleting and Rotating Pages'), ('2', 'Filling in Form Fields'), ('3', 'Commenting, Filling in Form Fields'), ('4', 'Any Except Extracting Pages')]
  • content_copying_allowed Boolean
    default=True string='Enable Copying of Content'
  • convert_doc_ref_to_pdf_target Boolean
    string='Convert Document References to PDF Targets'
  • cross_doc_link_action Selection
    default='0' string='Cross-document Links' args: [('0', 'Default'), ('1', 'Open with PDF Reader Application'), ('2', 'Open with Internet Browser')]
  • display_document_title Boolean
  • document_password Char
  • encrypt Boolean
  • export_bookmarks Boolean
    default=True
  • export_bookmarks_named_dest Boolean
    string='Export Bookmarks as Named Destinations'
  • export_comments Boolean
  • export_filesystem_urls Boolean
    string='Export URLs Relative to Filesystem'
  • export_hidden_slides Boolean
    args: 'Export Automatically Insered Blank Pages'
  • export_placeholders Boolean
    default=True
  • hide_menubar Boolean
  • hide_toolbar Boolean
  • hide_window_controls Boolean
    string='Hide Windows Controls'
  • image_compression Selection
    default='jpeg' args: [('lossless', 'Lossless Compression'), ('jpeg', 'JPEG Compression')]
  • image_jpeg_quality Integer
    default=90 help='Enter a percentage between 0 and 100.' string='Image JPEG Quality'
  • image_reduce_resolution Selection
    default='300' string='Reduce Image Resolution' args: [('none', 'Disable'), ('75', '75 DPI'), ('150', '150 DPI'), ('300', '300 DPI'), ('600', '600 DPI'), ('1200', '1200 DPI')]
  • initial_page Integer
    default=1
  • initial_view Selection
    default='0' string='Panes' args: [('0', 'Page Only'), ('1', 'Bookmarks and Page'), ('2', 'Thumbnails and Page')]
  • magnification Selection
    default='0' args: [('0', 'Default'), ('1', 'Fit in Window'), ('2', 'Fit Width'), ('3', 'Fit Visible'), ('4', 'Zoom')]
  • name Char
    required=True
  • open_bookmark_levels Selection
    default='-1' string='Visible Bookmark Levels' args: [('-1', 'All Levels'), ('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10')]
  • open_fullscreen Boolean
    string='Open in Full Screen Mode'
  • page_layout Selection
    default='0' args: [('0', 'Default'), ('1', 'Single Page'), ('2', 'Continuous'), ('3', 'Continuous Facing')]
  • pdf_form Boolean
    default=True args: 'Create PDF Form'
  • pdf_form_allow_duplicate Boolean
    args: 'Allow Duplicate Field Names'
  • pdf_form_format Selection
    default='0' string='Submit Format' args: [('0', 'FDF'), ('1', 'PDF'), ('2', 'HTML'), ('3', 'XML')]
  • pdfa Boolean
    help='If you enable this option, you will not be able to password-protect the document or apply other security settings.' args: 'Archive PDF/A-1a (ISO 19005-1)'
  • permission_password Char
  • printing Selection
    default='2' args: [('0', 'Not Permitted'), ('1', 'Low Resolution (150 dpi)'), ('2', 'High Resolution')]
  • resize_windows_initial_page Boolean
    string='Resize Windows to Initial Page'
  • restrict_permissions Boolean
  • tagged_pdf Boolean
    args: 'Tagged PDF (add document structure)'
  • text_access_accessibility_tools_allowed Boolean
    default=True string='Enable Text Access for Accessibility Tools'
  • watermark Boolean
    args: 'Sign With Watermark'
  • watermark_text Char
    args: 'WaterMark Text'
  • zoom Integer
    default=100 help='Possible values: from 50 to 1600' string='Zoom Factor'
Public methods (5)
  • check_pdf_options(self)
    @api.constrains('image_jpeg_quality', 'initial_page', 'pdfa', 'cross_doc_link_action', 'magnification', 'zoom')
  • encrypt_change(self)
    @api.onchange('encrypt')
  • odoo2libreoffice_options(self)
  • pdfa_change(self)
    @api.onchange('pdfa')
  • restrict_permissions_change(self)
    @api.onchange('restrict_permissions')

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (3)
  • is_active Boolean
    default=True args: 'Active'
  • pdf_options_id Many2one → py3o.pdf.options
    help='PDF options can be set per Py3o Server but also per report. If both are defined, the options on the report are used.' ondelete='restrict' string='PDF Options' args: 'py3o.pdf.options'
  • url Char
    help='If your Py3o Fusion server is on the same machine and runs on the default port, the URL is http://localhost:8765/form' required=True args: 'Py3o Fusion Server URL'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/reporting-engine
GIT
GIThttps://github.com/OCA/reporting-engine.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/reporting-engine/tree/16.0/report_py3o_fusion_server
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYReporting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, ACSONE SA/NV, XCG Consulting
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion, ACSONE SA/NV, XCG Consulting
COMMITTERS
COMMITTERSAlexis de Lattre, Weblate, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/reporting-engine
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:57
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/reporting-engine:
    - report_py3o
odoo/odoo:
    - web
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES mock
py3o.formats
py3o.template
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES libreoffice
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
py3o_pdf_options_form py3o.pdf.options.form py3o.pdf.options form New
py3o_pdf_options_tree py3o.pdf.options.tree py3o.pdf.options tree New
py3o_server_configuration_form_view py3o.server.configuration.form.view py3o.server form New
py3o_server_configuration_tree_view py3o.server.configuration.tree.view py3o.server tree New
view_ir_actions_report_base ir.actions.report field Inherits report_py3o.py3o_report_view
Models touched (4)

New fields (3)
  • pdf_options_id Many2one → py3o.pdf.options
    help='PDF options can be set per report, but also per Py3o Server. If both are defined, the options on the report are used.' ondelete='restrict' string='PDF Options' args: 'py3o.pdf.options'
  • py3o_is_local_fusion Boolean
    default=True help='Native formats will be processed without a server. You must use this mode if you call methods on your model into the template.' args: 'Local Fusion'
  • py3o_server_id Many2one → py3o.server
    args: 'py3o.server', 'Fusion Server'
Public methods (0)

No public methods.

New fields (40)
  • center_window Boolean
    string='Center Window on Screen'
  • changes Selection
    default='4' args: [('0', 'Not Permitted'), ('1', 'Inserting, Deleting and Rotating Pages'), ('2', 'Filling in Form Fields'), ('3', 'Commenting, Filling in Form Fields'), ('4', 'Any Except Extracting Pages')]
  • content_copying_allowed Boolean
    default=True string='Enable Copying of Content'
  • convert_doc_ref_to_pdf_target Boolean
    string='Convert Document References to PDF Targets'
  • cross_doc_link_action Selection
    default='0' string='Cross-document Links' args: [('0', 'Default'), ('1', 'Open with PDF Reader Application'), ('2', 'Open with Internet Browser')]
  • display_document_title Boolean
  • document_password Char
  • encrypt Boolean
  • export_bookmarks Boolean
    default=True
  • export_bookmarks_named_dest Boolean
    string='Export Bookmarks as Named Destinations'
  • export_comments Boolean
  • export_filesystem_urls Boolean
    string='Export URLs Relative to Filesystem'
  • export_hidden_slides Boolean
    args: 'Export Automatically Insered Blank Pages'
  • export_placeholders Boolean
    default=True
  • hide_menubar Boolean
  • hide_toolbar Boolean
  • hide_window_controls Boolean
    string='Hide Windows Controls'
  • image_compression Selection
    default='jpeg' args: [('lossless', 'Lossless Compression'), ('jpeg', 'JPEG Compression')]
  • image_jpeg_quality Integer
    default=90 help='Enter a percentage between 0 and 100.' string='Image JPEG Quality'
  • image_reduce_resolution Selection
    default='300' string='Reduce Image Resolution' args: [('none', 'Disable'), ('75', '75 DPI'), ('150', '150 DPI'), ('300', '300 DPI'), ('600', '600 DPI'), ('1200', '1200 DPI')]
  • initial_page Integer
    default=1
  • initial_view Selection
    default='0' string='Panes' args: [('0', 'Page Only'), ('1', 'Bookmarks and Page'), ('2', 'Thumbnails and Page')]
  • magnification Selection
    default='0' args: [('0', 'Default'), ('1', 'Fit in Window'), ('2', 'Fit Width'), ('3', 'Fit Visible'), ('4', 'Zoom')]
  • name Char
    required=True
  • open_bookmark_levels Selection
    default='-1' string='Visible Bookmark Levels' args: [('-1', 'All Levels'), ('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10')]
  • open_fullscreen Boolean
    string='Open in Full Screen Mode'
  • page_layout Selection
    default='0' args: [('0', 'Default'), ('1', 'Single Page'), ('2', 'Continuous'), ('3', 'Continuous Facing')]
  • pdf_form Boolean
    default=True args: 'Create PDF Form'
  • pdf_form_allow_duplicate Boolean
    args: 'Allow Duplicate Field Names'
  • pdf_form_format Selection
    default='0' string='Submit Format' args: [('0', 'FDF'), ('1', 'PDF'), ('2', 'HTML'), ('3', 'XML')]
  • pdfa Boolean
    help='If you enable this option, you will not be able to password-protect the document or apply other security settings.' args: 'Archive PDF/A-1a (ISO 19005-1)'
  • permission_password Char
  • printing Selection
    default='2' args: [('0', 'Not Permitted'), ('1', 'Low Resolution (150 dpi)'), ('2', 'High Resolution')]
  • resize_windows_initial_page Boolean
    string='Resize Windows to Initial Page'
  • restrict_permissions Boolean
  • tagged_pdf Boolean
    args: 'Tagged PDF (add document structure)'
  • text_access_accessibility_tools_allowed Boolean
    default=True string='Enable Text Access for Accessibility Tools'
  • watermark Boolean
    args: 'Sign With Watermark'
  • watermark_text Char
    args: 'WaterMark Text'
  • zoom Integer
    default=100 help='Possible values: from 50 to 1600' string='Zoom Factor'
Public methods (5)
  • check_pdf_options(self)
    @api.constrains('image_jpeg_quality', 'initial_page', 'pdfa', 'cross_doc_link_action', 'magnification', 'zoom')
  • encrypt_change(self)
    @api.onchange('encrypt')
  • odoo2libreoffice_options(self)
  • pdfa_change(self)
    @api.onchange('pdfa')
  • restrict_permissions_change(self)
    @api.onchange('restrict_permissions')

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (3)
  • is_active Boolean
    default=True args: 'Active'
  • pdf_options_id Many2one → py3o.pdf.options
    help='PDF options can be set per Py3o Server but also per report. If both are defined, the options on the report are used.' ondelete='restrict' string='PDF Options' args: 'py3o.pdf.options'
  • url Char
    help='If your Py3o Fusion server is on the same machine and runs on the default port, the URL is http://localhost:8765/form' required=True args: 'Py3o Fusion Server URL'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/reporting-engine
GIT
GIThttps://github.com/OCA/reporting-engine.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/reporting-engine/tree/14.0/report_py3o_fusion_server
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYReporting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, ACSONE SA/NV, XCG Consulting
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion, ACSONE SA/NV, XCG Consulting
COMMITTERS
COMMITTERSStéphane Bidoul, Alexis de Lattre, oca-travis, Weblate, OCA-git-bot, oca-ci, Héctor Vi Or
WEBSITE
WEBSITEhttps://github.com/OCA/reporting-engine
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:10
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/reporting-engine:
    - report_py3o
odoo/odoo:
    - web
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES py3o.formats
py3o.template
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES libreoffice
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
py3o_pdf_options_form py3o.pdf.options.form py3o.pdf.options form New
py3o_pdf_options_tree py3o.pdf.options.tree py3o.pdf.options tree New
py3o_server_configuration_form_view py3o.server.configuration.form.view py3o.server form New
py3o_server_configuration_tree_view py3o.server.configuration.tree.view py3o.server tree New
view_ir_actions_report_base ir.actions.report field Inherits report_py3o.py3o_report_view
Models touched (4)

New fields (3)
  • pdf_options_id Many2one → py3o.pdf.options
    help='PDF options can be set per report, but also per Py3o Server. If both are defined, the options on the report are used.' ondelete='restrict' string='PDF Options' args: 'py3o.pdf.options'
  • py3o_is_local_fusion Boolean
    default=True help='Native formats will be processed without a server. You must use this mode if you call methods on your model into the template.' args: 'Local Fusion'
  • py3o_server_id Many2one → py3o.server
    args: 'py3o.server', 'Fusion Server'
Public methods (0)

No public methods.

New fields (40)
  • center_window Boolean
    string='Center Window on Screen'
  • changes Selection
    default='4' string='Changes' args: [('0', 'Not Permitted'), ('1', 'Inserting, Deleting and Rotating Pages'), ('2', 'Filling in Form Fields'), ('3', 'Commenting, Filling in Form Fields'), ('4', 'Any Except Extracting Pages')]
  • content_copying_allowed Boolean
    default=True string='Enable Copying of Content'
  • convert_doc_ref_to_pdf_target Boolean
    string='Convert Document References to PDF Targets'
  • cross_doc_link_action Selection
    default='0' string='Cross-document Links' args: [('0', 'Default'), ('1', 'Open with PDF Reader Application'), ('2', 'Open with Internet Browser')]
  • display_document_title Boolean
    string='Display Document Title'
  • document_password Char
    string='Document Password'
  • encrypt Boolean
    args: 'Encrypt'
  • export_bookmarks Boolean
    default=True args: 'Export Bookmarks'
  • export_bookmarks_named_dest Boolean
    string='Export Bookmarks as Named Destinations'
  • export_comments Boolean
    args: 'Export Comments'
  • export_filesystem_urls Boolean
    string='Export URLs Relative to Filesystem'
  • export_hidden_slides Boolean
    args: 'Export Automatically Insered Blank Pages'
  • export_placeholders Boolean
    default=True args: 'Export Placeholders'
  • hide_menubar Boolean
    string='Hide Menubar'
  • hide_toolbar Boolean
    string='Hide Toolbar'
  • hide_window_controls Boolean
    string='Hide Windows Controls'
  • image_compression Selection
    default='jpeg' string='Image Compression' args: [('lossless', 'Lossless Compression'), ('jpeg', 'JPEG Compression')]
  • image_jpeg_quality Integer
    default=90 help='Enter a percentage between 0 and 100.' string='Image JPEG Quality'
  • image_reduce_resolution Selection
    default='300' string='Reduce Image Resolution' args: [('none', 'Disable'), ('75', '75 DPI'), ('150', '150 DPI'), ('300', '300 DPI'), ('600', '600 DPI'), ('1200', '1200 DPI')]
  • initial_page Integer
    default=1 string='Initial Page'
  • initial_view Selection
    default='0' string='Panes' args: [('0', 'Page Only'), ('1', 'Bookmarks and Page'), ('2', 'Thumbnails and Page')]
  • magnification Selection
    default='0' string='Magnification' args: [('0', 'Default'), ('1', 'Fit in Window'), ('2', 'Fit Width'), ('3', 'Fit Visible'), ('4', 'Zoom')]
  • name Char
    required=True
  • open_bookmark_levels Selection
    default='-1' string='Visible Bookmark Levels' args: [('-1', 'All Levels'), ('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10')]
  • open_fullscreen Boolean
    string='Open in Full Screen Mode'
  • page_layout Selection
    default='0' string='Page Layout' args: [('0', 'Default'), ('1', 'Single Page'), ('2', 'Continuous'), ('3', 'Continuous Facing')]
  • pdf_form Boolean
    default=True args: 'Create PDF Form'
  • pdf_form_allow_duplicate Boolean
    args: 'Allow Duplicate Field Names'
  • pdf_form_format Selection
    default='0' string='Submit Format' args: [('0', 'FDF'), ('1', 'PDF'), ('2', 'HTML'), ('3', 'XML')]
  • pdfa Boolean
    help='If you enable this option, you will not be able to password-protect the document or apply other security settings.' args: 'Archive PDF/A-1a (ISO 19005-1)'
  • permission_password Char
    string='Permission Password'
  • printing Selection
    default='2' string='Printing' args: [('0', 'Not Permitted'), ('1', 'Low Resolution (150 dpi)'), ('2', 'High Resolution')]
  • resize_windows_initial_page Boolean
    string='Resize Windows to Initial Page'
  • restrict_permissions Boolean
    args: 'Restrict Permissions'
  • tagged_pdf Boolean
    args: 'Tagged PDF (add document structure)'
  • text_access_accessibility_tools_allowed Boolean
    default=True string='Enable Text Access for Accessibility Tools'
  • watermark Boolean
    args: 'Sign With Watermark'
  • watermark_text Char
    args: 'WaterMark Text'
  • zoom Integer
    default=100 help='Possible values: from 50 to 1600' string='Zoom Factor'
Public methods (5)
  • check_pdf_options(self)
    @api.constrains('image_jpeg_quality', 'initial_page', 'pdfa', 'cross_doc_link_action', 'magnification', 'zoom')
  • encrypt_change(self)
    @api.onchange('encrypt')
  • odoo2libreoffice_options(self)
  • pdfa_change(self)
    @api.onchange('pdfa')
  • restrict_permissions_change(self)
    @api.onchange('restrict_permissions')

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (3)
  • is_active Boolean
    default=True args: 'Active'
  • pdf_options_id Many2one → py3o.pdf.options
    help='PDF options can be set per Py3o Server but also per report. If both are defined, the options on the report are used.' ondelete='restrict' string='PDF Options' args: 'py3o.pdf.options'
  • url Char
    help='If your Py3o Fusion server is on the same machine and runs on the default port, the URL is http://localhost:8765/form' required=True args: 'Py3o Fusion Server URL'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/reporting-engine
GIT
GIThttps://github.com/OCA/reporting-engine.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/reporting-engine/tree/13.0/report_py3o_fusion_server
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYReporting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), ACSONE SA/NV, XCG Consulting
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), ACSONE SA/NV, XCG Consulting
COMMITTERS
COMMITTERSLaurent Mignon (ACSONE), Enric Tobella, OCA Transbot, oca-travis, Weblate, OCA-git-bot
WEBSITE
WEBSITEhttps://github.com/OCA/reporting-engine
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:19
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/reporting-engine:
    - report_py3o
odoo/odoo:
    - web
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES py3o.formats
py3o.template
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES libreoffice
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
py3o_pdf_options_form py3o.pdf.options.form py3o.pdf.options form New
py3o_pdf_options_tree py3o.pdf.options.tree py3o.pdf.options tree New
py3o_server_configuration_form_view py3o.server.configuration.form.view py3o.server form New
py3o_server_configuration_tree_view py3o.server.configuration.tree.view py3o.server tree New
view_ir_actions_report_base ir.actions.report field Inherits report_py3o.py3o_report_view
Models touched (4)

New fields (3)
  • pdf_options_id Many2one → py3o.pdf.options
    help='PDF options can be set per report, but also per Py3o Server. If both are defined, the options on the report are used.' ondelete='restrict' string='PDF Options' args: 'py3o.pdf.options'
  • py3o_is_local_fusion Boolean
    default=True help='Native formats will be processed without a server. You must use this mode if you call methods on your model into the template.' args: 'Local Fusion'
  • py3o_server_id Many2one → py3o.server
    args: 'py3o.server', 'Fusion Server'
Public methods (0)

No public methods.

New fields (40)
  • center_window Boolean
    string='Center Window on Screen'
  • changes Selection
    default='4' string='Changes' args: [('0', 'Not Permitted'), ('1', 'Inserting, Deleting and Rotating Pages'), ('2', 'Filling in Form Fields'), ('3', 'Commenting, Filling in Form Fields'), ('4', 'Any Except Extracting Pages')]
  • content_copying_allowed Boolean
    default=True string='Enable Copying of Content'
  • convert_doc_ref_to_pdf_target Boolean
    string='Convert Document References to PDF Targets'
  • cross_doc_link_action Selection
    default='0' string='Cross-document Links' args: [('0', 'Default'), ('1', 'Open with PDF Reader Application'), ('2', 'Open with Internet Browser')]
  • display_document_title Boolean
    string='Display Document Title'
  • document_password Char
    string='Document Password'
  • encrypt Boolean
    args: 'Encrypt'
  • export_bookmarks Boolean
    default=True args: 'Export Bookmarks'
  • export_bookmarks_named_dest Boolean
    string='Export Bookmarks as Named Destinations'
  • export_comments Boolean
    args: 'Export Comments'
  • export_filesystem_urls Boolean
    string='Export URLs Relative to Filesystem'
  • export_hidden_slides Boolean
    args: 'Export Automatically Insered Blank Pages'
  • export_placeholders Boolean
    default=True args: 'Export Placeholders'
  • hide_menubar Boolean
    string='Hide Menubar'
  • hide_toolbar Boolean
    string='Hide Toolbar'
  • hide_window_controls Boolean
    string='Hide Windows Controls'
  • image_compression Selection
    default='jpeg' string='Image Compression' args: [('lossless', 'Lossless Compression'), ('jpeg', 'JPEG Compression')]
  • image_jpeg_quality Integer
    default=90 help='Enter a percentage between 0 and 100.' string='Image JPEG Quality'
  • image_reduce_resolution Selection
    default='300' string='Reduce Image Resolution' args: [('none', 'Disable'), ('75', '75 DPI'), ('150', '150 DPI'), ('300', '300 DPI'), ('600', '600 DPI'), ('1200', '1200 DPI')]
  • initial_page Integer
    default=1 string='Initial Page'
  • initial_view Selection
    default='0' string='Panes' args: [('0', 'Page Only'), ('1', 'Bookmarks and Page'), ('2', 'Thumbnails and Page')]
  • magnification Selection
    default='0' string='Magnification' args: [('0', 'Default'), ('1', 'Fit in Window'), ('2', 'Fit Width'), ('3', 'Fit Visible'), ('4', 'Zoom')]
  • name Char
    required=True
  • open_bookmark_levels Selection
    default='-1' string='Visible Bookmark Levels' args: [('-1', 'All Levels'), ('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10')]
  • open_fullscreen Boolean
    string='Open in Full Screen Mode'
  • page_layout Selection
    default='0' string='Page Layout' args: [('0', 'Default'), ('1', 'Single Page'), ('2', 'Continuous'), ('3', 'Continuous Facing')]
  • pdf_form Boolean
    default=True args: 'Create PDF Form'
  • pdf_form_allow_duplicate Boolean
    args: 'Allow Duplicate Field Names'
  • pdf_form_format Selection
    default='0' string='Submit Format' args: [('0', 'FDF'), ('1', 'PDF'), ('2', 'HTML'), ('3', 'XML')]
  • pdfa Boolean
    help='If you enable this option, you will not be able to password-protect the document or apply other security settings.' args: 'Archive PDF/A-1a (ISO 19005-1)'
  • permission_password Char
    string='Permission Password'
  • printing Selection
    default='2' string='Printing' args: [('0', 'Not Permitted'), ('1', 'Low Resolution (150 dpi)'), ('2', 'High Resolution')]
  • resize_windows_initial_page Boolean
    string='Resize Windows to Initial Page'
  • restrict_permissions Boolean
    args: 'Restrict Permissions'
  • tagged_pdf Boolean
    args: 'Tagged PDF (add document structure)'
  • text_access_accessibility_tools_allowed Boolean
    default=True string='Enable Text Access for Accessibility Tools'
  • watermark Boolean
    args: 'Sign With Watermark'
  • watermark_text Char
    args: 'WaterMark Text'
  • zoom Integer
    default=100 help='Possible values: from 50 to 1600' string='Zoom Factor'
Public methods (5)
  • check_pdf_options(self)
    @api.constrains('image_jpeg_quality', 'initial_page', 'pdfa', 'cross_doc_link_action', 'magnification', 'zoom')
  • encrypt_change(self)
    @api.onchange('encrypt')
  • odoo2libreoffice_options(self)
  • pdfa_change(self)
    @api.onchange('pdfa')
  • restrict_permissions_change(self)
    @api.onchange('restrict_permissions')

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (3)
  • is_active Boolean
    default=True args: 'Active'
  • pdf_options_id Many2one → py3o.pdf.options
    help='PDF options can be set per Py3o Server but also per report. If both are defined, the options on the report are used.' ondelete='restrict' string='PDF Options' args: 'py3o.pdf.options'
  • url Char
    help='If your Py3o Fusion server is on the same machine and runs on the default port, the URL is http://localhost:8765/form' required=True args: 'Py3o Fusion Server URL'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/reporting-engine
GIT
GIThttps://github.com/OCA/reporting-engine.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/reporting-engine/tree/12.0/report_py3o_fusion_server
VERSION
VERSION 1.0.2
CATEGORY
CATEGORYReporting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), ACSONE SA/NV, XCG Consulting
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), ACSONE SA/NV, XCG Consulting
COMMITTERS
COMMITTERSGitHub, Laurent Mignon (ACSONE), Enric Tobella, OCA Transbot, oca-travis, Weblate, OCA-git-bot
WEBSITE
WEBSITEhttps://github.com/OCA/reporting-engine
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:24
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/reporting-engine:
    - report_py3o
odoo/odoo:
    - web
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES py3o.formats
py3o.template
PyPDF2
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES libreoffice
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
py3o_pdf_options_form py3o.pdf.options.form py3o.pdf.options form New
py3o_pdf_options_tree py3o.pdf.options.tree py3o.pdf.options tree New
py3o_server_configuration_form_view py3o.server.configuration.form.view py3o.server form New
py3o_server_configuration_tree_view py3o.server.configuration.tree.view py3o.server tree New
view_ir_actions_report_base ir.actions.report field Inherits report_py3o.py3o_report_view
Models touched (4)

New fields (3)
  • pdf_options_id Many2one → py3o.pdf.options
    help='PDF options can be set per report, but also per Py3o Server. If both are defined, the options on the report are used.' ondelete='restrict' string='PDF Options' args: 'py3o.pdf.options'
  • py3o_is_local_fusion Boolean
    default=True help='Native formats will be processed without a server. You must use this mode if you call methods on your model into the template.' args: 'Local Fusion'
  • py3o_server_id Many2one → py3o.server
    args: 'py3o.server', 'Fusion Server'
Public methods (0)

No public methods.

New fields (40)
  • center_window Boolean
    string='Center Window on Screen'
  • changes Selection
    default='4' string='Changes' args: [('0', 'Not Permitted'), ('1', 'Inserting, Deleting and Rotating Pages'), ('2', 'Filling in Form Fields'), ('3', 'Commenting, Filling in Form Fields'), ('4', 'Any Except Extracting Pages')]
  • content_copying_allowed Boolean
    default=True string='Enable Copying of Content'
  • convert_doc_ref_to_pdf_target Boolean
    string='Convert Document References to PDF Targets'
  • cross_doc_link_action Selection
    default='0' string='Cross-document Links' args: [('0', 'Default'), ('1', 'Open with PDF Reader Application'), ('2', 'Open with Internet Browser')]
  • display_document_title Boolean
    string='Display Document Title'
  • document_password Char
    string='Document Password'
  • encrypt Boolean
    args: 'Encrypt'
  • export_bookmarks Boolean
    default=True args: 'Export Bookmarks'
  • export_bookmarks_named_dest Boolean
    string='Export Bookmarks as Named Destinations'
  • export_comments Boolean
    args: 'Export Comments'
  • export_filesystem_urls Boolean
    string='Export URLs Relative to Filesystem'
  • export_hidden_slides Boolean
    args: 'Export Automatically Insered Blank Pages'
  • export_placeholders Boolean
    default=True args: 'Export Placeholders'
  • hide_menubar Boolean
    string='Hide Menubar'
  • hide_toolbar Boolean
    string='Hide Toolbar'
  • hide_window_controls Boolean
    string='Hide Windows Controls'
  • image_compression Selection
    default='jpeg' string='Image Compression' args: [('lossless', 'Lossless Compression'), ('jpeg', 'JPEG Compression')]
  • image_jpeg_quality Integer
    default=90 help='Enter a percentage between 0 and 100.' string='Image JPEG Quality'
  • image_reduce_resolution Selection
    default='300' string='Reduce Image Resolution' args: [('none', 'Disable'), ('75', '75 DPI'), ('150', '150 DPI'), ('300', '300 DPI'), ('600', '600 DPI'), ('1200', '1200 DPI')]
  • initial_page Integer
    default=1 string='Initial Page'
  • initial_view Selection
    default='0' string='Panes' args: [('0', 'Page Only'), ('1', 'Bookmarks and Page'), ('2', 'Thumbnails and Page')]
  • magnification Selection
    default='0' string='Magnification' args: [('0', 'Default'), ('1', 'Fit in Window'), ('2', 'Fit Width'), ('3', 'Fit Visible'), ('4', 'Zoom')]
  • name Char
    required=True
  • open_bookmark_levels Selection
    default='-1' string='Visible Bookmark Levels' args: [('-1', 'All Levels'), ('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10')]
  • open_fullscreen Boolean
    string='Open in Full Screen Mode'
  • page_layout Selection
    default='0' string='Page Layout' args: [('0', 'Default'), ('1', 'Single Page'), ('2', 'Continuous'), ('3', 'Continuous Facing')]
  • pdf_form Boolean
    default=True args: 'Create PDF Form'
  • pdf_form_allow_duplicate Boolean
    args: 'Allow Duplicate Field Names'
  • pdf_form_format Selection
    default='0' string='Submit Format' args: [('0', 'FDF'), ('1', 'PDF'), ('2', 'HTML'), ('3', 'XML')]
  • pdfa Boolean
    help='If you enable this option, you will not be able to password-protect the document or apply other security settings.' args: 'Archive PDF/A-1a (ISO 19005-1)'
  • permission_password Char
    string='Permission Password'
  • printing Selection
    default='2' string='Printing' args: [('0', 'Not Permitted'), ('1', 'Low Resolution (150 dpi)'), ('2', 'High Resolution')]
  • resize_windows_initial_page Boolean
    string='Resize Windows to Initial Page'
  • restrict_permissions Boolean
    args: 'Restrict Permissions'
  • tagged_pdf Boolean
    args: 'Tagged PDF (add document structure)'
  • text_access_accessibility_tools_allowed Boolean
    default=True string='Enable Text Access for Accessibility Tools'
  • watermark Boolean
    args: 'Sign With Watermark'
  • watermark_text Char
    args: 'WaterMark Text'
  • zoom Integer
    default=100 help='Possible values: from 50 to 1600' string='Zoom Factor'
Public methods (5)
  • check_pdf_options(self)
    @api.constrains('image_jpeg_quality', 'initial_page', 'pdfa', 'cross_doc_link_action', 'magnification', 'zoom')
  • encrypt_change(self)
    @api.onchange('encrypt')
  • odoo2libreoffice_options(self)
  • pdfa_change(self)
    @api.onchange('pdfa')
  • restrict_permissions_change(self)
    @api.onchange('restrict_permissions')

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (3)
  • is_active Boolean
    default=True args: 'Active'
  • pdf_options_id Many2one → py3o.pdf.options
    help='PDF options can be set per Py3o Server but also per report. If both are defined, the options on the report are used.' ondelete='restrict' string='PDF Options' args: 'py3o.pdf.options'
  • url Char
    help='If your Py3o Fusion server is on the same machine and runs on the default port, the URL is http://localhost:8765/form' required=True args: 'Py3o Fusion Server URL'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/reporting-engine
GIT
GIThttps://github.com/OCA/reporting-engine.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/reporting-engine/tree/10.0/report_py3o_fusion_server
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYReporting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), ACSONE SA/NV, XCG Consulting
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), ACSONE SA/NV, XCG Consulting
COMMITTERS
COMMITTERSAlexis de Lattre, Holger Brunn, GitHub, OCA Transbot, oca-travis, Weblate
WEBSITE
WEBSITEhttps://github.com/OCA/reporting-engine
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:20:02
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/reporting-engine:
    - report_py3o
odoo/odoo:
    - report
    - base
    - web
    - base_setup
    - web_kanban
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES py3o.formats
py3o.template
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
py3o_pdf_options_form py3o.pdf.options.form py3o.pdf.options form New
py3o_pdf_options_tree py3o.pdf.options.tree py3o.pdf.options tree New
py3o_server_configuration_form_view py3o.server.configuration.form.view py3o.server form New
py3o_server_configuration_tree_view py3o.server.configuration.tree.view py3o.server tree New
view_ir_actions_report_base ir.actions.report.xml field Inherits report_py3o.py3o_report_view
Models touched (4)

New fields (3)
  • pdf_options_id Many2one → py3o.pdf.options
    help='PDF options can be set per report, but also per Py3o Server. If both are defined, the options on the report are used.' ondelete='restrict' string='PDF Options' args: 'py3o.pdf.options'
  • py3o_is_local_fusion Boolean
    default=True help='Native formats will be processed without a server. You must use this mode if you call methods on your model into the template.' args: 'Local Fusion'
  • py3o_server_id Many2one → py3o.server
    args: 'py3o.server', 'Fusion Server'
Public methods (0)

No public methods.

New fields (40)
  • center_window Boolean
    string='Center Window on Screen'
  • changes Selection
    default='4' string='Changes' args: [('0', 'Not Permitted'), ('1', 'Inserting, Deleting and Rotating Pages'), ('2', 'Filling in Form Fields'), ('3', 'Commenting, Filling in Form Fields'), ('4', 'Any Except Extracting Pages')]
  • content_copying_allowed Boolean
    default=True string='Enable Copying of Content'
  • convert_doc_ref_to_pdf_target Boolean
    string='Convert Document References to PDF Targets'
  • cross_doc_link_action Selection
    default='0' string='Cross-document Links' args: [('0', 'Default'), ('1', 'Open with PDF Reader Application'), ('2', 'Open with Internet Browser')]
  • display_document_title Boolean
    string='Display Document Title'
  • document_password Char
    string='Document Password'
  • encrypt Boolean
    args: 'Encrypt'
  • export_bookmarks Boolean
    default=True args: 'Export Bookmarks'
  • export_bookmarks_named_dest Boolean
    string='Export Bookmarks as Named Destinations'
  • export_comments Boolean
    args: 'Export Comments'
  • export_filesystem_urls Boolean
    string='Export URLs Relative to Filesystem'
  • export_hidden_slides Boolean
    args: 'Export Automatically Insered Blank Pages'
  • export_placeholders Boolean
    default=True args: 'Export Placeholders'
  • hide_menubar Boolean
    string='Hide Menubar'
  • hide_toolbar Boolean
    string='Hide Toolbar'
  • hide_window_controls Boolean
    string='Hide Windows Controls'
  • image_compression Selection
    default='jpeg' string='Image Compression' args: [('lossless', 'Lossless Compression'), ('jpeg', 'JPEG Compression')]
  • image_jpeg_quality Integer
    default=90 help='Enter a percentage between 0 and 100.' string='Image JPEG Quality'
  • image_reduce_resolution Selection
    default='300' string='Reduce Image Resolution' args: [('none', 'Disable'), ('75', '75 DPI'), ('150', '150 DPI'), ('300', '300 DPI'), ('600', '600 DPI'), ('1200', '1200 DPI')]
  • initial_page Integer
    default=1 string='Initial Page'
  • initial_view Selection
    default='0' string='Panes' args: [('0', 'Page Only'), ('1', 'Bookmarks and Page'), ('2', 'Thumbnails and Page')]
  • magnification Selection
    default='0' string='Magnification' args: [('0', 'Default'), ('1', 'Fit in Window'), ('2', 'Fit Width'), ('3', 'Fit Visible'), ('4', 'Zoom')]
  • name Char
    required=True
  • open_bookmark_levels Selection
    default='-1' string='Visible Bookmark Levels' args: [('-1', 'All Levels'), ('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10')]
  • open_fullscreen Boolean
    string='Open in Full Screen Mode'
  • page_layout Selection
    default='0' string='Page Layout' args: [('0', 'Default'), ('1', 'Single Page'), ('2', 'Continuous'), ('3', 'Continuous Facing')]
  • pdf_form Boolean
    default=True args: 'Create PDF Form'
  • pdf_form_allow_duplicate Boolean
    args: 'Allow Duplicate Field Names'
  • pdf_form_format Selection
    default='0' string='Submit Format' args: [('0', 'FDF'), ('1', 'PDF'), ('2', 'HTML'), ('3', 'XML')]
  • pdfa Boolean
    help='If you enable this option, you will not be able to password-protect the document or apply other security settings.' args: 'Archive PDF/A-1a (ISO 19005-1)'
  • permission_password Char
    string='Permission Password'
  • printing Selection
    default='2' string='Printing' args: [('0', 'Not Permitted'), ('1', 'Low Resolution (150 dpi)'), ('2', 'High Resolution')]
  • resize_windows_initial_page Boolean
    string='Resize Windows to Initial Page'
  • restrict_permissions Boolean
    args: 'Restrict Permissions'
  • tagged_pdf Boolean
    args: 'Tagged PDF (add document structure)'
  • text_access_accessibility_tools_allowed Boolean
    default=True string='Enable Text Access for Accessibility Tools'
  • watermark Boolean
    args: 'Sign With Watermark'
  • watermark_text Char
    args: 'WaterMark Text'
  • zoom Integer
    default=100 help='Possible values: from 50 to 1600' string='Zoom Factor'
Public methods (5)
  • check_pdf_options(self)
    @api.constrains('image_jpeg_quality', 'initial_page', 'pdfa', 'cross_doc_link_action', 'magnification', 'zoom')
  • encrypt_change(self)
    @api.onchange('encrypt')
  • odoo2libreoffice_options(self)
  • pdfa_change(self)
    @api.onchange('pdfa')
  • restrict_permissions_change(self)
    @api.onchange('restrict_permissions')

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (3)
  • is_active Boolean
    default=True args: 'Active'
  • pdf_options_id Many2one → py3o.pdf.options
    help='PDF options can be set per Py3o Server but also per report. If both are defined, the options on the report are used.' ondelete='restrict' string='PDF Options' args: 'py3o.pdf.options'
  • url Char
    help='If your Py3o Fusion server is on the same machine and runs on the default port, the URL is http://localhost:8765/form' required=True args: 'Py3o Fusion Server URL'
Public methods (0)

No public methods.

STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/reporting-engine
PULL REQUEST
PULL REQUEST[19.0][MIG] report_py3o_fusion_server: Migration to 19.0 (#1133)