I have a one2many
widget that I need to have a condition when the user deletes any row.
Is there an on delete method that I can override? I have tried with unlink
method but it doesn't get executed by the one2many widget. And the row are still being deleted.
<field context="{'medical_quotation_id': medical_quotation_id, 'outpatient_id': id}" name="medical_quotation_line_ids" widget="one2many_list">
<tree string="Medical Quotation Lines" create="false">
<field name="sequence" widget="handle" />
<field name="medical_quotation_so_id" />
<field name="dealer" />
<field name="product_id" invisible="1"
on_change="onchange_product_id(product_id, product_uom_qty, False, name)" />
<field name="name" />
<field name="lot_id" />
<field name="remark" />
<field name="product_uom_qty"
on_change="onchange_product_id(product_id, product_uom_qty, False, name)" />
<field name="product_uom" options="{'no_open': True}" />
<field name="price_unit" />
<!-- <field name="tax_id" widget="many2many_tags" domain="[('parent_id','=',False),('type_tax_use','<>','purchase')]" /> -->
<field name="discount" />
<field name="price_subtotal" />
</tree>
</field>
@api.multi
def unlink(self):
# import ipdb; ipdb.set_trace()
for rec in self:
if rec.medical_quotation_so_id:
raise Warning(_('Cannot delete the line that has been invoiced!'))
if rec.dealer == 'system':
raise Warning(_('Cannot delete rows created by the system!'))
return super(MedicalQuotationLine, self).unlink()
Any ideas?
unlink
on One2many field deletes. Try to look into the parent model'swrite
method, at least there should be something like those black magic triple commands, which can be used. – CZoellnerOne2many
with currentOne2many
? Will try that, thanks. – strike_noir