diff --git a/frappe/__init__.py b/frappe/__init__.py
index 53bd569f90..07a15d2ca3 100644
--- a/frappe/__init__.py
+++ b/frappe/__init__.py
@@ -1473,18 +1473,28 @@ def logger(
def get_desk_link(doctype, name, show_title_with_name=False, open_in_new_tab=False):
+ from urllib.parse import quote
+
meta = get_meta(doctype)
title = get_value(doctype, name, meta.get_title_field())
target_attr = ' target="_blank"' if open_in_new_tab else ""
+ # encode for href
+ encoded_name = quote(name)
+
if show_title_with_name and name != title:
- html = '{doctype_local} {name}: {title_local}'
+ html = '{doctype_local} {name}: {title_local}'
else:
- html = '{doctype_local} {title_local}'
+ html = '{doctype_local} {title_local}'
return html.format(
- doctype=doctype, name=name, doctype_local=_(doctype), title_local=_(title), target=target_attr
+ doctype=doctype,
+ name=name,
+ encoded_name=encoded_name,
+ doctype_local=_(doctype),
+ title_local=_(title),
+ target=target_attr,
)