I made all the other entries false if one entry is true. How do I protect this entry from being deleted? There must always be at least one entry.
res.partner.xml
<odoo>
<record id="view_partner_form_inherit" model="ir.ui.view">
<field name="name">res.partner.form</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<xpath expr="//form/sheet/group/group/field[@name='mobile']" position="after">
<field name="is_primary" string='Is primary'/>
</xpath>
<div t-att-class="color + (record.title.raw_value == 1 ? ' oe_kanban_color_alert' : '') + ' oe_kanban_global_click'">
<div style="float: right; margin-top:-25%;">
<xpath expr="//div[hasclass('oe_kanban_details')]" position="inside">
<field name="is_primary" widget="checkbox"/>
</xpath>
</div>
</div>
</field>
</record>
</odoo>
Primary_contact.py
from odoo import api, fields, models, _
class PartnerPrimary(models.Model):
_inherit = "res.partner"
is_primary = fields.Boolean(string='Is primary')
@api.constrains('is_primary')
def check_is_primary(self):
if self.is_primary:
contacts_ids = self.parent_id.child_ids.filtered(lambda lm: lm.id != self.id)
for cont in contacts_ids:
cont.is_primary = False