diff --git a/frappe/contacts/report/addresses_and_contacts/addresses_and_contacts.py b/frappe/contacts/report/addresses_and_contacts/addresses_and_contacts.py index ce0d91953f..354911cd70 100644 --- a/frappe/contacts/report/addresses_and_contacts/addresses_and_contacts.py +++ b/frappe/contacts/report/addresses_and_contacts/addresses_and_contacts.py @@ -67,10 +67,14 @@ def get_reference_addresses_and_contact(reference_doctype, reference_name): result.extend(add_blank_columns_for("Address")) data.append(result) else: - result = [reference_name] - result.extend(list(addresses) or add_blank_columns_for("Address")) - result.extend(list(contacts) or add_blank_columns_for("Contact")) - data.append(result) + max_length = max(len(addresses), len(contacts)) + for idx in range(0, max_length): + result = [reference_name] + + result.extend(list(addresses[idx].values()) if idx < len(addresses) else add_blank_columns_for("Address")) + result.extend(list(contacts[idx].values()) if idx < len(contacts) else add_blank_columns_for("Contact")) + + data.append(result) return data @@ -81,9 +85,14 @@ def get_reference_details(reference_doctype, doctype, reference_list, reference_ ] fields = ["`tabDynamic Link`.link_name"] + field_map.get(doctype, []) - records = frappe.get_list(doctype, filters=filters, fields=fields, as_list=True) + records = frappe.get_list(doctype, filters=filters, fields=fields) + temp_records = list() + for d in records: - reference_details[d[0]][frappe.scrub(doctype)] = d[1:] + d.pop('link_name') + temp_records.append(d) + + reference_details[reference_list[0]][frappe.scrub(doctype)] = temp_records return reference_details def add_blank_columns_for(doctype): diff --git a/frappe/contacts/report/addresses_and_contacts/test_addresses_and_contacts.py b/frappe/contacts/report/addresses_and_contacts/test_addresses_and_contacts.py index b375874655..4e76256342 100644 --- a/frappe/contacts/report/addresses_and_contacts/test_addresses_and_contacts.py +++ b/frappe/contacts/report/addresses_and_contacts/test_addresses_and_contacts.py @@ -94,7 +94,7 @@ def create_linked_contact(link_list): class TestAddressesAndContacts(unittest.TestCase): def test_get_data(self): - linked_docs = [get_custom_doc_for_address_and_contacts(), get_custom_doc_for_address_and_contacts(), get_custom_doc_for_address_and_contacts()] + linked_docs = [get_custom_doc_for_address_and_contacts()] links_list = [item.name for item in linked_docs] create_linked_contact(links_list) create_linked_address(links_list)