diff options
| author | fw-bot <otis@odoo.com> | 2019-11-15 18:19:45 +0000 |
|---|---|---|
| committer | fw-bot <otis@odoo.com> | 2019-11-18 19:28:01 +0000 |
| commit | abd9d1506ea4af29a98278c4cbd514e2cf4c54f3 (patch) | |
| tree | 1d5e241479274febdcbacb461823f9b984666a58 /addons | |
| parent | b0b5fa6ec95d713c06cc897204019c443d2c6fbb (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>
Diffstat (limited to 'addons')
| -rw-r--r-- | addons/mrp/i18n/mrp.pot | 6 | ||||
| -rw-r--r-- | addons/mrp/models/mrp_bom.py | 7 |
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] |
