Agreement Service Profile

agreement_serviceprofile
REPOSITORY
REPOSITORYOCA/agreement
GIT
GIThttps://github.com/OCA/agreement.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/agreement/tree/18.0/agreement_serviceprofile
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYContract
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Open Source Integrators, Pavlov Media
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Open Source Integrators, Pavlov Media
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, TB-Ph35
WEBSITE
WEBSITEhttps://github.com/OCA/agreement
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:11
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/agreement:
    - agreement_legal
    - agreement
odoo/odoo:
    - contacts
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - product
    - uom
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module adds an *Agreement Service Profile* object with the
following properties:

- name,
- link to a agreement,
- active.

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
agreement_fsm_order_form_view agreement.form.fsm.order.view agreement notebook Inherits agreement_legal.partner_agreement_form_view
agreement_serviceprofile_form Agreement Service Profile Form agreement.serviceprofile form New
agreement_serviceprofile_kanban Agreement Service Profile Kanban agreement.serviceprofile kanban New
agreement_serviceprofile_search Agreement Service Profile Search agreement.serviceprofile search New
agreement_serviceprofile_tree Agreement Service Profile Tree agreement.serviceprofile list New
product_product_form_view product.product.form.view product.product xpath Inherits product.product_normal_form_view
product_template_form_view product.template.form.view product.template xpath Inherits product.product_template_form_view
Models touched (4)

New fields (1)
  • serviceprofile_ids One2many → agreement.serviceprofile
    copy=True string='Service Profiles' args: 'agreement.serviceprofile', 'agreement_id'
Public methods (0)

No public methods.

New fields (9)
  • active Boolean
    default=True help='If unchecked, it will allow you to hide this service profile without removing it.'
  • agreement_id Many2one → agreement
    ondelete='cascade' string='Agreement' args: 'agreement'
  • name Char
    required=True
  • notes Text
  • partner_id Many2one
    related='agreement_id.partner_id' string='Partner'
  • product_id Many2one → product.template
    domain="[('service_tracking', '=', 'serviceprofile')]" args: 'product.template', 'Service Product'
  • product_variant_id Many2one → product.product
    domain="[('service_tracking', '=', 'serviceprofile')]" args: 'product.product', 'Service Product Variant'
  • stage_id Many2one → agreement.stage
    copy=False default=_default_stage_id group_expand='_read_group_stage_ids' string='Stage' args: 'agreement.stage'
  • use_product_variant Boolean
    default=False
Public methods (0)

No public methods.

New fields (1)
  • stage_type Selection
    ondelete={'serviceprofile': 'cascade'} selection_add=[('serviceprofile', 'Service Profile')]
Public methods (0)

No public methods.

New fields (1)
  • service_tracking Selection
    ondelete={'serviceprofile': 'set default'} selection_add=[('serviceprofile', 'Service Profile')]
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/agreement
GIT
GIThttps://github.com/OCA/agreement.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/agreement/tree/16.0/agreement_serviceprofile
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYContract
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Open Source Integrators, Pavlov Media
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Open Source Integrators, Pavlov Media
COMMITTERS
COMMITTERSEnric Tobella, Weblate, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/agreement
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:11:57
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/agreement:
    - agreement_legal
    - agreement
odoo/odoo:
    - contacts
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - product
    - uom
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
agreement_fsm_order_form_view agreement.form.fsm.order.view agreement notebook Inherits agreement_legal.partner_agreement_form_view
agreement_serviceprofile_form Agreement Service Profile Form agreement.serviceprofile form New
agreement_serviceprofile_kanban Agreement Service Profile Kanban agreement.serviceprofile kanban New
agreement_serviceprofile_search Agreement Service Profile Search agreement.serviceprofile search New
agreement_serviceprofile_tree Agreement Service Profile Tree agreement.serviceprofile tree New
product_product_form_view product.product.form.view product.product xpath Inherits product.product_normal_form_view
product_template_form_view product.template.form.view product.template xpath Inherits product.product_template_form_view
Models touched (4)

New fields (1)
  • serviceprofile_ids One2many → agreement.serviceprofile
    copy=True string='Service Profiles' args: 'agreement.serviceprofile', 'agreement_id'
Public methods (0)

No public methods.

