Merge pull request #836 from anandpdoshi/anand-september-10

[permissions] Query Report: don't use a doctype for filtering User Permissions, if the column representing this doctype is empty
This commit is contained in:
Anand Doshi 2014-09-10 17:27:18 +05:30
commit 9e54ccc4a8

View file

@ -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):