From 5754ef750b5ed76c0808347790da3fb4f82bea4e Mon Sep 17 00:00:00 2001 From: Himanshu Warekar Date: Sun, 5 Jan 2020 22:09:20 +0530 Subject: [PATCH] fix: use _user_tags instead of Tag Link --- frappe/desk/doctype/tag/tag.py | 1 - frappe/desk/reportview.py | 26 +------------------ frappe/public/js/frappe/list/list_sidebar.js | 7 +++-- frappe/public/js/frappe/list/list_view.js | 2 +- frappe/public/js/frappe/ui/filters/filter.js | 5 ---- .../js/frappe/ui/filters/filter_list.js | 5 ---- 6 files changed, 5 insertions(+), 41 deletions(-) diff --git a/frappe/desk/doctype/tag/tag.py b/frappe/desk/doctype/tag/tag.py index 0e2afbb35c..63aa93e7ff 100644 --- a/frappe/desk/doctype/tag/tag.py +++ b/frappe/desk/doctype/tag/tag.py @@ -171,7 +171,6 @@ def get_documents_for_tag(tag): "content": res.title }) - print(results) return results @frappe.whitelist() diff --git a/frappe/desk/reportview.py b/frappe/desk/reportview.py index c0685b67f2..db37bc6df0 100644 --- a/frappe/desk/reportview.py +++ b/frappe/desk/reportview.py @@ -263,32 +263,8 @@ def delete_bulk(doctype, items): @frappe.whitelist() @frappe.read_only() def get_sidebar_stats(stats, doctype, filters=[]): - _user_tags, tag_list = [], [] - data = frappe._dict(frappe.local.form_dict) - filters = json.loads(data["filters"]) - # Show Tags irrespective of any tag filter set - for idx, filter in enumerate(filters): - if filter[0] == "Tag Link": - filters.pop(idx) - break - - for tag in frappe.get_all("Tag Link", filters={"document_type": doctype}, fields=["tag"]): - if tag.tag in tag_list: - continue - - tag_list.append(tag.tag) - tag_filters = [] - tag_filters.extend(filters) - tag_filters.extend([['Tag Link', 'tag', '=', tag.tag]]) - - fields = ["count(distinct `tab{0}`.`name`) AS total_count".format(doctype)] - count = frappe.get_all(doctype, filters=tag_filters, fields=fields) - - if count[0].get("total_count") > 0: - _user_tags.append([tag.tag, count[0].get("total_count")]) - - return {"stats": {"_user_tags": _user_tags}} + return {"stats": get_stats(stats, doctype, filters)} @frappe.whitelist() @frappe.read_only() diff --git a/frappe/public/js/frappe/list/list_sidebar.js b/frappe/public/js/frappe/list/list_sidebar.js index 88b5393c15..47807ac214 100644 --- a/frappe/public/js/frappe/list/list_sidebar.js +++ b/frappe/public/js/frappe/list/list_sidebar.js @@ -335,14 +335,13 @@ frappe.views.ListSidebar = class ListSidebar { field: field, stat: stats, sum: sum, - label: field === '_user_tags' ? (tags ? __(label) : __("Tag")) : __(label), + label: field === '_user_tags' ? (tags ? __(label) : __("Tags")) : __(label), }; $(frappe.render_template("list_sidebar_stat", context)) .on("click", ".stat-link", function() { - var doctype = "Tag Link"; var fieldname = $(this).attr('data-field'); var label = $(this).attr('data-label'); - var condition = "="; + var condition = "like"; var existing = me.list_view.filter_area.filter_list.get_filter(fieldname); if(existing) { existing.remove(); @@ -351,7 +350,7 @@ frappe.views.ListSidebar = class ListSidebar { label = "%,%"; condition = "not like"; } - me.list_view.filter_area.filter_list.add_filter(doctype, fieldname, condition, label) + me.list_view.filter_area.filter_list.add_filter(me.list_view.doctype, fieldname, condition, label) .then(function() { me.list_view.refresh(); }); diff --git a/frappe/public/js/frappe/list/list_view.js b/frappe/public/js/frappe/list/list_view.js index 561117e342..377f668864 100644 --- a/frappe/public/js/frappe/list/list_view.js +++ b/frappe/public/js/frappe/list/list_view.js @@ -470,7 +470,7 @@ frappe.views.ListView = class ListView extends frappe.views.BaseList { tag_editor.wrapper.on('click', '.tagit-label', (e) => { const $this = $(e.currentTarget); - this.filter_area.add('Tag Link', 'tag', '=', $this.text()); + this.filter_area.add(this.doctype, '_user_tags', '=', $this.text()); }); }); } diff --git a/frappe/public/js/frappe/ui/filters/filter.js b/frappe/public/js/frappe/ui/filters/filter.js index 5cdc3424f8..08b6524afc 100644 --- a/frappe/public/js/frappe/ui/filters/filter.js +++ b/frappe/public/js/frappe/ui/filters/filter.js @@ -174,11 +174,6 @@ frappe.ui.Filter = class { let original_docfield = (this.fieldselect.fields_by_name[doctype] || {})[fieldname]; - if (doctype === "Tag Link" || fieldname === "_user_tags") { - original_docfield = {fieldname: "tag", fieldtype: "Data", label: "Tags", parent: "Tag Link"}; - doctype = "Tag Link"; - } - if(!original_docfield) { console.warn(`Field ${fieldname} is not selectable.`); this.remove(); diff --git a/frappe/public/js/frappe/ui/filters/filter_list.js b/frappe/public/js/frappe/ui/filters/filter_list.js index b9a131d4c7..77d3cbfcd3 100644 --- a/frappe/public/js/frappe/ui/filters/filter_list.js +++ b/frappe/public/js/frappe/ui/filters/filter_list.js @@ -63,11 +63,6 @@ frappe.ui.FilterGroup = class { } validate_args(doctype, fieldname) { - // Tags attached to the document are maintained seperately in Tag Link - // and is not the part of doctype meta therefore tag fieldname validation is ignored. - if (doctype === "Tag Link" && fieldname === "tag") { - return true; - } if(doctype && fieldname && !frappe.meta.has_field(doctype, fieldname)