Base Comments Templates

base_comment_template
REPOSITORY
REPOSITORYOCA/reporting-engine
GIT
GIThttps://github.com/OCA/reporting-engine.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/reporting-engine/tree/19.0/base_comment_template
VERSION
VERSION 0.0.0
CATEGORY
CATEGORYReporting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, Mihai Fekete, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/reporting-engine
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:40:46
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Add a new mixin class to define templates of comments to print on
documents. The comment templates can be defined like make templates, so
you can use variables from linked models.

Two positions are available for the comments:

- above document lines (before_lines)
- below document lines (after_lines)

The template are general, and can be attached to any Model and based on
some domain defined in the template. You can define one default template
per Model and domain, which can be overwritten for any company and
partners. It has a priority field (smaller number = higher priority)

In existing reports, if you add this line will get the comment template
if you created one like

- \<span
  t-out="o.get_comment_template('position',company_id=o.company_id,
  partner_id=o.parnter_id )"/\> ( or without any parameter)

This module is the base module for following modules:

- sale_comment_template
- purchase_comment_template
- account_comment_template
- stock_picking_comment_template

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
base_comment_template_preview_form base.comment.template.preview.form base.comment.template.preview form New
view_base_comment_template_form base.comment.template.form base.comment.template form New
view_base_comment_template_search base.comment.template.search base.comment.template search New
view_base_comment_template_tree base.comment.template.search base.comment.template list New
view_partner_form res.partner page Inherits base.view_partner_form
Models touched (5)

New fields (12)
  • active Boolean
    default=True
  • company_id Many2one → res.company
    comodel_name='res.company' help='If set, the comment template will be available only for the selected company.' index=True ondelete='cascade' string='Company'
  • domain Char
    default='[]' help='This comment template will be available only for objects that satisfy the condition' required=True string='Filter Domain'
  • engine Selection
    default='inline_template' help='This field allows to select the engine to use for rendering the template.' required=True selection=[('inline_template', 'Inline Template'), ('qweb', 'QWeb'), ('qweb_view', 'QWeb View')]
  • global_template Boolean
  • model_ids Many2many → ir.model
    comodel_name='ir.model' compute='_compute_model_ids' compute_sudo=True help='This comment template will be available on this models. You can see here only models allowed to set the coment template.' search='_search_model_ids' string='IR Model'
  • models Text
    required=True
  • name Char
    help='Name/description of this comment template' required=True translate=True
  • partner_ids Many2many → res.partner
    column1='base_comment_template_id' column2='res_partner_id' comodel_name='res.partner' help='If set, the comment template will be available only for the selected partner.' relation='base_comment_template_res_partner_rel' string='Partner'
  • position Selection
    default='before_lines' help='This field allows to select the position of the comment on reports.' required=True selection=[('before_lines', 'Top'), ('after_lines', 'Bottom')] string='Position on document'
  • sequence Integer
    default=10 help='The smaller number = The higher priority' required=True
  • text Html
    help='This is the text template that will be inserted into reports.' required=True sanitize=False string='Template' translate=True
Public methods (1)
  • check_models(self)
    @api.constrains('models')
    Avoid non-existing or not allowed models (is_comment_template=True)

New fields (8)
  • base_comment_template_id Many2one → base.comment.template
    ondelete='cascade' required=True args: 'base.comment.template'
  • body Char
    compute='_compute_base_comment_template_fields'
  • engine Selection
    default='inline_template' string='Template Preview Engine' args: [('inline_template', 'Inline template'), ('qweb', 'QWeb'), ('qweb_view', 'QWeb view')]
  • lang Selection
    string='Template Preview Language' args: _lang_get
  • model_id Many2one → ir.model
    args: 'ir.model'
  • model_ids Many2many → ir.model
    related='base_comment_template_id.model_ids' args: 'ir.model'
  • no_record Boolean
    compute='_compute_no_record'
  • resource_ref Reference
    selection='_selection_target_model' string='Record reference'
Public methods (1)
  • default_get(self, fields)
    @api.model

New fields (1)
  • comment_template_ids Many2many → base.comment.template
    comodel_name='base.comment.template' compute='_compute_comment_template_ids' compute_sudo=True domain=<expr> readonly=False store=True string='Comment Template'
Public methods (1)
  • render_comment(self, comment, engine=False, add_context=None, options=None)