New fields (9)
  • active Boolean
    default=True help='If unchecked, it will allow you to hide this service profile without removing it.'
  • agreement_id Many2one → agreement
    ondelete='cascade' string='Agreement' args: 'agreement'
  • name Char
    required=True
  • notes Text
  • partner_id Many2one
    related='agreement_id.partner_id' string='Partner'
  • product_id Many2one → product.template
    domain="[('detailed_type', '=', 'serviceprofile'), ('type', '=', 'service')]" args: 'product.template', 'Service Product'
  • product_variant_id Many2one → product.product
    domain="[('detailed_type', '=', 'serviceprofile'), ('type', '=', 'service')]" args: 'product.product', 'Service Product Variant'
  • stage_id Many2one → agreement.stage
    copy=False default=_default_stage_id group_expand='_read_group_stage_ids' string='Stage' args: 'agreement.stage'
  • use_product_variant Boolean
    default=False
Public methods (0)

No public methods.

New fields (1)
  • stage_type Selection
    ondelete={'serviceprofile': 'cascade'} selection_add=[('serviceprofile', 'Service Profile')]
Public methods (0)

No public methods.

New fields (1)
  • detailed_type Selection
    ondelete={'serviceprofile': 'set service'} selection_add=[('serviceprofile', 'Service Profile')]
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/agreement
GIT
GIThttps://github.com/OCA/agreement.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/agreement/tree/15.0/agreement_serviceprofile
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYContract
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Open Source Integrators, Pavlov Media
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Open Source Integrators, Pavlov Media
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Saran440
WEBSITE
WEBSITEhttps://github.com/OCA/agreement
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:33
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/agreement:
    - agreement_legal
    - agreement
odoo/odoo:
    - contacts
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - product
    - uom
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
agreement_fsm_order_form_view agreement.form.fsm.order.view agreement notebook Inherits agreement_legal.partner_agreement_form_view
agreement_serviceprofile_form Agreement Service Profile Form agreement.serviceprofile form New
agreement_serviceprofile_kanban Agreement Service Profile Kanban agreement.serviceprofile kanban New
agreement_serviceprofile_search Agreement Service Profile Search agreement.serviceprofile search New
agreement_serviceprofile_tree Agreement Service Profile Tree agreement.serviceprofile tree New
product_product_form_view product.product.form.view product.product xpath Inherits product.product_normal_form_view
product_template_form_view product.template.form.view product.template xpath Inherits product.product_template_form_view
Models touched (5)

New fields (1)
  • serviceprofile_ids One2many → agreement.serviceprofile
    copy=True string='Service Profiles' args: 'agreement.serviceprofile', 'agreement_id'
Public methods (0)

No public methods.

New fields (9)
  • active Boolean
    default=True help='If unchecked, it will allow you to hide this service profile without removing it.'
  • agreement_id Many2one → agreement
    ondelete='cascade' string='Agreement' args: 'agreement'
  • name Char
    required=True
  • notes Text
  • partner_id Many2one
    related='agreement_id.partner_id' string='Partner'
  • product_id Many2one → product.template
    domain="[('is_serviceprofile', '=', True), ('type', '=', 'service')]" args: 'product.template', 'Service Product'
  • product_variant_id Many2one → product.product
    domain="[('is_serviceprofile', '=', True), ('type', '=', 'service')]" args: 'product.product', 'Service Product Variant'
  • stage_id Many2one → agreement.stage
    copy=False default=_default_stage_id group_expand='_read_group_stage_ids' string='Stage' args: 'agreement.stage'
  • use_product_variant Boolean
    default=False
Public methods (0)

No public methods.

New fields (1)
  • stage_type Selection
    ondelete={'serviceprofile': 'cascade'} selection_add=[('serviceprofile', 'Service Profile')]
Public methods (0)

No public methods.

New fields (1)
  • is_serviceprofile Boolean
    help='If True, this product will create a service profile on the\n agreement when the sales order is confirmed.' string='Create Service Profiles'
Public methods (1)
  • onchange_type(self)
    @api.onchange('is_serviceprofile')

New fields (1)
  • is_serviceprofile Boolean
    help='If True, this product will create a service profile on the\n agreement when the sales order is confirmed.' string='Create Service Profiles'
Public methods (1)
  • onchange_type(self)
    @api.onchange('is_serviceprofile')
REPOSITORY
REPOSITORYOCA/contract
GIT
GIThttps://github.com/OCA/contract.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/contract/tree/14.0/agreement_serviceprofile
VERSION
VERSION 1.1.1
CATEGORY
CATEGORYContract
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Open Source Integrators, Pavlov Media
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Open Source Integrators, Pavlov Media
COMMITTERS
COMMITTERSPedro M. Baeza, OCA Transbot, oca-travis, Weblate, OCA-git-bot, Patrick Wilson, Olga Marco
WEBSITE
WEBSITEhttps://github.com/OCA/contract
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:55
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/contract:
    - agreement_legal
    - agreement
