The list button was registered by reassigning frappe.listview_settings['Customer'] in a globally-loaded script, but ERPNext's own Customer list_js (loaded when the list opens) overwrote it, so the button never appeared. Register it via doctype_list_js instead — which Frappe appends after the doctype's own list_js — and merge into the existing settings (wrapping onload, preserving ERPNext's add_fields) rather than reassigning. The form button and shared ns_statements helpers stay in customer_statements.js. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
900 B
900 B