New fields (1)
  • is_comment_template Boolean
    default=False help='Whether this model supports in reports to add comment templates.' string='Comment Template'
Public methods (0)

No public methods.

New fields (1)
  • base_comment_template_ids Many2many → base.comment.template
    column1='res_partner_id' column2='base_comment_template_id' comodel_name='base.comment.template' domain=[('global_template', '=', False)] help='Specific partner comments that can be included in reports' relation='base_comment_template_res_partner_rel' string='Comment Templates'
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/18.0/base_comment_template
VERSION
VERSION 1.1.2
CATEGORY
CATEGORYReporting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSEnric Tobella, Weblate, OCA-git-bot, oca-ci, Maksym Yankin, Ricardoalso, Aungkokolin1997, Luis Rodriguez
WEBSITE
WEBSITEhttps://github.com/OCA/reporting-engine
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:07
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Add a new mixin class to define templates of comments to print on
documents. The comment templates can be defined like make templates, so
you can use variables from linked models.

Two positions are available for the comments:

- above document lines (before_lines)
- below document lines (after_lines)

The template are general, and can be attached to any Model and based on
some domain defined in the template. You can define one default template
per Model and domain, which can be overwritten for any company and
partners. It has a priority field (smaller number = higher priority)

In existing reports, if you add this line will get the comment template
if you created one like

- \<span
  t-out="o.get_comment_template('position',company_id=o.company_id,
  partner_id=o.parnter_id )"/\> ( or without any parameter)

This module is the base module for following modules:

- sale_comment_template
- purchase_comment_template
- account_comment_template
- stock_picking_comment_template

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
base_comment_template_preview_form base.comment.template.preview.form base.comment.template.preview form New
view_base_comment_template_form base.comment.template.form base.comment.template form New
view_base_comment_template_search base.comment.template.search base.comment.template search New
view_base_comment_template_tree base.comment.template.search base.comment.template list New
view_partner_form res.partner page Inherits base.view_partner_form
Models touched (5)

New fields (12)
  • active Boolean
    default=True
  • company_id Many2one → res.company
    comodel_name='res.company' help='If set, the comment template will be available only for the selected company.' index=True ondelete='cascade' string='Company'
  • domain Char
    default='[]' help='This comment template will be available only for objects that satisfy the condition' required=True string='Filter Domain'
  • engine Selection
    default='inline_template' help='This field allows to select the engine to use for rendering the template.' required=True selection=[('inline_template', 'Inline Template'), ('qweb', 'QWeb'), ('qweb_view', 'QWeb View')]
  • global_template Boolean
  • model_ids Many2many → ir.model
    comodel_name='ir.model' compute='_compute_model_ids' compute_sudo=True help='This comment template will be available on this models. You can see here only models allowed to set the coment template.' search='_search_model_ids' string='IR Model'
  • models Text
    required=True
  • name Char
    help='Name/description of this comment template' required=True translate=True
  • partner_ids Many2many → res.partner
    column1='base_comment_template_id' column2='res_partner_id' comodel_name='res.partner' help='If set, the comment template will be available only for the selected partner.' relation='base_comment_template_res_partner_rel' string='Partner'
  • position Selection
    default='before_lines' help='This field allows to select the position of the comment on reports.' required=True selection=[('before_lines', 'Top'), ('after_lines', 'Bottom')] string='Position on document'
  • sequence Integer
    default=10 help='The smaller number = The higher priority' required=True
  • text Html
    help='This is the text template that will be inserted into reports.' required=True sanitize=False string='Template' translate=True
Public methods (1)
  • check_models(self)
    @api.constrains('models')
    Avoid non-existing or not allowed models (is_comment_template=True)

New fields (8)
  • base_comment_template_id Many2one → base.comment.template
    ondelete='cascade' required=True args: 'base.comment.template'
  • body Char
    compute='_compute_base_comment_template_fields'
  • engine Selection
    default='inline_template' string='Template Preview Engine' args: [('inline_template', 'Inline template'), ('qweb', 'QWeb'), ('qweb_view', 'QWeb view')]
  • lang Selection
    string='Template Preview Language' args: _lang_get
  • model_id Many2one → ir.model
    args: 'ir.model'
  • model_ids Many2many → ir.model
    related='base_comment_template_id.model_ids' args: 'ir.model'
  • no_record Boolean
    compute='_compute_no_record'
  • resource_ref Reference
    selection='_selection_target_model' string='Record reference'
