28 lines
903 B
Python
28 lines
903 B
Python
import frappe
|
|
from frappe.model import no_value_fields
|
|
import json
|
|
|
|
@frappe.whitelist()
|
|
def get_preview_data(doctype, docname, fields):
|
|
fields = json.loads(fields)
|
|
preview_fields = [field['name'] for field in fields if field['type'] not in no_value_fields]
|
|
preview_fields.append(frappe.get_meta(doctype).get_title_field())
|
|
if 'name' not in fields:
|
|
preview_fields.append('name')
|
|
preview_fields.append(frappe.get_meta(doctype).image_field)
|
|
|
|
preview_data = frappe.get_list(doctype, filters={
|
|
'name': docname
|
|
}, fields=preview_fields, limit=1)
|
|
if preview_data:
|
|
preview_data = preview_data[0]
|
|
|
|
preview_data = {k: v for k, v in preview_data.items() if v is not None}
|
|
for k,v in preview_data.items():
|
|
if frappe.get_meta(doctype).has_field(k):
|
|
preview_data[k] = frappe.format(v,frappe.get_meta(doctype).get_field(k).fieldtype)
|
|
|
|
if not preview_data:
|
|
return None
|
|
return preview_data
|
|
|