diff --git a/addons/mrp/models/mrp_production.py b/addons/mrp/models/mrp_production.py
index 8e8308b4f4b..8f89508659b 100644
--- a/addons/mrp/models/mrp_production.py
+++ b/addons/mrp/models/mrp_production.py
@@ -2695,3 +2695,31 @@ class MrpProduction(models.Model):
action = self.env.ref("stock.label_lot_template").report_action(lot_id.id, config=False)
clean_action(action, self.env)
return action
+
+ def action_open_label_layout(self):
+ view = self.env.ref('stock.product_label_layout_form_picking')
+ return {
+ 'name': _('Choose Labels Layout'),
+ 'type': 'ir.actions.act_window',
+ 'res_model': 'product.label.layout',
+ 'views': [(view.id, 'form')],
+ 'target': 'new',
+ 'context': {
+ 'default_product_ids': self.move_finished_ids.product_id.ids,
+ 'default_move_ids': self.move_finished_ids.ids,
+ 'default_picking_quantity': 'picking'},
+ }
+
+ def action_open_label_type(self):
+ move_line_ids = self.move_finished_ids.mapped('move_line_ids')
+ if self.user_has_groups('stock.group_production_lot') and move_line_ids.lot_id:
+ view = self.env.ref('stock.picking_label_type_form')
+ return {
+ 'name': _('Choose Type of Labels To Print'),
+ 'type': 'ir.actions.act_window',
+ 'res_model': 'picking.label.type',
+ 'views': [(view.id, 'form')],
+ 'target': 'new',
+ 'context': {'default_picking_ids': self.move_finished_ids},
+ }
+ return self.action_open_label_layout()
diff --git a/addons/mrp/views/mrp_production_views.xml b/addons/mrp/views/mrp_production_views.xml
index ed2881db2a0..58ac1cf4f95 100644
--- a/addons/mrp/views/mrp_production_views.xml
+++ b/addons/mrp/views/mrp_production_views.xml
@@ -164,6 +164,7 @@
invisible="not id or state in ('done', 'cancel') or not confirm_cancel"
confirm="Some product moves have already been confirmed, this manufacturing order can't be completely cancelled. Are you still sure you want to process?"/>
+