Public methods (1)
  • default_get(self, fields)
    @api.model

New fields (1)
  • comment_template_ids Many2many → base.comment.template
    comodel_name='base.comment.template' compute='_compute_comment_template_ids' compute_sudo=True domain=<expr> readonly=False store=True string='Comment Template'
Public methods (1)
  • render_comment(self, comment, engine=False, add_context=None, options=None)

New fields (1)
  • is_comment_template Boolean
    default=False help='Whether this model supports in reports to add comment templates.' string='Comment Template'
Public methods (0)

No public methods.

New fields (1)
  • base_comment_template_ids Many2many → base.comment.template
    column1='res_partner_id' column2='base_comment_template_id' comodel_name='base.comment.template' domain=[('global_template', '=', False)] help='Specific partner comments that can be included in reports' relation='base_comment_template_res_partner_rel' string='Comment Templates'
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/17.0/base_comment_template
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYReporting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSEnric Tobella, Weblate, OCA-git-bot, Jesús Alan Ramos Rodríguez, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/reporting-engine
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:00
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Add a new mixin class to define templates of comments to print on
documents. The comment templates can be defined like make templates, so
you can use variables from linked models.

Two positions are available for the comments:

- above document lines (before_lines)
- below document lines (after_lines)

The template are general, and can be attached to any Model and based on
some domain defined in the template. You can define one default template
per Model and domain, which can be overwritten for any company and
partners. It has a priority field (smaller number = higher priority)

In existing reports, if you add this line will get the comment template
if you created one like

- \<span
  t-out="o.get_comment_template('position',company_id=o.company_id,
  partner_id=o.parnter_id )"/\> ( or without any parameter)

This module is the base module for following modules:

- sale_comment_template
- purchase_comment_template
- account_comment_template
- stock_picking_comment_template

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
base_comment_template_preview_form base.comment.template.preview.form base.comment.template.preview form New
view_base_comment_template_form base.comment.template.form base.comment.template form New
view_base_comment_template_search base.comment.template.search base.comment.template search New
view_base_comment_template_tree base.comment.template.search base.comment.template tree New
view_partner_form res.partner page Inherits base.view_partner_form
Models touched (5)

New fields (12)
  • active Boolean
    default=True
  • company_id Many2one → res.company
    comodel_name='res.company' help='If set, the comment template will be available only for the selected company.' index=True ondelete='cascade' string='Company'
  • domain Char
    default='[]' help='This comment template will be available only for objects that satisfy the condition' required=True string='Filter Domain'
  • engine Selection
    default='inline_template' help='This field allows to select the engine to use for rendering the template.' required=True selection=[('inline_template', 'Inline Template'), ('qweb', 'QWeb'), ('qweb_view', 'QWeb View')]
  • global_template Boolean
  • model_ids Many2many → ir.model
    comodel_name='ir.model' compute='_compute_model_ids' compute_sudo=True help='This comment template will be available on this models. You can see here only models allowed to set the coment template.' search='_search_model_ids' string='IR Model'
  • models Text
    required=True
  • name Char
    help='Name/description of this comment template' required=True translate=True
  • partner_ids Many2many → res.partner
    column1='base_comment_template_id' column2='res_partner_id' comodel_name='res.partner' help='If set, the comment template will be available only for the selected partner.' readonly=True relation='base_comment_template_res_partner_rel' string='Partner'
  • position Selection
    default='before_lines' help='This field allows to select the position of the comment on reports.' required=True selection=[('before_lines', 'Top'), ('after_lines', 'Bottom')] string='Position on document'
  • sequence Integer
    default=10 help='The smaller number = The higher priority' required=True
  • text Html
    help='This is the text template that will be inserted into reports.' required=True sanitize=False string='Template' translate=True
Public methods (1)
  • check_models(self)
    @api.constrains('models')
    Avoid non-existing or not allowed models (is_comment_template=True)

