summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfw-bot <otis@odoo.com>2019-11-15 18:19:45 +0000
committerfw-bot <otis@odoo.com>2019-11-18 19:28:01 +0000
commitabd9d1506ea4af29a98278c4cbd514e2cf4c54f3 (patch)
tree1d5e241479274febdcbacb461823f9b984666a58
parentb0b5fa6ec95d713c06cc897204019c443d2c6fbb (diff)
[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) <nle@odoo.com>
-rw-r--r--addons/mrp/i18n/mrp.pot6
-rw-r--r--addons/mrp/models/mrp_bom.py7
2 files changed, 13 insertions, 0 deletions
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
@@ -4712,6 +4712,12 @@ msgid ""
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
msgid "You cannot delete an unbuild order if the state is 'Done'."
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]