Skip to content

Commit

Permalink
Merge pull request #1386 from OCA/16.0
Browse files Browse the repository at this point in the history
Syncing from upstream OCA/partner-contact (16.0)
  • Loading branch information
bt-admin authored Mar 4, 2025
2 parents 8209a47 + 5e8dadf commit 38fbba3
Show file tree
Hide file tree
Showing 6 changed files with 41 additions and 7 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ addon | version | maintainers | summary
[partner_contact_age_range](partner_contact_age_range/) | 16.0.1.0.1 | | Age Range for Contact's
[partner_contact_birthdate](partner_contact_birthdate/) | 16.0.1.0.0 | | Contact's birthdate
[partner_contact_birthplace](partner_contact_birthplace/) | 16.0.1.0.0 | | This module allows to define a birthplace for partners.
[partner_contact_department](partner_contact_department/) | 16.0.1.2.0 | | Assign contacts to departments
[partner_contact_department](partner_contact_department/) | 16.0.1.2.1 | | Assign contacts to departments
[partner_contact_gender](partner_contact_gender/) | 16.0.1.0.0 | | Add gender field to contacts
[partner_contact_job_position](partner_contact_job_position/) | 16.0.1.1.0 | | Categorize job positions for contacts
[partner_contact_lang](partner_contact_lang/) | 16.0.1.0.0 | | Manage language in contacts
Expand Down
2 changes: 1 addition & 1 deletion partner_contact_department/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Partner Contact Department
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:94b2c4864f83b9465e8b2715e7ca1a2e1595dea80eb618a5c6089cc31ecc07a3
!! source digest: sha256:f3de6e9e1b86fe63e3d66f6b7dfba646ec2bc50f1963d898dc8eaba29f53cd4d
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
Expand Down
2 changes: 1 addition & 1 deletion partner_contact_department/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
{
"name": "Partner Contact Department",
"summary": "Assign contacts to departments",
"version": "16.0.1.2.0",
"version": "16.0.1.2.1",
"category": "Customer Relationship Management",
"author": "Tecnativa, Odoo Community Association (OCA)",
"license": "AGPL-3",
Expand Down
26 changes: 23 additions & 3 deletions partner_contact_department/models/res_partner.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# © 2016 Tecnativa S.L. - Vicent Cubells
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).

from odoo import fields, models
from odoo import api, fields, models


class ResPartner(models.Model):
Expand All @@ -13,16 +13,36 @@ class ResPartner(models.Model):

class ResPartnerDepartment(models.Model):
_name = "res.partner.department"
_order = "parent_path, name"
_parent_order = "name"
_order = "display_name"
_parent_store = True
_description = "Department"

name = fields.Char(required=True, translate=True)
display_name = fields.Char(compute="_compute_display_name", store=True, index=True)
parent_id = fields.Many2one(
"res.partner.department", "Parent department", ondelete="restrict"
)
child_ids = fields.One2many(
"res.partner.department", "parent_id", "Child departments"
)
parent_path = fields.Char(index=True, unaccent=False)

@api.depends("parent_path", "name")
def _compute_display_name(self):
return super()._compute_display_name()

def name_get(self):
"""Prepend parent name to department name."""
all_ids = set(
map(int, "/".join(rec.parent_path.strip("/") for rec in self).split("/"))
)
names = {rec.id: rec.name for rec in self.browse(all_ids)}
return [
(
rec.id,
" / ".join(
names[int(id)] for id in rec.parent_path.strip("/").split("/")
),
)
for rec in self
]
2 changes: 1 addition & 1 deletion partner_contact_department/static/description/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -367,7 +367,7 @@ <h1 class="title">Partner Contact Department</h1>
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:94b2c4864f83b9465e8b2715e7ca1a2e1595dea80eb618a5c6089cc31ecc07a3
!! source digest: sha256:f3de6e9e1b86fe63e3d66f6b7dfba646ec2bc50f1963d898dc8eaba29f53cd4d
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/partner-contact/tree/16.0/partner_contact_department"><img alt="OCA/partner-contact" src="https://img.shields.io/badge/github-OCA%2Fpartner--contact-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/partner-contact-16-0/partner-contact-16-0-partner_contact_department"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/partner-contact&amp;target_branch=16.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
<p>This module extends the functionality of the address book to support
Expand Down
14 changes: 14 additions & 0 deletions partner_contact_department/tests/test_recursion.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,17 @@ def test_recursion(self):
# Creating a parent's child department using dpt1.
with self.assertRaises(UserError):
self.dpt1.write(vals={"parent_id": self.dpt3.id})

def test_order(self):
dpt3 = self.env["res.partner.department"].create({"name": "A"})
dpts = self.env["res.partner.department"].search(
[("id", "in", (self.dpt1 | self.dpt2 | dpt3).ids)]
)
self.assertRecordValues(
dpts,
[
{"name": "A", "display_name": "A"},
{"name": "Dpt. 1", "display_name": "Dpt. 1"},
{"name": "Dep. 2", "display_name": "Dpt. 1 / Dep. 2"},
],
)

0 comments on commit 38fbba3

Please sign in to comment.