New fields (8)
  • base_comment_template_id Many2one → base.comment.template
    ondelete='cascade' required=True args: 'base.comment.template'
  • body Char
    compute='_compute_base_comment_template_fields'
  • engine Selection
    default='inline_template' string='Template Preview Engine' args: [('inline_template', 'Inline template'), ('qweb', 'QWeb'), ('qweb_view', 'QWeb view')]
  • lang Selection
    string='Template Preview Language' args: _lang_get
  • model_id Many2one → ir.model
    args: 'ir.model'
  • model_ids Many2many → ir.model
    related='base_comment_template_id.model_ids' args: 'ir.model'
  • no_record Boolean
    compute='_compute_no_record'
  • resource_ref Reference
    selection='_selection_target_model' string='Record reference'
Public methods (1)
  • default_get(self, fields)
    @api.model

New fields (1)
  • comment_template_ids Many2many → base.comment.template
    comodel_name='base.comment.template' compute='_compute_comment_template_ids' compute_sudo=True domain=<expr> readonly=False store=True string='Comment Template'
Public methods (1)
  • render_comment(self, comment, engine=False, add_context=None, options=None)

New fields (1)
  • is_comment_template Boolean
    default=False help='Whether this model supports in reports to add comment templates.' string='Comment Template'
Public methods (0)

No public methods.

New fields (1)
  • base_comment_template_ids Many2many → base.comment.template
    column1='res_partner_id' column2='base_comment_template_id' comodel_name='base.comment.template' domain=[('global_template', '=', False)] help='Specific partner comments that can be included in reports' relation='base_comment_template_res_partner_rel' string='Comment Templates'
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/base_comment_template
VERSION
VERSION 2.3.0
CATEGORY
CATEGORYReporting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSVíctor Martínez, AaronHForgeFlow, Weblate, OCA-git-bot, Jesús Alan Ramos Rodríguez, oca-ci, Emilio Pascual, matteo.tognini, Luis Rodriguez, Achraf Mhadhbi
WEBSITE
WEBSITEhttps://github.com/OCA/reporting-engine
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:57
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
base_comment_template_preview_form base.comment.template.preview.form base.comment.template.preview form New
view_base_comment_template_form base.comment.template.form base.comment.template form New
view_base_comment_template_search base.comment.template.search base.comment.template search New
view_base_comment_template_tree base.comment.template.search base.comment.template tree New
view_partner_form res.partner page Inherits base.view_partner_form
Models touched (5)

New fields (12)
  • active Boolean
    default=True
  • company_id Many2one → res.company
    comodel_name='res.company' help='If set, the comment template will be available only for the selected company.' index=True ondelete='cascade' string='Company'
  • domain Char
    default='[]' help='This comment template will be available only for objects that satisfy the condition' required=True string='Filter Domain'
  • engine Selection
    default='inline_template' help='This field allows to select the engine to use for rendering the template.' required=True selection=[('inline_template', 'Inline Template'), ('qweb', 'QWeb'), ('qweb_view', 'QWeb View')]
  • global_template Boolean
  • model_ids Many2many → ir.model
    comodel_name='ir.model' compute='_compute_model_ids' compute_sudo=True help='This comment template will be available on this models. You can see here only models allowed to set the coment template.' search='_search_model_ids' string='IR Model'
  • models Text
    required=True
  • name Char
    help='Name/description of this comment template' required=True translate=True
  • partner_ids Many2many → res.partner
    column1='base_comment_template_id' column2='res_partner_id' comodel_name='res.partner' help='If set, the comment template will be available only for the selected partner.' readonly=True relation='base_comment_template_res_partner_rel' string='Partner'
  • position Selection
    default='before_lines' help='This field allows to select the position of the comment on reports.' required=True selection=[('before_lines', 'Top'), ('after_lines', 'Bottom')] string='Position on document'
  • sequence Integer
    default=10 help='The smaller number = The higher priority' required=True
  • text Html
    help='This is the text template that will be inserted into reports.' required=True sanitize=False string='Template' translate=True
Public methods (2)
  • check_models(self)
    @api.constrains('models')
    Avoid non-existing or not allowed models (is_comment_template=True)
  • name_get(self)
    Redefine the name_get method to show the template name with the position.

New fields (8)
  • base_comment_template_id Many2one → base.comment.template
    ondelete='cascade' required=True args: 'base.comment.template'
  • body Char
    compute='_compute_base_comment_template_fields'
  • engine Selection
    default='inline_template' string='Template Preview Engine' args: [('inline_template', 'Inline template'), ('qweb', 'QWeb'), ('qweb_view', 'QWeb view')]
  • lang Selection
    string='Template Preview Language' args: _lang_get
  • model_id Many2one → ir.model
    args: 'ir.model'
  • model_ids Many2many → ir.model
    related='base_comment_template_id.model_ids' args: 'ir.model'
  • no_record Boolean
    compute='_compute_no_record'
  • resource_ref Reference
    selection='_selection_target_model' string='Record reference'
