odoo/odoo#225326

Created by Neel Ajitbhai Shah (nees)

Blocked

label
odoo-dev:master-placeholder-private-label-nees
head
71daa6911c4fab5298bec8be5dc53d1c7235e517
odoo/odoo odoo/documentation
19.0 #225326 missing r+ #14601 missing r+
master

[IMP] web, *: add new field widget many2x_private_placeholder

*: mail, project

Description of the issue this PR addresses:
Previously, the private placeholder behavior existed only in the project
module. This PR moves the logic to the web module and introduces
a generic many2x_private_placeholder field widget that can be
reused in other modules.

Desired behaviour after PR is merged:
- Moved the private placeholder widget logic to web, making it a
centralized and generic component instead of being project-specific.
- Used the falsy_value_label attribute on fields to display a
translatable label when the field value is falsy.
- When a field is readonly and not set, the widget uses the falsy_value_label
as 🔒 Private defined at field level.
- Previously, this widget was only used on project_id in the project.
It is now also used on group_ids in mail.canned.response.
- Ensures consistent rendering of private placeholders across different views.

Related Documentation PR: odoo/documentation#14601

Before / After: [In mail]
<img width="184" height="48" alt="image" src="https://github.com/user-attachments/assets/59d9fff8-fd9c-4359-ab28-91ad6463d3d6" /> <img width="184" height="48" alt="image" src="https://github.com/user-attachments/assets/39a27c45-ade1-4990-a710-334f84afbf56" />

task-5071026


I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr