From 3934f119f94c2a68697f63d81a57c5a1b806a3b7 Mon Sep 17 00:00:00 2001 From: UmakanthKaspa Date: Wed, 4 Dec 2024 06:16:01 +0000 Subject: [PATCH] fix: exclude 'no copy' fields when duplicating child table rows --- frappe/public/js/frappe/form/grid.js | 31 ++++++++++++++++------------ 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/frappe/public/js/frappe/form/grid.js b/frappe/public/js/frappe/form/grid.js index 68321fdd2e..25c451c413 100644 --- a/frappe/public/js/frappe/form/grid.js +++ b/frappe/public/js/frappe/form/grid.js @@ -881,20 +881,25 @@ export default class Grid { } duplicate_row(d, copy_doc) { + const noCopyFields = new Set([ + "creation", + "modified", + "modified_by", + "idx", + "owner", + "parent", + "doctype", + "name", + "parentfield", + ]); + + const docfields = frappe.get_meta(this.doctype).fields || []; + $.each(docfields, function (_index, df) { + if (cint(df.no_copy)) noCopyFields.add(df.fieldname); + }); + $.each(copy_doc, function (key, value) { - if ( - ![ - "creation", - "modified", - "modified_by", - "idx", - "owner", - "parent", - "doctype", - "name", - "parentfield", - ].includes(key) - ) { + if (!noCopyFields.has(key)) { d[key] = value; } });