diff --git a/erpnext/stock/doctype/material_request/material_request.js b/erpnext/stock/doctype/material_request/material_request.js
index b97da693b41..eb298a60aa3 100644
--- a/erpnext/stock/doctype/material_request/material_request.js
+++ b/erpnext/stock/doctype/material_request/material_request.js
@@ -299,6 +299,7 @@ frappe.ui.form.on('Material Request', {
args: {
"material_request": frm.doc.name
},
+ freeze: true,
callback: function(r) {
if(r.message.length) {
frm.reload_doc();
diff --git a/erpnext/stock/doctype/material_request/material_request.py b/erpnext/stock/doctype/material_request/material_request.py
index 2d9855713c3..739d7492caa 100644
--- a/erpnext/stock/doctype/material_request/material_request.py
+++ b/erpnext/stock/doctype/material_request/material_request.py
@@ -8,7 +8,7 @@ from __future__ import unicode_literals
import frappe
import json
-from frappe.utils import cstr, flt, getdate, new_line_sep, nowdate, add_days
+from frappe.utils import cstr, flt, getdate, new_line_sep, nowdate, add_days, get_link_to_form
from frappe import msgprint, _
from frappe.model.mapper import get_mapped_doc
from erpnext.stock.stock_balance import update_bin_qty, get_indented_qty
@@ -522,15 +522,22 @@ def raise_work_orders(material_request):
work_orders.append(wo_order.name)
else:
- errors.append(_("Row {0}: Bill of Materials not found for the Item {1}").format(d.idx, d.item_code))
+ errors.append(_("Row {0}: Bill of Materials not found for the Item {1}")
+ .format(d.idx, get_link_to_form("Item", d.item_code)))
if work_orders:
- message = ["""%s""" % \
- (p, p) for p in work_orders]
- msgprint(_("The following Work Orders were created:") + '\n' + new_line_sep(message))
+ work_orders_list = [get_link_to_form("Work Order", d) for d in work_orders]
+
+ if len(work_orders) > 1:
+ msgprint(_("The following {0} were created: {1}")
+ .format(frappe.bold(_("Work Orders")), '
' + ', '.join(work_orders_list)))
+ else:
+ msgprint(_("The {0} {1} created sucessfully")
+ .format(frappe.bold(_("Work Order")), work_orders_list[0]))
if errors:
- frappe.throw(_("Work Order cannot be created for following reason:") + '\n' + new_line_sep(errors))
+ frappe.throw(_("Work Order cannot be created for following reason:
{0}")
+ .format(new_line_sep(errors)))
return work_orders