Manage language in contacts

partner_contact_lang
REPOSITORY
REPOSITORYOCA/partner-contact
GIT
GIThttps://github.com/OCA/partner-contact.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/partner-contact/tree/18.0/partner_contact_lang
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYSales
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Antoni Marroig Campomar
WEBSITE
WEBSITEhttps://github.com/OCA/partner-contact
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:10
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Odoo by default propagate language field to the created contacts from
their form, but it doesn't allow to change it once created.

This module fills this gap, and also provides other facilities for the
contact language management:

1.  Put the language of the parent company when the contact doesn't have
    a language and this parent company is assigned.
2.  When the company changes the language, it fills with the same
    language all the contacts that don't have any.
3.  Show the language in the inner narrowed Contact form and set the new
    conctact with a different language if needed.
4.  Search and also group contacts by their language.

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
view_partner_form view.partner.address.form.extension res.partner xpath Inherits base.view_partner_form
view_res_partner_filter res.partner.filter.extension res.partner xpath Inherits base.view_res_partner_filter
Models touched (1)

New fields (0)

No new fields.

Public methods (2)
  • onchange_parent_id(self)
    @api.onchange('parent_id')
    Change language if the parent company changes and there's no language defined yet. A special case is made for virtual records, where default lang value is assigned at startup, so we always overwrite language in that case.
  • write(self, vals)
    Propagate a language change in the partner to the child contacts.
REPOSITORY
REPOSITORYOCA/partner-contact
GIT
GIThttps://github.com/OCA/partner-contact.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/partner-contact/tree/17.0/partner_contact_lang
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYSales
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSOCA-git-bot, oca-ci, Antoni Marroig Campomar
WEBSITE
WEBSITEhttps://github.com/OCA/partner-contact
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:04
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Odoo by default propagate language field to the created contacts from
their form, but it doesn't allow to change it once created.

This module fills this gap, and also provides other facilities for the
contact language management:

1.  Put the language of the parent company when the contact doesn't have
    a language and this parent company is assigned.
2.  When the company changes the language, it fills with the same
    language all the contacts that don't have any.
3.  Show the language in the inner narrowed Contact form and set the new
    conctact with a different language if needed.
4.  Search and also group contacts by their language.

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
view_partner_form view.partner.address.form.extension res.partner xpath Inherits base.view_partner_form
view_res_partner_filter res.partner.filter.extension res.partner xpath Inherits base.view_res_partner_filter
Models touched (1)

New fields (0)

No new fields.

Public methods (2)
  • onchange_parent_id(self)
    @api.onchange('parent_id')
    Change language if the parent company changes and there's no language defined yet. A special case is made for virtual records, where default lang value is assigned at startup, so we always overwrite language in that case.
  • write(self, vals)
    Propagate a language change in the partner to the child contacts.
REPOSITORY
REPOSITORYOCA/partner-contact
GIT
GIThttps://github.com/OCA/partner-contact.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/partner-contact/tree/16.0/partner_contact_lang
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYSales
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSOCA Transbot, Weblate, OCA-git-bot, oca-ci, Pedro Evaristo Gonzalez Sanchez
WEBSITE
WEBSITEhttps://github.com/OCA/partner-contact
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:44
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 (2)
XML IDNameModelTypeStatus
view_partner_form view.partner.address.form.extension res.partner xpath Inherits base.view_partner_form
view_res_partner_filter res.partner.filter.extension res.partner xpath Inherits base.view_res_partner_filter
Models touched (1)

New fields (0)

No new fields.

Public methods (2)
  • onchange_parent_id(self)
    @api.onchange('parent_id')
    Change language if the parent company changes and there's no language defined yet. A special case is made for virtual records, where default lang value is assigned at startup, so we always overwrite language in that case.
  • write(self, vals)
    Propagate a language change in the partner to the child contacts.
REPOSITORY
REPOSITORYOCA/partner-contact
GIT
GIThttps://github.com/OCA/partner-contact.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/partner-contact/tree/15.0/partner_contact_lang
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYSales
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Pedro Evaristo Gonzalez Sanchez
WEBSITE
WEBSITEhttps://github.com/OCA/partner-contact
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:32
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 (2)
XML IDNameModelTypeStatus
view_partner_form view.partner.address.form.extension res.partner xpath Inherits base.view_partner_form
view_res_partner_filter res.partner.filter.extension res.partner xpath Inherits base.view_res_partner_filter
Models touched (1)

New fields (0)

No new fields.

Public methods (2)
  • onchange_parent_id(self)
    @api.onchange('parent_id')
    Change language if the parent company changes and there's no language defined yet. A special case is made for virtual records, where default lang value is assigned at startup, so we always overwrite language in that case.
  • write(self, vals)
    Propagate a language change in the partner to the child contacts.
REPOSITORY
REPOSITORYOCA/partner-contact
GIT
GIThttps://github.com/OCA/partner-contact.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/partner-contact/tree/14.0/partner_contact_lang
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYSales
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSOCA Transbot, oca-travis, Weblate, OCA-git-bot, newtratip, oca-git-bot
WEBSITE
WEBSITEhttps://github.com/OCA/partner-contact
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:56
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 (2)
XML IDNameModelTypeStatus
view_partner_form view.partner.address.form.extension res.partner xpath Inherits base.view_partner_form
view_res_partner_filter res.partner.filter.extension res.partner xpath Inherits base.view_res_partner_filter
Models touched (1)

New fields (0)

No new fields.

