[FIX] mrp_usability: button action for BoMs needs _for_xml_id()

Avoiding blocking access for users without Admin rigts
This commit is contained in:
clementmbr
2021-10-11 20:08:05 +02:00
committed by Alexis de Lattre
parent f6ddbb48ac
commit 05374c4b4a

View File

@@ -12,16 +12,20 @@ class ProductTemplate(models.Model):
only one BoM form or a list of BoMs.""" only one BoM form or a list of BoMs."""
self.ensure_one() self.ensure_one()
if self.bom_count == 1: if self.bom_count == 1:
action = self.env.ref("mrp.mrp_bom_form_action").read()[0] action_xml_id = "mrp.mrp_bom_form_action"
action = self.env["ir.actions.actions"]._for_xml_id(action_xml_id)
bom = self.env["mrp.bom"].search([("product_tmpl_id", "=", self.id)]) bom = self.env["mrp.bom"].search([("product_tmpl_id", "=", self.id)])
action.update({ action.update(
"context": {"default_product_tmpl_id": self.id}, {
"views": False, "context": {"default_product_tmpl_id": self.id},
"view_mode": "form,tree", "views": False,
"res_id": bom.id, "view_mode": "form,tree",
}) "res_id": bom.id,
}
)
else: else:
action = self.env.ref("mrp.template_open_bom").read()[0] action_xml_id = "mrp.template_open_bom"
action = self.env["ir.actions.actions"]._for_xml_id(action_xml_id)
return action return action
@@ -32,9 +36,11 @@ class ProductProduct(models.Model):
action = super().action_view_bom() action = super().action_view_bom()
bom_target_ids = self.env["mrp.bom"].search(action["domain"]) bom_target_ids = self.env["mrp.bom"].search(action["domain"])
if len(bom_target_ids) == 1: if len(bom_target_ids) == 1:
action.update({ action.update(
"views": False, {
"view_mode": "form,tree", "views": False,
"res_id": bom_target_ids[0].id, "view_mode": "form,tree",
}) "res_id": bom_target_ids[0].id,
}
)
return action return action