TIP: You can type at any time to perform a new search.
Mail Layout Force
mail_layout_force · OCA/mail
Security findings
- Repository
- OCA/mail · module folder · Try on Runboat
- Module version
- 1.0.0
- Category
- Marketing
- Folder size
- 0.06 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/mail
- Last tracking update
- 2026-08-07 08:42:57
- Authors
- Camptocamp, Odoo Community Association (OCA)
- Maintainers
- Camptocamp, Odoo Community Association (OCA)
- Committers
- Aungkokolin1997, OCA-git-bot, oca-ci
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- None
- Description
Odoo will add a default email layout on most commercial communications. The email layout is a ``QWeb`` view that ends up wrapping the message body when sending an email. It usually displays the related document reference, the company logo, and a small footer saying "Powered by Odoo". There are notably three main layouts used in Odoo, and the user can't control when they're used, as it's hardcoded into the different applications. * ``mail.mail_notification_layout`` * ``mail.mail_notification_layout_with_responsible_signature`` * ``mail.mail_notification_light`` This module allows to force a specific layout for a given ``email.template``, effectively overwriting the one hardcoded by Odoo. Additionally, it enables forcing a custom layout for emails that do not use an existing ``email.template`` record (e.g., when sending an email from the chatter). This allows you to fully customize the way Odoo emails are rendered and sent to your customers.
Code Analysis
Views touched (4)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
email_template_form |
mail.template | form | Inherits mail.email_template_form | |
mail_layout_custom |
mail_layout_custom | ir.ui.view | qweb | New |
mail_layout_noop |
Mail: No-Layout notification template | ir.ui.view | qweb | New |
view_ir_ui_view_form_inherit |
ir.ui.view.form.inherit | ir.ui.view | form | Inherits base.view_view_form |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (5)
New fields (3)
-
layout_idMany2one → ir.ui.viewondelete='cascade' args: 'ir.ui.view' -
model_idsMany2many → ir.modelhelp='Select models that the swapping applies to.'string='Models' args: 'ir.model' -
substitute_layout_idMany2one → ir.ui.viewdomain=[('type', '=', 'qweb')]help='Select a target layout.'required=True args: 'ir.ui.view'
No public methods.
New fields (1)
-
layout_mapping_line_idsOne2many → email.layout.mappingargs: 'email.layout.mapping', 'layout_id'
No public methods.
New fields (0)
No new fields.
Public methods (1)-
default_get(self, fields_list)@api.model
New fields (1)
-
force_email_layout_idMany2one → ir.ui.viewcomodel_name='ir.ui.view'compute='_compute_force_email_layout_id'domain=[('type', '=', 'qweb'), ('mode', '=', 'primary')]help='Force a mail layout for this template.'inverse='_inverse_force_email_layout_id'string='Force Layout'
No public methods.
New fields (0)
No new fields.
Public methods (0)No public methods.
Loading…
Loading…
Loading…
Loading…
- Status
- Open migration PR — not merged yet for this version
- CI status
- green — ready to merge
- Open since
- 17 days ago
- Last activity
- 17 days ago
- Repository
- OCA/mail
- Pull request
- [19.0][MIG] mail_layout_force: Migration to 19.0 (#270)