From 81587bb38eea609cf4e54a8b20dc39454a8cb861 Mon Sep 17 00:00:00 2001 From: SilvioGregorini Date: Wed, 31 Mar 2021 16:53:42 +0200 Subject: [PATCH] [FIX] rma_sale: fix wrong values for RMA creation Lesser fix for creating RMA from website. Current values will break any custom behaviour because Many2one fields are set using strings instead of integer (IDs). --- rma_sale/controllers/sale_portal.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/rma_sale/controllers/sale_portal.py b/rma_sale/controllers/sale_portal.py index b587abcc..e8eec8e6 100644 --- a/rma_sale/controllers/sale_portal.py +++ b/rma_sale/controllers/sale_portal.py @@ -25,11 +25,16 @@ class CustomerPortal(CustomerPortal): return request.redirect("/my") order_obj = request.env["sale.order"] wizard_obj = request.env["sale.order.rma.wizard"] + wizard_line_field_types = { + f: d["type"] for f, d in wizard_obj.line_ids.fields_get().items() + } # Set wizard line vals mapped_vals = {} partner_shipping_id = post.pop("partner_shipping_id", False) for name, value in post.items(): row, field_name = name.split("-", 1) + if wizard_line_field_types.get(field_name) == "many2one": + value = int(value) if value else False mapped_vals.setdefault(row, {}).update({field_name: value}) # If no operation is filled, no RMA will be created line_vals = [