From dd767bd6878ce0ff6c90538ccecd2bd222ebff8f Mon Sep 17 00:00:00 2001 From: Ankush Menat Date: Mon, 25 Jul 2022 17:47:52 +0530 Subject: [PATCH] refactor: move get_involved_users to form Involved users is a property of the form and doesn't have much to do with reviews. --- frappe/public/js/frappe/form/form.js | 23 +++++++++++++++++++ .../public/js/frappe/form/sidebar/review.js | 23 +------------------ 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/frappe/public/js/frappe/form/form.js b/frappe/public/js/frappe/form/form.js index 4e38a5ee7e..854a1723d9 100644 --- a/frappe/public/js/frappe/form/form.js +++ b/frappe/public/js/frappe/form/form.js @@ -1873,6 +1873,29 @@ frappe.ui.form.Form = class FrappeForm { get_active_tab() { return this.active_tab_map && this.active_tab_map[this.docname]; } + + get_involved_users() { + const user_fields = this.meta.fields + .filter(d => d.fieldtype === 'Link' && d.options === 'User') + .map(d => d.fieldname); + + user_fields.push('owner'); + let involved_users = user_fields.map(field => this.doc[field]); + + const docinfo = this.get_docinfo(); + + involved_users = involved_users.concat( + docinfo.communications.map(d => d.sender && d.delivery_status === 'sent'), + docinfo.comments.map(d => d.owner), + docinfo.versions.map(d => d.owner), + docinfo.assignments.map(d => d.owner) + ); + + return involved_users + .uniqBy(u => u) + .filter(user => !['Administrator', frappe.session.user].includes(user)) + .filter(Boolean); + } }; frappe.validated = 0; diff --git a/frappe/public/js/frappe/form/sidebar/review.js b/frappe/public/js/frappe/form/sidebar/review.js index 2d54ad4329..242f6f0435 100644 --- a/frappe/public/js/frappe/form/sidebar/review.js +++ b/frappe/public/js/frappe/form/sidebar/review.js @@ -38,30 +38,9 @@ frappe.ui.form.Review = class Review { review_button.click(() => this.show_review_dialog()); } } - get_involved_users() { - const user_fields = this.frm.meta.fields - .filter(d => d.fieldtype === 'Link' && d.options === 'User') - .map(d => d.fieldname); - user_fields.push('owner'); - let involved_users = user_fields.map(field => this.frm.doc[field]); - - const docinfo = this.frm.get_docinfo(); - - involved_users = involved_users.concat( - docinfo.communications.map(d => d.sender && d.delivery_status === 'sent'), - docinfo.comments.map(d => d.owner), - docinfo.versions.map(d => d.owner), - docinfo.assignments.map(d => d.owner) - ); - - return involved_users - .uniqBy(u => u) - .filter(user => !['Administrator', frappe.session.user].includes(user)) - .filter(Boolean); - } show_review_dialog() { - const user_options = this.get_involved_users(); + const user_options = this.frm.get_involved_users(); const review_dialog = new frappe.ui.Dialog({ 'title': __('Add Review'), 'fields': [{