Public methods (2)
  • onchange_parent_id(self)
    @api.onchange('parent_id')
    Change language if the parent company changes and there's no language defined yet. A special case is made for virtual records, where default lang value is assigned at startup, so we always overwrite language in that case.
  • write(self, vals)
    Propagate a language change in the partner to the child contacts.
REPOSITORY
REPOSITORYOCA/partner-contact
GIT
GIThttps://github.com/OCA/partner-contact.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/partner-contact/tree/13.0/partner_contact_lang
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYSales
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSPedro M. Baeza, OCA Transbot, Víctor Martínez, oca-travis, Weblate, OCA-git-bot, Pedro
WEBSITE
WEBSITEhttps://github.com/OCA/partner-contact
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:11
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 (2)
XML IDNameModelTypeStatus
view_partner_form view.partner.address.form.extension res.partner xpath Inherits base.view_partner_form
view_res_partner_filter res.partner.filter.extension res.partner xpath Inherits base.view_res_partner_filter
Models touched (1)

New fields (0)

No new fields.

Public methods (2)
  • onchange_parent_id(self)
    @api.onchange('parent_id')
    Change language if the parent company changes and there's no language defined yet. A special case is made for virtual records, where default lang value is assigned at startup, so we always overwrite language in that case.
  • write(self, vals)
    Propagate a language change in the partner to the child contacts.
REPOSITORY
REPOSITORYOCA/partner-contact
GIT
GIThttps://github.com/OCA/partner-contact.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/partner-contact/tree/12.0/partner_contact_lang
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYSales
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSPedro M. Baeza, OCA Transbot, oca-travis, OCA-git-bot, Simone Orsi
WEBSITE
WEBSITEhttps://github.com/OCA/partner-contact
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:16
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/server-tools:
    - base_view_inheritance_extension
odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
view_partner_form view.partner.address.form.extension res.partner xpath Inherits base.view_partner_form
view_res_partner_filter res.partner.filter.extension res.partner xpath Inherits base.view_res_partner_filter
Models touched (1)

New fields (1)
  • partner_lang Selection
    readonly=True related='lang' string='Partner lang'
Public methods (2)
  • onchange_parent_id(self)
    @api.onchange('parent_id')
    Change language if the parent company changes and there's no language defined yet. A special case is made for virtual records, where default lang value is assigned at startup, so we always overwrite language in that case.
  • write(self, vals)
    Propagate a language change in the partner to the child contacts.
REPOSITORY
REPOSITORYOCA/partner-contact
GIT
GIThttps://github.com/OCA/partner-contact.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/partner-contact/tree/11.0/partner_contact_lang
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYSales
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSPedro M. Baeza, oca-travis, OCA-git-bot
WEBSITE
WEBSITEhttps://github.com/OCA/partner-contact/
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:23:56
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 (0)

No views found for this module.

Models touched (1)

New fields (0)

No new fields.

Public methods (2)
  • onchange_parent_id(self)
    @api.onchange('parent_id')
    Change language if the parent company changes and there's no language defined yet
  • write(self, vals)
    @api.multi
    Propagate a language change in the partner to the child contacts.
REPOSITORY
REPOSITORYOCA/partner-contact
GIT
GIThttps://github.com/OCA/partner-contact.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/partner-contact/tree/10.0/partner_contact_lang
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYCustomer Relationship Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSPedro M. Baeza, OCA Transbot, oca-travis
WEBSITE
WEBSITEhttps://www.tecnativa.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:19:55
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 (1)
XML IDNameModelTypeStatus
view_partner_form res.partner xpath Inherits base.view_partner_form
Models touched (1)

New fields (0)

No new fields.

Public methods (2)
  • onchange_parent_id(self)
    @api.onchange('parent_id')
    Change language if the parent company changes and there's no language defined yet
  • write(self, vals)
    @api.multi
    Propagate a language change in the partner to the child contacts.
REPOSITORY
REPOSITORYOCA/partner-contact
GIT
GIThttps://github.com/OCA/partner-contact.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/partner-contact/tree/9.0/partner_contact_lang
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYPartner Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSPedro M. Baeza, OCA Transbot, oca-travis
WEBSITE
WEBSITEhttps://www.tecnativa.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:15:19
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 (1)
XML IDNameModelTypeStatus
view_partner_form res.partner xpath Inherits base.view_partner_form
Models touched (1)

New fields (0)

No new fields.

Public methods (3)
  • onchange_lang(self)
    @api.multi@api.onchange('lang')
  • onchange_parent_id(self, parent_id)
    @api.multi
    Change language if the parent company changes and there's no language defined yet
  • write(self, vals)
    @api.multi
    Propagate a language change in the partner to the child contacts.
REPOSITORY
REPOSITORYOCA/partner-contact
GIT
GIThttps://github.com/OCA/partner-contact.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/partner-contact/tree/8.0/partner_contact_lang
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYPartner Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSGitHub, OCA Transbot, oca-travis
WEBSITE
WEBSITEhttps://www.tecnativa.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:11:21
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 (1)
XML IDNameModelTypeStatus
view_partner_form res.partner xpath Inherits base.view_partner_form
Models touched (1)

New fields (0)

No new fields.

Public methods (3)
  • onchange_address(self, use_parent_address, parent_id)
    @api.multi
    Change language if the parent company changes and there's no language defined yet
  • onchange_lang(self)
    @api.multi@api.onchange('lang')
  • write(self, vals)
    @api.multi
    Propagate a language change in the partner to the child contacts.