From d6ca8baf0bcf26acbf3af358def1d7deb293792e Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Fri, 20 Jun 2014 19:09:43 +0530 Subject: [PATCH] dynamic_link_fix --- frappe/model/base_document.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/frappe/model/base_document.py b/frappe/model/base_document.py index b0600a96d4..fd3d66e001 100644 --- a/frappe/model/base_document.py +++ b/frappe/model/base_document.py @@ -267,17 +267,18 @@ class BaseDocument(object): for df in self.meta.get_link_fields() + self.meta.get("fields", {"fieldtype":"Dynamic Link"}): - if df.fieldtype=="Link": - doctype = df.options - if not doctype: - frappe.throw(_("Options not set for link field {0}").format(df.fieldname)) - else: - doctype = self.get(df.options) - if not doctype: - frappe.throw(_("{0} must be set first").format(self.meta.get_label(df.options))) docname = self.get(df.fieldname) if docname: + if df.fieldtype=="Link": + doctype = df.options + if not doctype: + frappe.throw(_("Options not set for link field {0}").format(df.fieldname)) + else: + doctype = self.get(df.options) + if not doctype: + frappe.throw(_("{0} must be set first").format(self.meta.get_label(df.options))) + # MySQL is case insensitive. Preserve case of the original docname in the Link Field. value = frappe.db.get_value(doctype, docname) setattr(self, df.fieldname, value)