odoo/odoo:
    - contacts
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - product
    - uom
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
agreement_fsm_order_form_view agreement.form.fsm.order.view agreement notebook Inherits agreement_legal.partner_agreement_form_view
agreement_serviceprofile_form Agreement Service Profile Form agreement.serviceprofile form New
agreement_serviceprofile_kanban Agreement Service Profile Kanban agreement.serviceprofile kanban New
agreement_serviceprofile_search Agreement Service Profile Search agreement.serviceprofile search New
agreement_serviceprofile_tree Agreement Service Profile Tree agreement.serviceprofile tree New
product_product_form_view product.product.form.view product.product xpath Inherits product.product_normal_form_view
product_template_form_view product.template.form.view product.template xpath Inherits product.product_template_form_view
Models touched (5)

New fields (1)
  • serviceprofile_ids One2many → agreement.serviceprofile
    copy=True string='Service Profiles' args: 'agreement.serviceprofile', 'agreement_id'
Public methods (0)

No public methods.

New fields (9)
  • active Boolean
    default=True help='If unchecked, it will allow you to hide this service profile without removing it.' string='Active'
  • agreement_id Many2one → agreement
    ondelete='cascade' string='Agreement' args: 'agreement'
  • name Char
    required=True string='Name'
  • notes Text
    string='Notes'
  • partner_id Many2one
    related='agreement_id.partner_id' string='Partner'
  • product_id Many2one → product.template
    domain="[('is_serviceprofile', '=', True), ('type', '=', 'service')]" args: 'product.template', 'Service Product'
  • product_variant_id Many2one → product.product
    domain="[('is_serviceprofile', '=', True), ('type', '=', 'service')]" args: 'product.product', 'Service Product Variant'
  • stage_id Many2one → agreement.stage
    copy=False default=_default_stage_id group_expand='_read_group_stage_ids' string='Stage' args: 'agreement.stage'
  • use_product_variant Boolean
    default=False args: 'Use Product Variant'
Public methods (0)

No public methods.

New fields (1)
  • stage_type Selection
    ondelete={'serviceprofile': 'cascade'} selection_add=[('serviceprofile', 'Service Profile')]
Public methods (0)

No public methods.

New fields (1)
  • is_serviceprofile Boolean
    help='If True, this product will create a service profile on the\n agreement when the sales order is confirmed.' string='Create Service Profiles'
Public methods (1)
  • onchange_type(self)
    @api.onchange('is_serviceprofile')

New fields (1)
  • is_serviceprofile Boolean
    help='If True, this product will create a service profile on the\n agreement when the sales order is confirmed.' string='Create Service Profiles'
Public methods (1)
  • onchange_type(self)
    @api.onchange('is_serviceprofile')
REPOSITORY
REPOSITORYOCA/contract
GIT
GIThttps://github.com/OCA/contract.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/contract/tree/13.0/agreement_serviceprofile
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYContract
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Open Source Integrators, Pavlov Media
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Open Source Integrators, Pavlov Media
COMMITTERS
COMMITTERSoca-travis, Weblate, OCA-git-bot, Olga Marco
WEBSITE
WEBSITEhttps://github.com/OCA/contract
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:11
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/contract:
    - agreement_legal
    - agreement
odoo/odoo:
    - contacts
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - product
    - uom
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
agreement_fsm_order_form_view agreement.form.fsm.order.view agreement notebook Inherits agreement_legal.partner_agreement_form_view
agreement_serviceprofile_form Agreement Service Profile Form agreement.serviceprofile form New
agreement_serviceprofile_kanban Agreement Service Profile Kanban agreement.serviceprofile kanban New
agreement_serviceprofile_search Agreement Service Profile Search agreement.serviceprofile search New
agreement_serviceprofile_tree Agreement Service Profile Tree agreement.serviceprofile tree New
product_product_form_view product.product.form.view product.product xpath Inherits product.product_normal_form_view
product_template_form_view product.template.form.view product.template xpath Inherits product.product_template_form_view
Models touched (5)

New fields (1)
  • serviceprofile_ids One2many → agreement.serviceprofile
    copy=True string='Service Profiles' args: 'agreement.serviceprofile', 'agreement_id'
Public methods (0)

No public methods.

