diff --git a/frappe/public/js/frappe/ui/filters/filter.js b/frappe/public/js/frappe/ui/filters/filter.js index 5e41ed645e..d4fb6db436 100644 --- a/frappe/public/js/frappe/ui/filters/filter.js +++ b/frappe/public/js/frappe/ui/filters/filter.js @@ -249,7 +249,9 @@ frappe.ui.Filter = class { let args = {}; if (this.filters_config[condition].depends_on) { const field_name = this.filters_config[condition].depends_on; - const filter_value = this.base_list.get_filter_value(field_name); + const filter_value = this.base_list + ? this.base_list.get_filter_value(field_name) + : this.filter_list.get_filter_value(field_name); args[field_name] = filter_value; } frappe diff --git a/frappe/public/js/frappe/ui/filters/filter_list.js b/frappe/public/js/frappe/ui/filters/filter_list.js index ed9ddefe64..7ae48bc7d9 100644 --- a/frappe/public/js/frappe/ui/filters/filter_list.js +++ b/frappe/public/js/frappe/ui/filters/filter_list.js @@ -104,13 +104,18 @@ frappe.ui.FilterGroup = class { filter_items: (doctype, fieldname) => { return !this.filter_exists([doctype, fieldname]); }, - base_list: this.base_list + base_list: this.base_list, + filter_list: this, }; let filter = new frappe.ui.Filter(args); this.filters.push(filter); return filter; } + get_filter_value(fieldname) { + return this.filters.filter(f => f.fieldname == fieldname)[0].value; + } + filter_exists(filter_value) { // filter_value of form: [doctype, fieldname, condition, value] let exists = false;