Public methods (1)
  • default_get(self, fields)
    @api.model

New fields (1)
  • comment_template_ids Many2many → base.comment.template
    comodel_name='base.comment.template' compute='_compute_comment_template_ids' compute_sudo=True domain=<expr> readonly=False store=True string='Comment Template'
Public methods (1)
  • render_comment(self, comment, engine=False, add_context=None, post_process=False)

New fields (1)
  • is_comment_template Boolean
    default=False help='Whether this model supports in reports to add comment templates.' string='Comment Template'
Public methods (0)

No public methods.

New fields (1)
  • base_comment_template_ids Many2many → base.comment.template
    column1='res_partner_id' column2='base_comment_template_id' comodel_name='base.comment.template' domain=[('global_template', '=', False)] help='Specific partner comments that can be included in reports' relation='base_comment_template_res_partner_rel' string='Comment Templates'
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/15.0/base_comment_template
VERSION
VERSION 3.0.4
CATEGORY
CATEGORYReporting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSVíctor Martínez, AaronHForgeFlow, Weblate, OCA-git-bot, oca-ci, Emilio Pascual, Luis Rodriguez, Bearnard21, Phil Gaiser
WEBSITE
WEBSITEhttps://github.com/OCA/reporting-engine
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:42
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
base_comment_template_preview_form base.comment.template.preview.form base.comment.template.preview form New
view_base_comment_template_form base.comment.template.form base.comment.template form New
view_base_comment_template_search base.comment.template.search base.comment.template search New
view_base_comment_template_tree base.comment.template.search base.comment.template tree New
view_partner_form res.partner page Inherits base.view_partner_form
Models touched (5)

New fields (11)
  • active Boolean
    default=True
  • company_id Many2one → res.company
    comodel_name='res.company' help='If set, the comment template will be available only for the selected company.' index=True ondelete='cascade' string='Company'
  • domain Char
    default='[]' help='This comment template will be available only for objects that satisfy the condition' required=True string='Filter Domain'
  • global_template Boolean
  • model_ids Many2many → ir.model
    comodel_name='ir.model' compute='_compute_model_ids' compute_sudo=True help='This comment template will be available on this models. You can see here only models allowed to set the coment template.' search='_search_model_ids' string='IR Model'
  • models Text
    required=True
  • name Char
    help='Name/description of this comment template' required=True translate=True
  • partner_ids Many2many → res.partner
    column1='base_comment_template_id' column2='res_partner_id' comodel_name='res.partner' help='If set, the comment template will be available only for the selected partner.' readonly=True relation='base_comment_template_res_partner_rel' string='Partner'
  • position Selection
    default='before_lines' help='This field allows to select the position of the comment on reports.' required=True selection=[('before_lines', 'Top'), ('after_lines', 'Bottom')] string='Position on document'
  • sequence Integer
    default=10 help='The smaller number = The higher priority' required=True
  • text Html
    help='This is the text template that will be inserted into reports.' required=True sanitize=False string='Template' translate=True
Public methods (2)
  • check_models(self)
    @api.constrains('models')
    Avoid non-existing or not allowed models (is_comment_template=True)
  • name_get(self)
    Redefine the name_get method to show the template name with the position.

New fields (8)
  • base_comment_template_id Many2one → base.comment.template
    ondelete='cascade' required=True args: 'base.comment.template'
  • body Char
    compute='_compute_base_comment_template_fields'
  • engine Selection
    default='inline_template' string='Template Preview Engine' args: [('inline_template', 'Inline template'), ('qweb', 'QWeb'), ('qweb_view', 'QWeb view')]
  • lang Selection
    string='Template Preview Language' args: _lang_get
  • model_id Many2one → ir.model
    args: 'ir.model'
  • model_ids Many2many → ir.model
    related='base_comment_template_id.model_ids' args: 'ir.model'
  • no_record Boolean
    compute='_compute_no_record'
  • resource_ref Reference
    selection='_selection_target_model' string='Record reference'
