Sort invoice addresses by parent org name

This commit is contained in:
Tobias Kunze 2025-06-15 16:07:14 +02:00
parent 7a38571c18
commit f4289b6973
2 changed files with 19 additions and 1 deletions

View file

@ -192,6 +192,14 @@ def get_invoice_addresses(user):
domain=domain,
fields=ADDRESS_FIELDS,
)
if invoice_addresses:
invoice_addresses.sort(
key=lambda addr: (
addr["parent_id"][1] if addr.get("parent_id") else "",
addr["name"],
addr["id"],
)
)
return invoice_addresses or []
except Exception:
return []

View file

@ -61,13 +61,23 @@ class OrganizationCreateForm(OrganizationForm):
if self.odoo_addresses:
address_choices = [("", _("---------"))]
for addr in self.odoo_addresses:
parent_name = None
parent_info = addr.get("parent_id")
if (
parent_info
and isinstance(parent_info, (list, tuple))
and len(parent_info) > 1
):
parent_name = parent_info[1]
display_parts = [
parent_name,
addr.get("name"),
addr.get("street"),
addr.get("city"),
addr.get("zip"),
]
display_name = ", ".join(filter(None, display_parts))
display_name = ", ".join([part for part in display_parts if part])
address_choices.append((str(addr["id"]), display_name))
self.fields["existing_odoo_address_id"].choices = address_choices