partner_firstname
Extend Odoo contacts to manage separate first and last names while keeping the full display name computed for compatibility.
Key Features
- res.partner: Stores firstname and lastname fields and computes the full name according to configurable ordering with whitespace cleanup, placing company names in lastname when needed.
- res.partner: Creation, default_get, and copy flows split or recompute names automatically so name parts stay consistent even if only the full name is provided.
- res.partner: Validation requires at least one name component for contact-type partners while allowing empty address records for invoices or deliveries.
- res.config.settings: Adds a setting to choose the partner name order (lastname firstname, lastname, firstname, or firstname lastname) and a button to recalculate all partners when the order changes.
- res.users: User records mirror the split name fields, recomputing full names on changes and preserving sensible defaults when copying or deriving from partner data.
- contacts UI: Partner and user forms expose separate first and last name inputs with required flags aligned to the configured name order and contact/company status.