Public methods (1)
  • default_get(self, fields)
    @api.model

New fields (1)
  • comment_template_ids Many2many → base.comment.template
    comodel_name='base.comment.template' compute='_compute_comment_template_ids' compute_sudo=True domain=<expr> readonly=False store=True string='Comment Template'
Public methods (1)
  • render_comment(self, comment, engine='inline_template', add_context=None, post_process=False)

New fields (1)
  • is_comment_template Boolean
    default=False help='Whether this model supports in reports to add comment templates.' string='Comment Template'
Public methods (0)

No public methods.

New fields (1)
  • base_comment_template_ids Many2many → base.comment.template
    column1='res_partner_id' column2='base_comment_template_id' comodel_name='base.comment.template' domain=[('global_template', '=', False)] help='Specific partner comments that can be included in reports' relation='base_comment_template_res_partner_rel' string='Comment Templates'
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/base_comment_template
VERSION
VERSION 4.0.2
CATEGORY
CATEGORYReporting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSPedro M. Baeza, GitHub, Enric Tobella, Pierre Verkest, OCA Transbot, Víctor Martínez, João Marques, oca-travis, Weblate, OCA-git-bot, Mihai Fekete, oca-ci, Héctor Villarreal Ortega, Héctor Vi Or, Ashish Hirpara
WEBSITE
WEBSITEhttps://github.com/OCA/reporting-engine
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:10
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
base_comment_template_preview_form base.comment.template.preview.form base.comment.template.preview form New
view_base_comment_template_form base.comment.template.form base.comment.template form New
view_base_comment_template_search base.comment.template.search base.comment.template search New
view_base_comment_template_tree base.comment.template.search base.comment.template tree New
view_partner_form res.partner page Inherits base.view_partner_form
Models touched (5)

New fields (9)
  • active Boolean
    default=True
  • company_id Many2one → res.company
    comodel_name='res.company' help='If set, the comment template will be available only for the selected company.' index=True ondelete='cascade' string='Company'
  • domain Char
    default='[]' help='This comment template will be available only for objects that satisfy the condition' required=True string='Filter Domain'
  • model_ids Many2many → ir.model
    comodel_name='ir.model' domain=[('is_comment_template', '=', True), ('model', '!=', 'comment.template')] help='This comment template will be available on this models. You can see here only models allowed to set the coment template.' ondelete='cascade' required=True string='IR Model'
  • name Char
    help='Name/description of this comment template' required=True string='Name' translate=True
  • partner_ids Many2many → res.partner
    column1='base_comment_template_id' column2='res_partner_id' comodel_name='res.partner' help='If set, the comment template will be available only for the selected partner.' readonly=True relation='base_comment_template_res_partner_rel' string='Partner'
  • position Selection
    default='before_lines' help='This field allows to select the position of the comment on reports.' required=True selection=[('before_lines', 'Top'), ('after_lines', 'Bottom')] string='Position on document'
  • sequence Integer
    default=10 help='The smaller number = The higher priority' required=True
  • text Html
    help='This is the text template that will be inserted into reports.' required=True sanitize=False string='Template' translate=True
Public methods (1)
  • name_get(self)
    Redefine the name_get method to show the template name with the position.

New fields (8)
  • base_comment_template_id Many2one → base.comment.template
    ondelete='cascade' required=True args: 'base.comment.template'
  • body Char
    compute='_compute_base_comment_template_fields' args: 'Body'
  • engine Selection
    default='jinja' string='Template Preview Engine' args: [('jinja', 'Jinja'), ('qweb', 'QWeb')]
  • lang Selection
    string='Template Preview Language' args: _selection_languages
  • model_id Many2one → ir.model
    args: 'ir.model'
  • model_ids Many2many → ir.model
    related='base_comment_template_id.model_ids' args: 'ir.model'
  • no_record Boolean
    compute='_compute_no_record' args: 'No Record'
  • resource_ref Reference
    selection='_selection_target_model' string='Record reference'
Public methods (1)
  • default_get(self, fields)
    @api.model

New fields (1)
  • comment_template_ids Many2many → base.comment.template
    comodel_name='base.comment.template' compute='_compute_comment_template_ids' domain=<expr> readonly=False store=True string='Comment Template'
Public methods (1)
  • render_comment(self, comment, engine='jinja', add_context=None, post_process=False)

