From 501495a3c31d569bd86516a624f46434ef1bd648 Mon Sep 17 00:00:00 2001 From: lreficent Date: Thu, 27 Jul 2017 16:11:39 +0200 Subject: [PATCH] [IMP] add a server action to massively assign MOs. --- mrp_mto_with_stock/__openerp__.py | 5 +++- mrp_mto_with_stock/models/mrp_production.py | 10 ++++++- .../views/mrp_production_view.xml | 28 +++++++++++++++++++ 3 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 mrp_mto_with_stock/views/mrp_production_view.xml diff --git a/mrp_mto_with_stock/__openerp__.py b/mrp_mto_with_stock/__openerp__.py index 928dbc421..08fb4650a 100644 --- a/mrp_mto_with_stock/__openerp__.py +++ b/mrp_mto_with_stock/__openerp__.py @@ -15,5 +15,8 @@ "application": False, "installable": True, "depends": ["mrp"], - "data": ['views/product_template_view.xml'], + "data": [ + "views/product_template_view.xml", + "views/mrp_production_view.xml", + ], } diff --git a/mrp_mto_with_stock/models/mrp_production.py b/mrp_mto_with_stock/models/mrp_production.py index 281fc9ea8..87e0d107f 100644 --- a/mrp_mto_with_stock/models/mrp_production.py +++ b/mrp_mto_with_stock/models/mrp_production.py @@ -3,7 +3,8 @@ # Copyright 2015 John Walsh # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from openerp import api, models +from openerp import api, models, _ +from openerp.exceptions import UserError import logging _logger = logging.getLogger(__name__) @@ -11,6 +12,13 @@ _logger = logging.getLogger(__name__) class MrpProduction(models.Model): _inherit = 'mrp.production' + @api.multi + def action_mass_assign(self): + if any([x != 'confirmed' for x in self.mapped('state')]): + raise UserError(_( + "All Manufacturing Orders must be confirmed.")) + return self.action_assign() + @api.one def action_assign(self): """Reserves available products to the production order but also creates diff --git a/mrp_mto_with_stock/views/mrp_production_view.xml b/mrp_mto_with_stock/views/mrp_production_view.xml new file mode 100644 index 000000000..6d25e52e1 --- /dev/null +++ b/mrp_mto_with_stock/views/mrp_production_view.xml @@ -0,0 +1,28 @@ + + + + + + + Reserve MO + True + ir.actions.server + + code + self.action_mass_assign(cr, uid, context.get('active_ids', []), context=context) + + + + mrp.production.action - mass assign + + + action + + mrp.production + client_action_multi + + +