From abd9d1506ea4af29a98278c4cbd514e2cf4c54f3 Mon Sep 17 00:00:00 2001 From: fw-bot Date: Fri, 15 Nov 2019 18:19:45 +0000 Subject: [PATCH] [FIX] mrp: error w/o traceback on create BoM If a Bill of Material is created without code (eg. when created as a new group from a kanban view grouped by BoM) we would get a traceback instead of an error. With this changeset, we get a "You cannot create a new Bill of Material from here." error if it is being tried. opw-2124162 fix #38904 closes #40289 closes odoo/odoo#40457 X-original-commit: 32c13cd7d1387c0ea81a9bb5968d18c2b8f32051 Signed-off-by: Nicolas Lempereur (nle) --- addons/mrp/i18n/mrp.pot | 6 ++++++ addons/mrp/models/mrp_bom.py | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/addons/mrp/i18n/mrp.pot b/addons/mrp/i18n/mrp.pot index 71f076ca01e..8cfa63f9fa6 100644 --- a/addons/mrp/i18n/mrp.pot +++ b/addons/mrp/i18n/mrp.pot @@ -4711,6 +4711,12 @@ msgid "" "numbers encoded." msgstr "" +#. module: mrp +#: code:addons/mrp/models/mrp_bom.py:0 +#, python-format +msgid "You cannot create a new Bill of Material from here." +msgstr "" + #. module: mrp #: code:addons/mrp/models/mrp_unbuild.py:0 #, python-format diff --git a/addons/mrp/models/mrp_bom.py b/addons/mrp/models/mrp_bom.py index 2b3b7a40b04..5988f2c0ba5 100644 --- a/addons/mrp/models/mrp_bom.py +++ b/addons/mrp/models/mrp_bom.py @@ -121,6 +121,13 @@ class MrpBom(models.Model): for line in self.bom_line_ids: line.operation_id = False + @api.model + def name_create(self, name): + # prevent to use string as product_tmpl_id + if isinstance(name, str): + raise UserError(_("You cannot create a new Bill of Material from here.")) + return super(MrpBom, self).name_create(name) + def name_get(self): return [(bom.id, '%s%s' % (bom.code and '%s: ' % bom.code or '', bom.product_tmpl_id.display_name)) for bom in self]