New fields (1)
  • is_comment_template Boolean
    default=False help='Whether this model supports in reports to add comment templates.' string='Comment Template'
Public methods (0)

No public methods.

New fields (1)
  • base_comment_template_ids Many2many → base.comment.template
    column1='res_partner_id' column2='base_comment_template_id' comodel_name='base.comment.template' help='Specific partner comments that can be included in reports' relation='base_comment_template_res_partner_rel' string='Comment Templates'
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/base_comment_template
VERSION
VERSION 3.0.3
CATEGORY
CATEGORYReporting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSPedro M. Baeza, OCA Transbot, Víctor Martínez, oca-travis, Weblate, OCA-git-bot, Carlos Roca
WEBSITE
WEBSITEhttps://github.com/OCA/reporting-engine
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:19
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
view_base_comment_template_form base.comment.template.form base.comment.template form New
view_base_comment_template_search base.comment.template.search base.comment.template search New
view_base_comment_template_tree base.comment.template.search base.comment.template tree New
view_partner_form res.partner page Inherits base.view_partner_form
Models touched (4)

New fields (9)
  • active Boolean
    default=True
  • company_id Many2one → res.company
    comodel_name='res.company' help='If set, the comment template will be available only for the selected company.' index=True ondelete='cascade' string='Company'
  • domain Char
    default='[]' help='This comment template will be available only for objects that satisfy the condition' required=True string='Filter Domain'
  • model_ids Many2many → ir.model
    comodel_name='ir.model' domain=[('is_comment_template', '=', True), ('model', '!=', 'comment.template')] help='This comment template will be available on this models. You can see here only models allowed to set the coment template.' ondelete='cascade' required=True string='IR Model'
  • name Char
    help='Name/description of this comment template' required=True string='Name' translate=True
  • partner_ids Many2many → res.partner
    column1='base_comment_template_id' column2='res_partner_id' comodel_name='res.partner' help='If set, the comment template will be available only for the selected partner.' readonly=True relation='base_comment_template_res_partner_rel' string='Partner'
  • position Selection
    default='before_lines' help='This field allows to select the position of the comment on reports.' required=True selection=[('before_lines', 'Top'), ('after_lines', 'Bottom')] string='Position on document'
  • sequence Integer
    default=10 help='The smaller number = The higher priority' required=True
  • text Html
    help='This is the text template that will be inserted into reports.' required=True sanitize=False string='Template' translate=True
Public methods (1)
  • name_get(self)
    Redefine the name_get method to show the template name with the position.

New fields (1)
  • comment_template_ids Many2many → base.comment.template
    comodel_name='base.comment.template' compute='_compute_comment_template_ids' domain=<expr> readonly=False store=True string='Comment Template'
Public methods (0)

No public methods.

New fields (1)
  • is_comment_template Boolean
    default=False help='Whether this model supports in reports to add comment templates.' string='Comment Template'
Public methods (0)

No public methods.

New fields (1)
  • base_comment_template_ids Many2many → base.comment.template
    column1='res_partner_id' column2='base_comment_template_id' comodel_name='base.comment.template' help='Specific partner comments that can be included in reports' relation='base_comment_template_res_partner_rel' string='Comment Templates'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/account-invoice-reporting
GIT
GIThttps://github.com/OCA/account-invoice-reporting.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-invoice-reporting/tree/12.0/base_comment_template
VERSION
VERSION 3.0.0
CATEGORY
CATEGORYSale
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSAlexandre Fayolle, Pedro M. Baeza, OCA Transbot, oca-travis, Weblate, OCA-git-bot, Iván Todorovich, Raf Ven
WEBSITE
WEBSITEhttps://github.com/OCA/account-invoice-reporting
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:25
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
view_base_comment_template_form base.comment.template.form base.comment.template form New
view_base_comment_template_search base.comment.template.search base.comment.template search New
view_base_comment_template_tree account.comment.template.list base.comment.template tree New
view_partner_form res.partner group Inherits base.view_partner_form
Models touched (2)

New fields (5)
  • active Boolean
    default=True
  • company_id Many2one → res.company
    help="If set, it'll only be available for this company" index=True ondelete='cascade' string='Company' args: 'res.company'
  • name Char
    required=True string='Comment summary'
  • position Selection
    default='before_lines' help='Position on document' required=True selection=[('before_lines', 'Before lines'), ('after_lines', 'After lines')]
  • text Html
    required=True string='Comment' translate=True
