Пример #1
0
def get_linked_docs(doctype, name, metadata_loaded=None):
	if not metadata_loaded: metadata_loaded = []
	meta = frappe.widgets.form.meta.get_meta(doctype)
	linkinfo = meta.get("__linked_with")
	results = {}
	for dt, link in linkinfo.items():
		link["doctype"] = dt
		link_meta_bundle = frappe.widgets.form.load.get_meta_bundle(dt)
		linkmeta = link_meta_bundle[0]
		if not linkmeta.get("issingle"):
			fields = [d.fieldname for d in linkmeta.get("fields", {"in_list_view":1,
				"fieldtype": ["not in", ["Image", "HTML", "Button", "Table"]]})] \
				+ ["name", "modified", "docstatus"]

			fields = ["`tab{dt}`.`{fn}`".format(dt=dt, fn=sf.strip()) for sf in fields if sf]

			if link.get("child_doctype"):
				ret = frappe.get_list(doctype=dt, fields=fields,
					filters=[[link.get('child_doctype'), link.get("fieldname"), '=', name]])

			else:
				ret = frappe.get_list(doctype=dt, fields=fields,
					filters=[[dt, link.get("fieldname"), '=', name]])

			if ret:
				results[dt] = ret

			if not dt in metadata_loaded:
				frappe.local.response.docs.extend(link_meta_bundle)


	return results
Пример #2
0
def get_linked_docs(doctype, name, metadata_loaded=None):
	if not metadata_loaded: metadata_loaded = []
	meta = frappe.widgets.form.meta.get_meta(doctype)
	linkinfo = meta.get("__linked_with")
	results = {}
	for dt, link in linkinfo.items():
		link["doctype"] = dt
		link_meta_bundle = frappe.widgets.form.load.get_meta_bundle(dt)
		linkmeta = link_meta_bundle[0]
		if not linkmeta.get("issingle"):
			fields = [d.fieldname for d in linkmeta.get("fields", {"in_list_view":1,
				"fieldtype": ["not in", ["Image", "HTML", "Button", "Table"]]})] \
				+ ["name", "modified", "docstatus"]

			fields = ["`tab{dt}`.`{fn}`".format(dt=dt, fn=sf.strip()) for sf in fields if sf]

			if link.get("child_doctype"):
				ret = frappe.get_list(doctype=dt, fields=fields,
					filters=[[link.get('child_doctype'), link.get("fieldname"), '=', name]])

			else:
				ret = frappe.get_list(doctype=dt, fields=fields,
					filters=[[dt, link.get("fieldname"), '=', name]])

			if ret:
				results[dt] = ret

			if not dt in metadata_loaded:
				frappe.local.response.docs.extend(link_meta_bundle)


	return results