Пример #1
0
def get_filtered_data(ref_doctype, columns, data, user):
    result = []
    linked_doctypes = get_linked_doctypes(columns, data)
    match_filters_per_doctype = get_user_match_filters(linked_doctypes,
                                                       user=user)
    shared = frappe.share.get_shared(ref_doctype, user)
    columns_dict = get_columns_dict(columns)

    role_permissions = get_role_permissions(frappe.get_meta(ref_doctype), user)
    if_owner = role_permissions.get("if_owner", {}).get("report")

    if match_filters_per_doctype:
        for row in data:
            # Why linked_doctypes.get(ref_doctype)? because if column is empty, linked_doctypes[ref_doctype] is removed
            if linked_doctypes.get(ref_doctype) and shared and row[
                    linked_doctypes[ref_doctype]] in shared:
                result.append(row)

            elif has_match(row, linked_doctypes, match_filters_per_doctype,
                           ref_doctype, if_owner, columns_dict, user):
                result.append(row)
    else:
        result = list(data)

    return result
Пример #2
0
def get_filtered_data(ref_doctype, columns, data):
	result = []
	linked_doctypes = get_linked_doctypes(columns, data)
	match_filters_per_doctype = get_user_match_filters(linked_doctypes, ref_doctype)
	shared = frappe.share.get_shared(ref_doctype)
	columns_dict = get_columns_dict(columns)

	role_permissions = get_role_permissions(frappe.get_meta(ref_doctype))
	if_owner = role_permissions.get("if_owner", {}).get("report")

	if match_filters_per_doctype:
		for row in data:
			if shared and row[linked_doctypes[ref_doctype]] in shared:
				result.append(row)

			elif has_match(row, linked_doctypes, match_filters_per_doctype, ref_doctype, if_owner, columns_dict):
				result.append(row)
	else:
		result = list(data)

	return result
Пример #3
0
def get_filtered_data(ref_doctype, columns, data, user):
	result = []
	linked_doctypes = get_linked_doctypes(columns, data)
	match_filters_per_doctype = get_user_match_filters(linked_doctypes, ref_doctype)
	shared = frappe.share.get_shared(ref_doctype, user)
	columns_dict = get_columns_dict(columns)

	role_permissions = get_role_permissions(frappe.get_meta(ref_doctype), user)
	if_owner = role_permissions.get("if_owner", {}).get("report")

	if match_filters_per_doctype:
		for row in data:
			# Why linked_doctypes.get(ref_doctype)? because if column is empty, linked_doctypes[ref_doctype] is removed
			if linked_doctypes.get(ref_doctype) and shared and row[linked_doctypes[ref_doctype]] in shared:
				result.append(row)

			elif has_match(row, linked_doctypes, match_filters_per_doctype, ref_doctype, if_owner, columns_dict, user):
				result.append(row)
	else:
		result = list(data)

	return result