From c6a47ee2220b2ac8a22797a27f4031e4f67dba47 Mon Sep 17 00:00:00 2001 From: Matthieu Dietrich Date: Fri, 26 Aug 2016 16:33:43 +0200 Subject: [PATCH] Modify onchange in order to work for invoice_id --- crm_claim_rma/models/crm_claim.py | 16 +++++++++++++++- crm_claim_rma/views/crm_claim.xml | 10 ---------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/crm_claim_rma/models/crm_claim.py b/crm_claim_rma/models/crm_claim.py index c215160a..87cf0c4b 100644 --- a/crm_claim_rma/models/crm_claim.py +++ b/crm_claim_rma/models/crm_claim.py @@ -85,7 +85,21 @@ class CrmClaim(models.Model): help="Claim classification", required=True) - @api.onchange('invoice_id', 'warehouse_id', 'claim_type', 'date') + @api.onchange('invoice_id') + def _onchange_invoice(self): + # Since no parameters or context can be passed from the view, + # this method exists only to call the onchange below with + # a specific context (to recreate claim lines). + # This does require to re-assign self.invoice_id in the new object + claim_with_ctx = self.with_context( + create_lines=True + ) + claim_with_ctx.invoice_id = self.invoice_id + claim_with_ctx._onchange_invoice_warehouse_type_date() + values = claim_with_ctx._convert_to_write(claim_with_ctx._cache) + self.update(values) + + @api.onchange('warehouse_id', 'claim_type', 'date') def _onchange_invoice_warehouse_type_date(self): context = self.env.context claim_line = self.env['claim.line'] diff --git a/crm_claim_rma/views/crm_claim.xml b/crm_claim_rma/views/crm_claim.xml index 27742483..e85d9018 100644 --- a/crm_claim_rma/views/crm_claim.xml +++ b/crm_claim_rma/views/crm_claim.xml @@ -278,14 +278,4 @@ - - CRM - Claims Form - crm.claim - - - - {'create_lines': False} - - -