From fdc2bd8fe66839aa26c93df82be528bcda6f6de9 Mon Sep 17 00:00:00 2001 From: Ashish Shah Date: Tue, 14 May 2024 15:35:33 +0530 Subject: [PATCH] feat: functionality to assign users by user group (#26044) * feat: functionality to assign users by user group * fix: incorporate four comments from review by ankush * fix: linting issues --- .../js/frappe/form/sidebar/assign_to.js | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/frappe/public/js/frappe/form/sidebar/assign_to.js b/frappe/public/js/frappe/form/sidebar/assign_to.js index a5741522b7..e33e0868d4 100644 --- a/frappe/public/js/frappe/form/sidebar/assign_to.js +++ b/frappe/public/js/frappe/form/sidebar/assign_to.js @@ -139,6 +139,25 @@ frappe.ui.form.AssignToDialog = class AssignToDialog { me.dialog.set_value("assign_to", assign_to); } + user_group_list() { + let me = this; + let user_group = me.dialog.get_value("assign_to_user_group"); + me.dialog.set_value("assign_to_me", 0); + + if (user_group) { + let user_group_members = []; + frappe.db + .get_list("User Group Member", { + parent_doctype: "User Group", + filters: { parent: user_group }, + fields: ["user"], + }) + .then((response) => { + user_group_members = response.map((group_member) => group_member.user); + me.dialog.set_value("assign_to", user_group_members); + }); + } + } set_description_from_doc() { let me = this; @@ -157,6 +176,13 @@ frappe.ui.form.AssignToDialog = class AssignToDialog { default: 0, onchange: () => me.assign_to_me(), }, + { + label: __("Assign To User Group"), + fieldtype: "Link", + fieldname: "assign_to_user_group", + options: "User Group", + onchange: () => me.user_group_list(), + }, { fieldtype: "MultiSelectPills", fieldname: "assign_to",