浏览代码

[permissions] Query Report: don't use a doctype for filtering User Permissions, if the column representing this doctype is empty

version-14
Anand Doshi 11 年前
父节点
当前提交
65ff08e7e9
共有 1 个文件被更改,包括 7 次插入2 次删除
  1. +7
    -2
      frappe/widgets/query_report.py

+ 7
- 2
frappe/widgets/query_report.py 查看文件

@@ -138,7 +138,7 @@ def add_total_row(result, columns):

def get_filtered_data(ref_doctype, columns, data):
result = []
linked_doctypes = get_linked_doctypes(columns)
linked_doctypes = get_linked_doctypes(columns, data)
match_filters_per_doctype = get_user_match_filters(linked_doctypes, ref_doctype)

if match_filters_per_doctype:
@@ -183,7 +183,7 @@ def has_match(row, linked_doctypes, doctype_match_filters):

return resultant_match

def get_linked_doctypes(columns):
def get_linked_doctypes(columns, data):
linked_doctypes = {}

for idx, col in enumerate(columns):
@@ -197,6 +197,11 @@ def get_linked_doctypes(columns):
elif col.get("fieldtype")=="Link" and col.get("options"):
linked_doctypes[col["options"]] = col["fieldname"]

# remove doctype if column is empty
for doctype, key in linked_doctypes.items():
if not any(d[key] for d in data):
del linked_doctypes[doctype]

return linked_doctypes

def get_user_match_filters(doctypes, ref_doctype):


正在加载...
取消
保存