diff --git a/frappe/social/doctype/energy_point_rule/energy_point_rule.js b/frappe/social/doctype/energy_point_rule/energy_point_rule.js index b315dc75ae..5e813694b2 100644 --- a/frappe/social/doctype/energy_point_rule/energy_point_rule.js +++ b/frappe/social/doctype/energy_point_rule/energy_point_rule.js @@ -3,6 +3,27 @@ frappe.ui.form.on('Energy Point Rule', { refresh: function(frm) { + frm.events.set_user_and_multiplier_field_options(frm); + }, + reference_doctype(frm) { + frm.events.set_user_and_multiplier_field_options(frm); + }, + set_user_and_multiplier_field_options(frm) { + const reference_doctype = frm.doc.reference_doctype; + if (!reference_doctype) return; + frappe.model.with_doctype(reference_doctype, () => { + const map_for_options = df => ({ label: df.label, value: df.fieldname }); + const fields = frappe.meta.get_docfields(frm.doc.reference_doctype); + const user_fields = fields.filter(df => df.fieldtype === 'Link' && df.options === 'User') + .map(map_for_options) + .concat([{label: __('Owner'), value: 'owner'}]); + + const multiplier_fields = fields.filter(df => df.fieldtype === 'Int') + .map(map_for_options); + + frm.set_df_property('user_field', 'options', user_fields); + frm.set_df_property('multiplier_field', 'options', multiplier_fields); + }); } }); diff --git a/frappe/social/doctype/energy_point_rule/energy_point_rule.json b/frappe/social/doctype/energy_point_rule/energy_point_rule.json index 9fc6221705..0b9d7a4516 100644 --- a/frappe/social/doctype/energy_point_rule/energy_point_rule.json +++ b/frappe/social/doctype/energy_point_rule/energy_point_rule.json @@ -189,9 +189,10 @@ "bold": 0, "collapsible": 0, "columns": 0, + "description": "The user from this field will be rewarded points", "fetch_if_empty": 0, "fieldname": "user_field", - "fieldtype": "Data", + "fieldtype": "Select", "hidden": 0, "ignore_user_permissions": 0, "ignore_xss_filter": 0, @@ -214,6 +215,39 @@ "set_only_once": 0, "translatable": 0, "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_in_quick_entry": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fetch_if_empty": 0, + "fieldname": "multiplier_field", + "fieldtype": "Select", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Multiplier Field", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, + "unique": 0 } ], "has_web_view": 0, @@ -226,7 +260,7 @@ "issingle": 0, "istable": 0, "max_attachments": 0, - "modified": "2019-03-19 16:16:37.205403", + "modified": "2019-03-21 11:36:06.399428", "modified_by": "Administrator", "module": "Social", "name": "Energy Point Rule",