I would like to ovewrite partner_shipping_id
field in sale.order
to only display contacs from res.partner
that match partner_id
. Currently shows all existing contacts, so I would like to change this behavior.
This is what I tried:
partner_shipping_id = fields.Many2one(
'res.partner',
string='Delivery Address',
readonly=True,
required=True,
states={
'draft': [('readonly', False)],
'sent': [('readonly', False)],
'sale': [('readonly', False)]},
domain="[('child_ids.parent_id','=', partner_id)]"
# domain=
# "['|', ('company_id', '=', False), ('company_id', '=', company_id)]",
)
But this only returns the same selected record in parnter_id
field.
To show only partner contacts, use the following domain:
domain="[('parent_id', '=', partner_id)]"
Example:
<record id="sale_order_form_only_partner_contacts" model="ir.ui.view">
<field name="name">sale.order.form.only.partner.contacts</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form"/>
<field name="arch" type="xml">
<field name="partner_shipping_id" position="attributes">
<attribute name="domain">[('parent_id', '=', partner_id)]</attribute>
</field>
</field>
</record>