New fields (9)
  • active Boolean
    default=True help='If unchecked, it will allow you to hide this service profile without removing it.' string='Active'
  • agreement_id Many2one → agreement
    ondelete='cascade' string='Agreement' args: 'agreement'
  • name Char
    required=True string='Name'
  • notes Text
    string='Notes'
  • partner_id Many2one
    related='agreement_id.partner_id' string='Partner'
  • product_id Many2one → product.template
    domain="[('is_serviceprofile', '=', True), ('type', '=', 'service')]" args: 'product.template', 'Service Product'
  • product_variant_id Many2one → product.product
    domain="[('is_serviceprofile', '=', True), ('type', '=', 'service')]" args: 'product.product', 'Service Product Variant'
  • stage_id Many2one → agreement.stage
    copy=False default=_default_stage_id group_expand='_read_group_stage_ids' string='Stage' args: 'agreement.stage'
  • use_product_variant Boolean
    default=False args: 'Use Product Variant'
Public methods (0)

No public methods.

New fields (1)
  • stage_type Selection
    selection_add=[('serviceprofile', 'Service Profile')]
Public methods (0)

No public methods.

New fields (1)
  • is_serviceprofile Boolean
    help='If True, this product will create a service profile on the\n agreement when the sales order is confirmed.' string='Create Service Profiles'
Public methods (1)
  • onchange_type(self)
    @api.onchange('is_serviceprofile')

New fields (1)
  • is_serviceprofile Boolean
    help='If True, this product will create a service profile on the\n agreement when the sales order is confirmed.' string='Create Service Profiles'
Public methods (1)
  • onchange_type(self)
    @api.onchange('is_serviceprofile')
REPOSITORY
REPOSITORYOCA/contract
GIT
GIThttps://github.com/OCA/contract.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/contract/tree/12.0/agreement_serviceprofile
VERSION
VERSION 1.2.1
CATEGORY
CATEGORYContract
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Open Source Integrators, Pavlov Media
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Open Source Integrators, Pavlov Media
COMMITTERS
COMMITTERSMaxime Chambreuil, GitHub, Denis Roussel, OCA Transbot, oca-travis, OCA-git-bot, scampbell, Murtuza Saleh, Marcel Savegnago, Patrick Wilson
WEBSITE
WEBSITEhttps://github.com/OCA/contract
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:15
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/contract:
    - agreement_legal
    - agreement
odoo/odoo:
    - contacts
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - product
    - decimal_precision
    - uom
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
agreement_fsm_order_form_view agreement.form.fsm.order.view agreement notebook Inherits agreement_legal.partner_agreement_form_view
agreement_serviceprofile_form Agreement Service Profile Form agreement.serviceprofile form New
agreement_serviceprofile_kanban Agreement Service Profile Kanban agreement.serviceprofile kanban New
agreement_serviceprofile_search Agreement Service Profile Search agreement.serviceprofile search New
agreement_serviceprofile_tree Agreement Service Profile Tree agreement.serviceprofile tree New
product_product_form_view product.product.form.view product.product xpath Inherits product.product_normal_form_view
product_template_form_view product.template.form.view product.template xpath Inherits product.product_template_form_view
Models touched (5)

New fields (1)
  • serviceprofile_ids One2many → agreement.serviceprofile
    copy=True string='Service Profiles' args: 'agreement.serviceprofile', 'agreement_id'
Public methods (0)

No public methods.

New fields (9)
  • active Boolean
    default=True help=<expr> string='Active'
  • agreement_id Many2one → agreement
    ondelete='cascade' string='Agreement' args: 'agreement'
  • name Char
    required=True string='Name'
  • notes Text
    string='Notes'
  • partner_id Many2one
    related='agreement_id.partner_id' string='Partner'
  • product_id Many2one → product.template
    domain="[('is_serviceprofile', '=', True), ('type', '=', 'service')]" args: 'product.template', 'Service Product'
  • product_variant_id Many2one → product.product
    domain="[('is_serviceprofile', '=', True), ('type', '=', 'service')]" args: 'product.product', 'Service Product Variant'
  • stage_id Many2one → agreement.stage
    copy=False default=_default_stage_id group_expand='_read_group_stage_ids' string='Stage' args: 'agreement.stage'
  • use_product_variant Boolean
    default=False args: 'Use Product Variant'
Public methods (0)

No public methods.

New fields (1)
  • stage_type Selection
    selection_add=[('serviceprofile', 'Service Profile')]
Public methods (0)

No public methods.

New fields (1)
  • is_serviceprofile Boolean
    help='If True, this product will create a service profile on the\n agreement when the sales order is confirmed.' string='Create Service Profiles'
Public methods (1)
  • onchange_type(self)
    @api.onchange('is_serviceprofile')

New fields (1)
  • is_serviceprofile Boolean
    help='If True, this product will create a service profile on the\n agreement when the sales order is confirmed.' string='Create Service Profiles'
Public methods (1)
  • onchange_type(self)
    @api.onchange('is_serviceprofile')