Repository
OCA/partner-contact · module folder · Try on Runboat
Module version
1.1.0
Category
Customer Relationship Management
Folder size
0.07 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/partner-contact
Last tracking update
2026-08-07 09:06:26
Authors
Odoo Community Association (OCA), ForgeFlow S.L.
Maintainers
Odoo Community Association (OCA), ForgeFlow S.L.
Committers
Miquel Raïch, Weblate, OCA-git-bot, oca-ci
Odoo dependencies
odoo/odoo:
- web
- bus
Python dependencies
None
System dependencies
None
Required by
None
Description
This module adds *Department* as a native partner type in Odoo's address book.

Unlike a standalone department model, a department is a real ``res.partner``
record (``type = 'department'``) and can therefore be selected anywhere a
partner is expected — for example as the partner of a sale order.

Key features:

- Contacts (non-company partners) have a **Department** field that links them
  to a department partner.
- Opening a department partner shows a **Members** smart button and a tab
  listing all contacts assigned to it.
- Partners can be searched and grouped by department.

> **Incompatibility notice:** This module is **not compatible** with
> `partner_contact_department`. Both modules provide a *Department* field on
> contacts but use different approaches; installing both at the same time will
> cause conflicts.

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
view_partner_form_department Partner form with department res.partner form Inherits base.view_partner_form
view_res_partner_filter_department Partner search with department res.partner Inherits base.view_res_partner_filter
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (1)

New fields (6)
  • department_all_member_ids Many2many → res.partner
    compute='_compute_department_all_member_ids' string='Members' args: 'res.partner'
  • department_id Many2one → res.partner
    domain=[('type', '=', 'department')] args: 'res.partner'
  • department_ids One2many → res.partner
    domain=[('type', '=', 'department')] string='Departments' args: 'res.partner', 'parent_id'
  • department_member_count Integer
    compute='_compute_department_member_count'
  • department_member_ids One2many → res.partner
    domain=[('type', '!=', 'department')] string='Direct Members' args: 'res.partner', 'department_id'
  • type Selection
    ondelete={'department': 'set default'} selection_add=[('department', 'Department')]
Public methods (1)
  • action_view_department_members(self)