PURPOSE Allow alias domains to be multiple, notably to be used in a multi company environment where each company has its own alias domain. SPECIFICATIONS Add a new 'mail.alias.domain' model storing information previously stored as a unique value in 'mail.catchall.domain' configuration parameter. Domains are not completely linked to companies, allowing to have a mono-domain MC setup, or mono-company multi-domain setup. A main email domain is present on companies for all default domain computation when being in that company while keeping flexibility of having other domains defined. Now that a new 'mail.alias.domain' model exists we move bounce and catchall aliases definition directly on this model. Update related computation on company model. Default_from is also moved on this model, allowing an higher level default from computation for mail servers when having knowledge of alias domain environment. Filtering configuration based on default_from_filter is kept as an ICP as it is mainly used for odoo-bin with smtp-host. Usage of 'mail.catchall.domain' will soon be completely removed to be replaced by proposed company-based email alias domain usage. Constraints are added so that each bounce and catchall defined on domains do not clash with existing aliases. Sanitize of bounce and catchall is also performed to ensure they make valid emails. This matches previous behavior of ICP parameters. Domain name is also sanitized like alias names. Currently only base modeling and computation is done. Their usage is about to be gradually added in mail stack. LINKS Task-36879 (Mail: Support Multi Domains Aliases) Part-of: odoo/odoo#76734
64 lines
2.5 KiB
XML
64 lines
2.5 KiB
XML
<?xml version="1.0"?>
|
|
<odoo>
|
|
|
|
<record id="mail_alias_domain_view_form" model="ir.ui.view">
|
|
<field name="name">mail.alias.domain.view.form</field>
|
|
<field name="model">mail.alias.domain</field>
|
|
<field name="arch" type="xml">
|
|
<form string="Alias Domain" duplicate="false">
|
|
<sheet>
|
|
<group>
|
|
<field name="name"/>
|
|
<field name="bounce_alias"/>
|
|
<field name="catchall_alias"/>
|
|
<field name="default_from"/>
|
|
<field name="company_ids" widget="many2many_tags"
|
|
readonly="True"
|
|
groups="base.group_multi_company"/>
|
|
</group>
|
|
</sheet>
|
|
</form>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="mail_alias_domain_view_tree" model="ir.ui.view">
|
|
<field name="name">mail.alias.domain.view.tree</field>
|
|
<field name="model">mail.alias.domain</field>
|
|
<field name="arch" type="xml">
|
|
<tree string="Alias Domains" duplicate="false">
|
|
<field name="sequence" widget="handle"/>
|
|
<field name="name"/>
|
|
<field name="bounce_alias"/>
|
|
<field name="catchall_alias"/>
|
|
<field name="default_from"/>
|
|
<field name="company_ids" optional="hide" groups="base.group_multi_company"/>
|
|
</tree>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="mail_alias_domain_view_search" model="ir.ui.view">
|
|
<field name="name">mail.alias.domain.view.search</field>
|
|
<field name="model">mail.alias.domain</field>
|
|
<field name="arch" type="xml">
|
|
<search string="Alias Domains">
|
|
<field name="name"/>
|
|
<field name="bounce_alias"/>
|
|
<field name="catchall_alias"/>
|
|
<field name="company_ids" groups="base.group_multi_company"/>
|
|
<group expand="0" string="Group By">
|
|
<filter string="Company" name="group_by_company_ids"
|
|
domain="[]" context="{'group_by': 'company_ids'}"
|
|
groups="base.group_multi_company"/>
|
|
</group>
|
|
</search>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="mail_alias_domain_action" model="ir.actions.act_window">
|
|
<field name="name">Alias Domains</field>
|
|
<field name="res_model">mail.alias.domain</field>
|
|
<field name="view_mode">tree,form</field>
|
|
</record>
|
|
|
|
</odoo>
|