| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/crm |
| GIT | |
| GIT | https://github.com/OCA/crm.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/crm/tree/18.0/crm_lead_product |
| VERSION | |
| VERSION | 1.0.1 |
| CATEGORY | |
| CATEGORY | Customer Relationship Management |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), ForgeFlow |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), ForgeFlow |
| COMMITTERS | |
| COMMITTERS | Enric Tobella, Weblate, OCA-git-bot, oca-ci, joelkm, Frédéric GRALL |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/crm |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:30:09 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - crm - base_setup - base - web - sales_team - bus - web_tour - html_editor - calendar - resource - utm - contacts - digest - portal - web_editor - http_routing - auth_signup - phone_validation - product - uom |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | This module allows the user to link multiple products, product categories or product templates to a lead or an opportunity in order to be able to do a product demand forecasting taking into account the leads and opportunities defined in Odoo. Included in the product line there are two computed fields, the expected revenue and prorated revenue. On one hand, the expected revenue is computed as the selling price times the quantity. On the other hand, the prorated revenue takes into account the probability of the opportunity and is computed as the planned revenue times the probability. The module also includes a reporting section where the user can easily see in a pivot and graph view the relationship between products, stage of the lead/opportunity and the expected or prorated revenue for that product. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
crm_lead_view_form |
crm.lead.form - crm_lead_product | crm.lead | page | Inherits crm.crm_lead_view_form |
crm_opportunity_report_view_graph |
crm.opportunity.report.graph | crm.product.report | graph | New |
crm_opportunity_report_view_pivot |
crm.opportunity.report.pivot | crm.product.report | pivot | New |
crm_opportunity_report_view_search |
crm.lead.search | crm.product.report | search | New |
crm_opportunity_report_view_tree |
crm.opportunity.report.list | crm.product.report | list | New |
view_tree_lead_line |
crm.lead.line.tree - crm_lead_product | crm.lead.line | list | New |
lead_line_ids
One2many → crm.lead.line
comodel_name='crm.lead.line'
inverse_name='lead_id'
string='Lead Lines'
No public methods.
category_id
Many2one → product.category
index=True
string='Product Category'
args: 'product.category'
company_currency
Many2one → res.currency
readonly=True
related='lead_id.company_currency'
string='Currency'
args: 'res.currency'
expected_revenue
Monetary
compute='_compute_expected_revenue'
compute_sudo=True
currency_field='company_currency'
store=True
string='Expected revenue'
lead_id
Many2one → crm.lead
string='Lead'
args: 'crm.lead'
name
Char
required=True
translate=True
args: 'Description'
price_unit
Float
digits='Product Price'
product_id
Many2one → product.product
domain=[('sale_ok', '=', True)]
index=True
string='Product'
args: 'product.product'
product_qty
Integer
default=1
required=True
string='Product Quantity'
product_tmpl_id
Many2one → product.template
index=True
string='Product Template'
args: 'product.template'
prorated_revenue
Monetary
compute='_compute_prorated_revenue'
compute_sudo=True
currency_field='company_currency'
store=True
string='Prorated revenue'
uom_id
Many2one → uom.uom
readonly=True
string='Unit of Measure'
args: 'uom.uom'
No public methods.
active
Boolean
readonly=True
campaign_id
Many2one → utm.campaign
readonly=True
args: 'utm.campaign', 'Campaing'
category_id
Many2one → product.category
readonly=True
args: 'product.category', 'Category'
company_id
Many2one → res.company
readonly=True
args: 'res.company', 'Company'
country_id
Many2one → res.country
readonly=True
args: 'res.country', 'Country'
create_date
Datetime
readonly=True
date_closed
Datetime
readonly=True
args: 'Closed Date'
date_conversion
Datetime
readonly=True
args: 'Conversion Date'
date_deadline
Datetime
readonly=True
args: 'Deadline Date'
date_open
Datetime
readonly=True
args: 'Open Date'
expected_revenue
Float
readonly=True
lost_reason_id
Many2one → crm.lost.reason
readonly=True
args: 'crm.lost.reason'
name
Char
readonly=True
args: 'Lead Name'
partner_id
Many2one → res.partner
readonly=True
args: 'res.partner', 'Partner/Customer'
partner_name
Char
readonly=True
args: 'Contact Name'
probability
Float
aggregator='avg'
readonly=True
product_id
Many2one → product.product
readonly=True
args: 'product.product', 'Product'
product_qty
Integer
readonly=True
args: 'Product Quantity'
product_tmpl_id
Many2one → product.template
readonly=True
args: 'product.template', 'Product Template'
prorated_revenue
Float
readonly=True
stage_id
Many2one → crm.stage
readonly=True
args: 'crm.stage', 'Stage'
team_id
Many2one → crm.team
readonly=True
args: 'crm.team', 'Sales Team'
type
Selection
help='Type is used to separate Leads and Opportunities'
args: [('lead', 'Lead'), ('opportunity', 'Opportunity')]
user_id
Many2one → res.users
readonly=True
args: 'res.users', 'Salesperson'
init(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/crm |
| GIT | |
| GIT | https://github.com/OCA/crm.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/crm/tree/17.0/crm_lead_product |
| VERSION | |
| VERSION | 1.0.1 |
| CATEGORY | |
| CATEGORY | Customer Relationship Management |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), ForgeFlow |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), ForgeFlow |
| COMMITTERS | |
| COMMITTERS | OCA-git-bot, oca-ci, JasminSForgeFlow, mde-scopea |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/crm |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:20:03 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - crm - base_setup - base - web - sales_team - bus - web_tour - calendar - onboarding - resource - utm - contacts - digest - portal - web_editor - http_routing - auth_signup - phone_validation - product - uom |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | This module allows the user to link multiple products, product categories or product templates to a lead or an opportunity in order to be able to do a product demand forecasting taking into account the leads and opportunities defined in Odoo. Included in the product line there are two computed fields, the expected revenue and prorated revenue. On one hand, the expected revenue is computed as the selling price times the quantity. On the other hand, the prorated revenue takes into account the probability of the opportunity and is computed as the planned revenue times the probability. The module also includes a reporting section where the user can easily see in a pivot and graph view the relationship between products, stage of the lead/opportunity and the expected or prorated revenue for that product. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
crm_lead_view_form |
crm.lead.form - crm_lead_product | crm.lead | page | Inherits crm.crm_lead_view_form |
crm_opportunity_report_view_graph |
crm.opportunity.report.graph | crm.product.report | graph | New |
crm_opportunity_report_view_pivot |
crm.opportunity.report.pivot | crm.product.report | pivot | New |
crm_opportunity_report_view_search |
crm.lead.search | crm.product.report | search | New |
crm_opportunity_report_view_tree |
crm.opportunity.report.list | crm.product.report | tree | New |
view_tree_lead_line |
crm.lead.line.tree - crm_lead_product | crm.lead.line | tree | New |
lead_line_ids
One2many → crm.lead.line
comodel_name='crm.lead.line'
inverse_name='lead_id'
string='Lead Lines'
No public methods.
category_id
Many2one → product.category
index=True
string='Product Category'
args: 'product.category'
company_currency
Many2one → res.currency
readonly=True
related='lead_id.company_currency'
string='Currency'
args: 'res.currency'
expected_revenue
Monetary
compute='_compute_expected_revenue'
compute_sudo=True
currency_field='company_currency'
store=True
string='Expected revenue'
lead_id
Many2one → crm.lead
string='Lead'
args: 'crm.lead'
name
Char
required=True
translate=True
args: 'Description'
price_unit
Float
digits='Product Price'
product_id
Many2one → product.product
index=True
string='Product'
args: 'product.product'
product_qty
Integer
default=1
required=True
string='Product Quantity'
product_tmpl_id
Many2one → product.template
index=True
string='Product Template'
args: 'product.template'
prorated_revenue
Monetary
compute='_compute_prorated_revenue'
compute_sudo=True
currency_field='company_currency'
store=True
string='Prorated revenue'
uom_id
Many2one → uom.uom
readonly=True
string='Unit of Measure'
args: 'uom.uom'
No public methods.
active
Boolean
readonly=True
campaign_id
Many2one → utm.campaign
readonly=True
args: 'utm.campaign', 'Campaing'
category_id
Many2one → product.category
readonly=True
args: 'product.category', 'Category'
company_id
Many2one → res.company
readonly=True
args: 'res.company', 'Company'
country_id
Many2one → res.country
readonly=True
args: 'res.country', 'Country'
create_date
Datetime
readonly=True
date_closed
Datetime
readonly=True
args: 'Closed Date'
date_conversion
Datetime
readonly=True
args: 'Conversion Date'
date_deadline
Datetime
readonly=True
args: 'Deadline Date'
date_open
Datetime
readonly=True
args: 'Open Date'
expected_revenue
Float
readonly=True
lost_reason_id
Many2one → crm.lost.reason
readonly=True
args: 'crm.lost.reason'
name
Char
readonly=True
args: 'Lead Name'
partner_id
Many2one → res.partner
readonly=True
args: 'res.partner', 'Partner/Customer'
partner_name
Char
readonly=True
args: 'Contact Name'
probability
Float
group_operator='avg'
readonly=True
product_id
Many2one → product.product
readonly=True
args: 'product.product', 'Product'
product_qty
Integer
readonly=True
args: 'Product Quantity'
product_tmpl_id
Many2one → product.template
readonly=True
args: 'product.template', 'Product Template'
prorated_revenue
Float
readonly=True
stage_id
Many2one → crm.stage
readonly=True
args: 'crm.stage', 'Stage'
team_id
Many2one → crm.team
readonly=True
args: 'crm.team', 'Sales Team'
type
Selection
help='Type is used to separate Leads and Opportunities'
args: [('lead', 'Lead'), ('opportunity', 'Opportunity')]
user_id
Many2one → res.users
readonly=True
args: 'res.users', 'Salesperson'
init(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/crm |
| GIT | |
| GIT | https://github.com/OCA/crm.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/crm/tree/16.0/crm_lead_product |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Customer Relationship Management |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), ForgeFlow |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), ForgeFlow |
| COMMITTERS | |
| COMMITTERS | Weblate, OCA-git-bot, oca-ci, CarlosRoca13 |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/crm |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:53:42 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - crm - base_setup - base - web - sales_team - bus - web_tour - calendar - resource - utm - web_kanban_gauge - contacts - digest - portal - web_editor - http_routing - auth_signup - phone_validation - product - uom |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
crm_lead_view_form |
crm.lead.form.lead | crm.lead | page | Inherits crm.crm_lead_view_form |
crm_opportunity_report_view_graph |
crm.opportunity.report.graph | crm.product.report | graph | New |
crm_opportunity_report_view_pivot |
crm.opportunity.report.pivot | crm.product.report | pivot | New |
crm_opportunity_report_view_search |
crm.lead.search | crm.product.report | search | New |
crm_opportunity_report_view_tree |
crm.opportunity.report.list | crm.product.report | tree | New |
view_tree_lead_line |
crm.lead.form.lead | crm.lead.line | tree | New |
lead_line_ids
One2many → crm.lead.line
comodel_name='crm.lead.line'
inverse_name='lead_id'
string='Lead Lines'
No public methods.
category_id
Many2one → product.category
index=True
string='Product Category'
args: 'product.category'
expected_revenue
Float
compute='_compute_expected_revenue'
compute_sudo=True
store=True
string='Expected revenue'
lead_id
Many2one → crm.lead
string='Lead'
args: 'crm.lead'
name
Char
required=True
translate=True
args: 'Description'
planned_revenue
Float
compute='_compute_planned_revenue'
compute_sudo=True
store=True
string='Planned revenue'
price_unit
Float
product_id
Many2one → product.product
index=True
string='Product'
args: 'product.product'
product_qty
Integer
default=1
required=True
string='Product Quantity'
product_tmpl_id
Many2one → product.template
index=True
string='Product Template'
args: 'product.template'
uom_id
Many2one → uom.uom
readonly=True
string='Unit of Measure'
args: 'uom.uom'
No public methods.
active
Boolean
readonly=True
campaign_id
Many2one → utm.campaign
readonly=True
args: 'utm.campaign', 'Campaing'
category_id
Many2one → product.category
readonly=True
args: 'product.category', 'Category'
company_id
Many2one → res.company
readonly=True
args: 'res.company', 'Company'
country_id
Many2one → res.country
readonly=True
args: 'res.country', 'Country'
create_date
Datetime
readonly=True
date_closed
Datetime
readonly=True
args: 'Closed Date'
date_conversion
Datetime
readonly=True
args: 'Conversion Date'
date_deadline
Datetime
readonly=True
args: 'Deadline Date'
date_open
Datetime
readonly=True
args: 'Open Date'
expected_revenue
Float
readonly=True
lead_id
Many2one → crm.lead
readonly=True
args: 'crm.lead', 'Lead/Opportunity'
lost_reason
Many2one → crm.lost.reason
readonly=True
args: 'crm.lost.reason'
name
Char
readonly=True
args: 'Lead Name'
partner_id
Many2one → res.partner
readonly=True
args: 'res.partner', 'Partner/Customer'
partner_name
Char
readonly=True
args: 'Contact Name'
planned_revenue
Float
readonly=True
probability
Float
group_operator='avg'
readonly=True
product_id
Many2one → product.product
readonly=True
args: 'product.product', 'Product'
product_qty
Integer
readonly=True
args: 'Product Quantity'
product_tmpl_id
Many2one → product.template
readonly=True
args: 'product.template', 'Product Template'
stage_id
Many2one → crm.stage
readonly=True
args: 'crm.stage', 'Stage'
team_id
Many2one → crm.team
readonly=True
args: 'crm.team', 'Sales Team'
type
Selection
help='Type is used to separate Leads and Opportunities'
selection=[('lead', 'Lead'), ('opportunity', 'Opportunity')]
user_id
Many2one → res.users
readonly=True
args: 'res.users', 'Salesperson'
init(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/crm |
| GIT | |
| GIT | https://github.com/OCA/crm.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/crm/tree/13.0/crm_lead_product |
| VERSION | |
| VERSION | 1.0.1 |
| CATEGORY | |
| CATEGORY | Customer Relationship Management |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), ForgeFlow |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), ForgeFlow |
| COMMITTERS | |
| COMMITTERS | OCA Transbot, Víctor Martínez, oca-travis, Weblate, OCA-git-bot, Stephan Keller, Joan Sisquella |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/crm |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:34:10 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - crm - base_setup - base - web - sales_team - bus - web_tour - calendar - resource - fetchmail - utm - contacts - digest - portal - web_editor - http_routing - auth_signup - phone_validation - product - uom |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
crm_lead_view_form |
crm.lead.form.lead | crm.lead | page | Inherits crm.crm_lead_view_form |
crm_opportunity_report_view_graph |
crm.opportunity.report.graph | crm.product.report | graph | New |
crm_opportunity_report_view_pivot |
crm.opportunity.report.pivot | crm.product.report | pivot | New |
crm_opportunity_report_view_search |
crm.lead.search | crm.product.report | search | New |
crm_opportunity_report_view_tree |
crm.opportunity.report.list | crm.product.report | tree | New |
view_tree_lead_line |
crm.lead.form.lead | crm.lead.line | tree | New |
lead_line_ids
One2many → crm.lead.line
comodel_name='crm.lead.line'
inverse_name='lead_id'
string='Lead Lines'
No public methods.
category_id
Many2one → product.category
index=True
string='Product Category'
args: 'product.category'
expected_revenue
Float
compute='_compute_expected_revenue'
compute_sudo=True
store=True
string='Expected revenue'
lead_id
Many2one → crm.lead
string='Lead'
args: 'crm.lead'
name
Char
required=True
translate=True
args: 'Description'
planned_revenue
Float
compute='_compute_planned_revenue'
compute_sudo=True
store=True
string='Planned revenue'
price_unit
Float
string='Price Unit'
product_id
Many2one → product.product
index=True
string='Product'
args: 'product.product'
product_qty
Integer
default=1
required=True
string='Product Quantity'
product_tmpl_id
Many2one → product.template
index=True
string='Product Template'
args: 'product.template'
uom_id
Many2one → uom.uom
readonly=True
string='Unit of Measure'
args: 'uom.uom'
No public methods.
active
Boolean
readonly=True
args: 'Active'
campaign_id
Many2one → utm.campaign
readonly=True
args: 'utm.campaign', 'Campaing'
category_id
Many2one → product.category
readonly=True
args: 'product.category', 'Category'
company_id
Many2one → res.company
readonly=True
args: 'res.company', 'Company'
country_id
Many2one → res.country
readonly=True
args: 'res.country', 'Country'
create_date
Datetime
readonly=True
args: 'Create Date'
date_closed
Datetime
readonly=True
args: 'Closed Date'
date_conversion
Datetime
readonly=True
args: 'Conversion Date'
date_deadline
Datetime
readonly=True
args: 'Deadline Date'
date_open
Datetime
readonly=True
args: 'Open Date'
expected_revenue
Float
readonly=True
args: 'Expected Revenue'
lost_reason
Many2one → crm.lost.reason
readonly=True
args: 'crm.lost.reason', 'Lost Reason'
name
Char
readonly=True
args: 'Lead Name'
partner_id
Many2one → res.partner
readonly=True
args: 'res.partner', 'Partner/Customer'
partner_name
Char
readonly=True
args: 'Contact Name'
planned_revenue
Float
readonly=True
args: 'Planned Revenue'
probability
Float
group_operator='avg'
readonly=True
args: 'Probability'
product_id
Many2one → product.product
readonly=True
args: 'product.product', 'Product'
product_qty
Integer
readonly=True
args: 'Product Quantity'
product_tmpl_id
Many2one → product.template
readonly=True
args: 'product.template', 'Product Template'
stage_id
Many2one → crm.stage
readonly=True
args: 'crm.stage', 'Stage'
team_id
Many2one → crm.team
readonly=True
args: 'crm.team', 'Sales Team'
type
Char
help='Type is used to separate Leads and Opportunities'
selection=[('lead', 'Lead'), ('opportunity', 'Opportunity')]
string='Type'
user_id
Many2one → res.users
readonly=True
args: 'res.users', 'Salesperson'
init(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/crm |
| GIT | |
| GIT | https://github.com/OCA/crm.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/crm/tree/12.0/crm_lead_product |
| VERSION | |
| VERSION | 1.0.1 |
| CATEGORY | |
| CATEGORY | Customer Relationship Management |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Eficent |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Eficent |
| COMMITTERS | |
| COMMITTERS | Holger Brunn, OCA Transbot, oca-travis, Weblate, OCA-git-bot, Adrià Gil Sorribes, Stephan Keller |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/crm |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:29:15 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - crm - base_setup - base - web - sales_team - bus - web_tour - calendar - resource - fetchmail - utm - contacts - digest - portal - http_routing - product - decimal_precision - uom |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
crm_case_form_view_leads |
crm.lead.form.lead | crm.lead | page | Inherits crm.crm_case_form_view_leads |
crm_case_form_view_oppor |
crm.lead.form.oppor | crm.lead | page | Inherits crm.crm_case_form_view_oppor |
crm_opportunity_report_view_graph |
crm.opportunity.report.graph | crm.product.report | graph | New |
crm_opportunity_report_view_pivot |
crm.opportunity.report.pivot | crm.product.report | pivot | New |
crm_opportunity_report_view_search |
crm.lead.search | crm.product.report | search | New |
crm_opportunity_report_view_tree |
crm.opportunity.report.list | crm.product.report | tree | New |
view_tree_lead_line |
crm.lead.form.lead | crm.lead.line | tree | New |
lead_line_ids
One2many → crm.lead.line
comodel_name='crm.lead.line'
inverse_name='lead_id'
string='Lead Lines'
No public methods.
category_id
Many2one → product.category
index=True
string='Product Category'
args: 'product.category'
expected_revenue
Float
compute='_compute_expected_revenue'
compute_sudo=True
store=True
string='Expected revenue'
lead_id
Many2one → crm.lead
string='Lead'
args: 'crm.lead'
name
Char
required=True
translate=True
args: 'Description'
planned_revenue
Float
compute='_compute_planned_revenue'
compute_sudo=True
store=True
string='Planned revenue'
price_unit
Float
string='Price Unit'
product_id
Many2one → product.product
index=True
string='Product'
args: 'product.product'
product_qty
Integer
default=1
required=True
string='Product Quantity'
product_tmpl_id
Many2one → product.template
index=True
string='Product Template'
args: 'product.template'
uom_id
Many2one → uom.uom
readonly=True
string='Unit of Measure'
args: 'uom.uom'
No public methods.
active
Boolean
readonly=True
args: 'Active'
campaign_id
Many2one → utm.campaign
readonly=True
args: 'utm.campaign', 'Campaing'
category_id
Many2one → product.category
readonly=True
args: 'product.category', 'Category'
company_id
Many2one → res.company
readonly=True
args: 'res.company', 'Company'
country_id
Many2one → res.country
readonly=True
args: 'res.country', 'Country'
create_date
Datetime
readonly=True
args: 'Create Date'
date_closed
Datetime
readonly=True
args: 'Closed Date'
date_conversion
Datetime
readonly=True
args: 'Conversion Date'
date_deadline
Datetime
readonly=True
args: 'Deadline Date'
date_open
Datetime
readonly=True
args: 'Open Date'
expected_revenue
Float
readonly=True
args: 'Expected Revenue'
lost_reason
Many2one → crm.lost.reason
readonly=True
args: 'crm.lost.reason', 'Lost Reason'
name
Char
readonly=True
args: 'Lead Name'
partner_id
Many2one → res.partner
readonly=True
args: 'res.partner', 'Partner/Customer'
partner_name
Char
readonly=True
args: 'Contact Name'
planned_revenue
Float
readonly=True
args: 'Planned Revenue'
probability
Float
group_operator='avg'
readonly=True
args: 'Probability'
product_id
Many2one → product.product
readonly=True
args: 'product.product', 'Product'
product_qty
Integer
readonly=True
args: 'Product Quantity'
product_tmpl_id
Many2one → product.template
readonly=True
args: 'product.template', 'Product Template'
stage_id
Many2one → crm.stage
readonly=True
args: 'crm.stage', 'Stage'
team_id
Many2one → crm.team
readonly=True
args: 'crm.team', 'Sales Team'
type
Char
help='Type is used to separate Leads and Opportunities'
selection=[('lead', 'Lead'), ('opportunity', 'Opportunity')]
string='Type'
user_id
Many2one → res.users
readonly=True
args: 'res.users', 'Salesperson'
init(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/crm |
| GIT | |
| GIT | https://github.com/OCA/crm.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/crm/tree/11.0/crm_lead_product |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Customer Relationship Management |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Eficent |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Eficent |
| COMMITTERS | |
| COMMITTERS | oca-travis, OCA-git-bot |
| WEBSITE | |
| WEBSITE | http://www.github.com/OCA/crm |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:23:56 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - crm - base_setup - base - web - sales_team - bus - web_tour - calendar - resource - fetchmail - utm - web_planner - contacts - product - decimal_precision |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
crm_case_form_view_leads |
crm.lead.form.lead | crm.lead | page | Inherits crm.crm_case_form_view_leads |
crm_case_form_view_oppor |
crm.lead.form.oppor | crm.lead | page | Inherits crm.crm_case_form_view_oppor |
crm_opportunity_report_view_graph |
crm.opportunity.report.graph | crm.product.report | graph | New |
crm_opportunity_report_view_pivot |
crm.opportunity.report.pivot | crm.product.report | pivot | New |
crm_opportunity_report_view_search |
crm.lead.search | crm.product.report | search | New |
crm_opportunity_report_view_tree |
crm.opportunity.report.list | crm.product.report | tree | New |
view_tree_lead_line |
crm.lead.form.lead | crm.lead.line | tree | New |
lead_line_ids
One2many → crm.lead.line
comodel_name='crm.lead.line'
inverse_name='lead_id'
string='Lead Lines'
No public methods.
category_id
Many2one → product.category
index=True
string='Product Category'
args: 'product.category'
expected_revenue
Float
compute='_compute_expected_revenue'
compute_sudo=True
store=True
string='Expected revenue'
lead_id
Many2one → crm.lead
string='Lead'
args: 'crm.lead'
name
Char
required=True
translate=True
args: 'Description'
planned_revenue
Float
compute='_compute_planned_revenue'
compute_sudo=True
store=True
string='Planned revenue'
price_unit
Float
string='Price Unit'
product_id
Many2one → product.product
index=True
string='Product'
args: 'product.product'
product_qty
Integer
default=1
required=True
string='Product Quantity'
product_tmpl_id
Many2one → product.template
index=True
string='Product Template'
args: 'product.template'
uom_id
Many2one → product.uom
readonly=True
string='Unit of Measure'
args: 'product.uom'
No public methods.
active
Boolean
readonly=True
args: 'Active'
campaign_id
Many2one → utm.campaign
readonly=True
args: 'utm.campaign', 'Campaing'
category_id
Many2one → product.category
readonly=True
args: 'product.category', 'Category'
company_id
Many2one → res.company
readonly=True
args: 'res.company', 'Company'
country_id
Many2one → res.country
readonly=True
args: 'res.country', 'Country'
create_date
Datetime
readonly=True
args: 'Create Date'
date_closed
Datetime
readonly=True
args: 'Closed Date'
date_conversion
Datetime
readonly=True
args: 'Conversion Date'
date_deadline
Date
readonly=True
args: 'Deadline Date'
date_open
Datetime
readonly=True
args: 'Open Date'
expected_revenue
Float
readonly=True
args: 'Expected Revenue'
lead_id
Many2one → crm.lead
readonly=True
args: 'crm.lead', 'Lead'
lost_reason
Many2one → crm.lost.reason
readonly=True
args: 'crm.lost.reason', 'Lost Reason'
name
Char
readonly=True
args: 'Name'
partner_id
Many2one → res.partner
readonly=True
args: 'res.partner', 'Partner/Customer'
partner_name
Char
readonly=True
args: 'Contact Name'
planned_revenue
Float
readonly=True
args: 'Planned Revenue'
probability
Float
group_operator='avg'
readonly=True
args: 'Probability'
product_id
Many2one → product.product
readonly=True
args: 'product.product', 'Product'
product_qty
Integer
readonly=True
args: 'Product Quantity'
product_tmpl_id
Many2one → product.template
readonly=True
args: 'product.template', 'Product Template'
stage_id
Many2one → crm.stage
readonly=True
args: 'crm.stage', 'Stage'
team_id
Many2one → crm.team
readonly=True
args: 'crm.team', 'Sales Team'
type
Char
help='Type is used to separate Leads and Opportunities'
selection=[('lead', 'Lead'), ('opportunity', 'Opportunity')]
string='Type'
user_id
Many2one → res.users
readonly=True
args: 'res.users', 'Salesperson'
init(self)
| STATUS | |
|---|---|
| STATUS | Open migration PR - not merged yet for this version |
| REPOSITORY | |
| REPOSITORY | OCA/crm |
| PULL REQUEST | |
| PULL REQUEST | [MIG] [19.0] crm_lead_product: Migration to 19.0 (#739) |