Contact Form (res.partner) — Gap Analysis Review
VIA · Odoo 17 · Prepared by SignalPoint Media Group · March 2026
Agree — We understood correctly, proceed as described.
Disagree — Our understanding is wrong or incomplete. A text box will appear for you to explain.
Items already implemented are collapsed at the top of each section for reference.
Section 1: Main Contact (Header)
The top section of the contact form — fields above the notebook tabs, split into left column (contact info) and right column (classification).
employee). It is used in visibility rules for Service Team(s) and Service Line(s).
employee from the dropdown. Before removing, we will check how many existing records use this type and update visibility rules that reference it. Records with this type would need to be migrated to another type.
physician_ids Many2many field is hidden by default, then made visible for Person Supported contacts by a post-Studio override view.
physician_ids visible. The field stays in the database (no data loss) but will no longer appear on the form. Physicians would be linked as Related Contacts instead.
type field shows a "Contact" dropdown on child/related contacts (values: Contact, Invoice Address, Shipping Address, etc.). This appears in the Related Contacts inline form.
company_type radio buttons (Individual / Company) likely still appear at the top of the form.
is_company field would default to False (Individual). We will NOT proceed on this until you confirm, since the spec marks it TBD.
distinguish_region) and County (county_id) are both on the form, but there is no auto-population when county changes.
onchange method so that when County is selected, Region auto-fills based on the existing ODP mapping data. The user could still override it manually.
internal_unique_id_code field exists with a SQL unique constraint and copy disabled. It is currently hidden in the header and displayed on the Personal Details tab. Auto-generation logic has not been verified.
Open Questions — Header
Section 2: Related Contacts Tab
The tab showing associated contacts in kanban card format. Currently named "Related Contacts" (renamed from "Contacts & Addresses").
The spec describes an "Add Related Contact" flow that searches for existing contacts and links them, rather than creating new child contacts inline. This is a fundamentally different pattern from the current implementation.
Currently, related contacts are child records (parent-child relationship via parent_id). The spec describes a link-existing-contacts pattern (Many2many). These are different database relationships with different implications for data structure.
Please review item RC-B below carefully — your answer determines the scope of work for this tab.
partner_type, mobile, and email to the kanban card template so all five fields display on each card.
child_ids (One2many via parent_id). Clicking "Add" creates a new child contact inline. There is no search for existing contacts.
Option A (Less disruptive): Keep the current parent-child structure but customize the "Add" button to open a search dialog. If the user selects an existing contact, set its
parent_id to this person. If not found, allow creating a new one. This preserves all existing child relationships.Option B (Larger change): Create a new Many2many field for related contacts, replacing the One2many
child_ids approach. This allows a single contact to be related to multiple people without changing its parent_id. This is a bigger structural change and would require migrating existing child contact relationships.
parent_id (unlink) rather than delete the record, but needs to be verified.
lastname field to the kanban display.
partner_relationship (Selection field with 11 values). A newer Many2many field (partner_relationship_ids) exists in the header for non-PS contacts but is NOT shown on kanban cards.
Open Questions — Related Contacts
Section 3: Personal Details Tab
Demographics tab visible only for Person Supported contacts. Three-column layout: Identifiers (left), Identity (center), Functional (right). Owned by via_tab_demographics module.
Open Questions — Personal Details
Section 4: Authorization Tab
Currently an editable two-column tab with pre-authorization fields, authorization details, and notes. The spec replaces this entirely with a view-only tab showing active authorizations as kanban cards.
The current Authorization tab contains editable pre-authorization fields (payer, payer program, region, county, projected units, SC phone, notes, etc.). The spec removes ALL of this from the contact form and moves it to the CRM.lead form.
In its place, a new view-only Authorization tab would show active authorizations as kanban cards populated from sale.order or a similar authorization record. This is fundamentally new functionality, not a modification of the existing tab.
Critical: Several fields on the current tab are API-connected (payer, payer_program, source_platform, team_ids). These fields must remain in the data model even though they will no longer be editable on this tab. The APIs read them from the model, not from the view.
Open Questions — Authorization
Section 5: Removed Tabs
Tabs that the spec says should be removed entirely from the res.partner form.
Open Questions — Removed Tabs & General
Generates a text summary of all your responses that you can copy, save, or send back to SignalPoint.
Contact Form (res.partner) — Gap Analysis Review
VIA · Odoo 17 · Prepared by SignalPoint Media Group · March 2026
Agree — We understood correctly, proceed as described.
Disagree — Our understanding is wrong or incomplete. A text box will appear for you to explain.
Items already implemented are collapsed at the top of each section for reference.
Section 1: Main Contact (Header)
The top section of the contact form — fields above the notebook tabs, split into left column (contact info) and right column (classification).
employee). It is used in visibility rules for Service Team(s) and Service Line(s).
employee from the dropdown. Before removing, we will check how many existing records use this type and update visibility rules that reference it. Records with this type would need to be migrated to another type.
physician_ids Many2many field is hidden by default, then made visible for Person Supported contacts by a post-Studio override view.
physician_ids visible. The field stays in the database (no data loss) but will no longer appear on the form. Physicians would be linked as Related Contacts instead.
type field shows a "Contact" dropdown on child/related contacts (values: Contact, Invoice Address, Shipping Address, etc.). This appears in the Related Contacts inline form.
company_type radio buttons (Individual / Company) likely still appear at the top of the form.
is_company field would default to False (Individual). We will NOT proceed on this until you confirm, since the spec marks it TBD.
distinguish_region) and County (county_id) are both on the form, but there is no auto-population when county changes.
onchange method so that when County is selected, Region auto-fills based on the existing ODP mapping data. The user could still override it manually.
internal_unique_id_code field exists with a SQL unique constraint and copy disabled. It is currently hidden in the header and displayed on the Personal Details tab. Auto-generation logic has not been verified.
Open Questions — Header
Section 2: Related Contacts Tab
The tab showing associated contacts in kanban card format. Currently named "Related Contacts" (renamed from "Contacts & Addresses").
The spec describes an "Add Related Contact" flow that searches for existing contacts and links them, rather than creating new child contacts inline. This is a fundamentally different pattern from the current implementation.
Currently, related contacts are child records (parent-child relationship via parent_id). The spec describes a link-existing-contacts pattern (Many2many). These are different database relationships with different implications for data structure.
Please review item RC-B below carefully — your answer determines the scope of work for this tab.
partner_type, mobile, and email to the kanban card template so all five fields display on each card.
child_ids (One2many via parent_id). Clicking "Add" creates a new child contact inline. There is no search for existing contacts.
Option A (Less disruptive): Keep the current parent-child structure but customize the "Add" button to open a search dialog. If the user selects an existing contact, set its
parent_id to this person. If not found, allow creating a new one. This preserves all existing child relationships.Option B (Larger change): Create a new Many2many field for related contacts, replacing the One2many
child_ids approach. This allows a single contact to be related to multiple people without changing its parent_id. This is a bigger structural change and would require migrating existing child contact relationships.
parent_id (unlink) rather than delete the record, but needs to be verified.
lastname field to the kanban display.
partner_relationship (Selection field with 11 values). A newer Many2many field (partner_relationship_ids) exists in the header for non-PS contacts but is NOT shown on kanban cards.
Open Questions — Related Contacts
Section 3: Personal Details Tab
Demographics tab visible only for Person Supported contacts. Three-column layout: Identifiers (left), Identity (center), Functional (right). Owned by via_tab_demographics module.
Open Questions — Personal Details
Section 4: Authorization Tab
Currently an editable two-column tab with pre-authorization fields, authorization details, and notes. The spec replaces this entirely with a view-only tab showing active authorizations as kanban cards.
The current Authorization tab contains editable pre-authorization fields (payer, payer program, region, county, projected units, SC phone, notes, etc.). The spec removes ALL of this from the contact form and moves it to the CRM.lead form.
In its place, a new view-only Authorization tab would show active authorizations as kanban cards populated from sale.order or a similar authorization record. This is fundamentally new functionality, not a modification of the existing tab.
Critical: Several fields on the current tab are API-connected (payer, payer_program, source_platform, team_ids). These fields must remain in the data model even though they will no longer be editable on this tab. The APIs read them from the model, not from the view.
Open Questions — Authorization
Section 5: Removed Tabs
Tabs that the spec says should be removed entirely from the res.partner form.
Open Questions — Removed Tabs & General
Generates a text summary of all your responses that you can copy, save, or send back to SignalPoint.