Public methods (1)
  • get_value(self, partner_id=False)
    @api.multi

New fields (1)
  • property_comment_template_id Many2one → base.comment.template
    comodel_name='base.comment.template' company_dependent=True string='Conditions template'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/account-invoice-reporting
GIT
GIThttps://github.com/OCA/account-invoice-reporting.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-invoice-reporting/tree/11.0/base_comment_template
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYSale
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSPedro M. Baeza, OCA Transbot, oca-travis, Weblate, OCA-git-bot, OCA Git Bot
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:24:02
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
view_base_comment_template_form base.comment.template.form base.comment.template form New
view_base_comment_template_search base.comment.template.search base.comment.template search New
view_base_comment_template_tree account.comment.template.list base.comment.template tree New
Models touched (1)

New fields (3)
  • name Char
    required=True args: 'Comment summary'
  • position Selection
    default='before_lines' help='Position on document' required=True args: [('before_lines', 'Before lines'), ('after_lines', 'After lines')], 'Position'
  • text Html
    required=True translate=True args: 'Comment'
Public methods (1)
  • get_value(self, partner_id=False)
    @api.multi
REPOSITORY
REPOSITORYOCA/account-invoice-reporting
GIT
GIThttps://github.com/OCA/account-invoice-reporting.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-invoice-reporting/tree/10.0/base_comment_template
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYSale
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSPedro M. Baeza, Stéphane Bidoul (ACSONE), OCA Transbot, oca-travis, Weblate, OCA-git-bot, Simone Rubino
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:20:02
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
view_base_comment_template_form base.comment.template.form base.comment.template form New
view_base_comment_template_search base.comment.template.search base.comment.template search New
view_base_comment_template_tree account.comment.template.list base.comment.template tree New
Models touched (1)

New fields (3)
  • name Char
    required=True args: 'Comment summary'
  • position Selection
    default='before_lines' help='Position on document' required=True args: [('before_lines', 'Before lines'), ('after_lines', 'After lines')], 'Position'
  • text Html
    required=True translate=True args: 'Comment'
Public methods (1)
  • get_value(self, partner_id=False)
    @api.multi
REPOSITORY
REPOSITORYOCA/account-invoice-reporting
GIT
GIThttps://github.com/OCA/account-invoice-reporting.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-invoice-reporting/tree/9.0/base_comment_template
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYSale
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSYannick Vaucher, Pedro M. Baeza, Stéphane Bidoul (ACSONE), OCA Transbot, oca-travis, Weblate, OCA-git-bot
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:15:24
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
view_base_comment_template_form base.comment.template.form base.comment.template form New
view_base_comment_template_search base.comment.template.search base.comment.template search New
view_base_comment_template_tree account.comment.template.list base.comment.template tree New
Models touched (1)

New fields (3)
  • name Char
    required=True args: 'Comment summary'
  • position Selection
    default='before_lines' help='Position on document' required=True args: [('before_lines', 'Before lines'), ('after_lines', 'After lines')], 'Position'
  • text Html
    required=True translate=True args: 'Comment'
Public methods (1)
  • get_value(self, partner_id=False)
    @api.multi
REPOSITORY
REPOSITORYOCA/account-invoice-reporting
GIT
GIThttps://github.com/OCA/account-invoice-reporting.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-invoice-reporting/tree/8.0/base_comment_template
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYSale
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSStéphane Bidoul, Guewen Baconnier, Alexandre Fayolle, GitHub, Stéphane Bidoul (ACSONE), cubells, OCA Transbot, oca-travis, Weblate, OCA-git-bot
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:11:27
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
view_base_comment_template_form base.comment.template.form base.comment.template form New
view_base_comment_template_search base.comment.template.search base.comment.template search New
view_base_comment_template_tree account.comment.template.list base.comment.template tree New
Models touched (1)

New fields (3)
  • name Char
    required=True args: 'Comment summary'
  • position Selection
    default='before_lines' help='Position on document' required=True args: [('before_lines', 'Before lines'), ('after_lines', 'After lines')], 'Position'
  • text Html
    required=True translate=True args: 'Comment'
Public methods (1)
  • get_value(self, partner_id=False)
    @api.multi