summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNimesh Jethva <nje@odoo.com>2018-09-17 16:27:55 +0530
committerYannick Tivisse <yti@odoo.com>2018-09-21 11:45:14 +0200
commit71820dbc20313dfbacc56277b197b267ac81b7a4 (patch)
tree61fbf713ad1c4da3b217b8248ebb2983e7ec7b11
parent7246170de62bc2b5e0beca5fb16f7274448ce401 (diff)
[IMP]crm_*, sale_*: Improvement in model description
Purpose of this commit is to give description more "business oriented" because those descriptions appears in Odoo Studio which is supposed to be used by end users, not only by developers. Related Task ID : 37311
-rw-r--r--addons/crm/models/crm_lead.py4
-rw-r--r--addons/crm/models/crm_stage.py2
-rw-r--r--addons/crm/models/crm_team.py1
-rw-r--r--addons/crm/wizard/crm_lead_to_opportunity.py4
-rw-r--r--addons/crm/wizard/crm_merge_opportunities.py2
-rw-r--r--addons/crm/wizard/crm_partner_binding.py2
-rw-r--r--addons/crm_project/wizard/crm_lead_convert2task.py1
-rw-r--r--addons/membership/models/membership.py1
-rw-r--r--addons/membership/report/report_membership.py2
-rw-r--r--addons/product/models/product.py5
-rw-r--r--addons/product/models/product_attribute.py3
-rw-r--r--addons/product/models/product_pricelist.py2
-rw-r--r--addons/product/report/product_pricelist.py1
-rw-r--r--addons/product/wizard/product_price_list.py2
-rw-r--r--addons/sale/models/sale.py2
-rw-r--r--addons/sale/report/report_all_channels_sales.py2
-rw-r--r--addons/sale/report/sale_report.py3
-rw-r--r--addons/sale/wizard/payment_acquirer_onboarding_wizard.py1
-rw-r--r--addons/sale_timesheet/models/project_sale_line_employee_map.py1
-rw-r--r--addons/sale_timesheet/report/project_profitability_report_analysis.py2
-rw-r--r--addons/sale_timesheet/wizard/project_create_invoice.py2
-rw-r--r--addons/sale_timesheet/wizard/project_create_sale_order.py3
-rw-r--r--addons/website_crm_partner_assign/models/res_partner.py2
-rw-r--r--addons/website_crm_partner_assign/report/crm_lead_report.py76
-rw-r--r--addons/website_crm_partner_assign/report/crm_partner_report.py2
-rw-r--r--addons/website_crm_partner_assign/wizard/crm_forward_to_partner.py2
26 files changed, 111 insertions, 19 deletions
diff --git a/addons/crm/models/crm_lead.py b/addons/crm/models/crm_lead.py
index b6829a25708..177d6aa8048 100644
--- a/addons/crm/models/crm_lead.py
+++ b/addons/crm/models/crm_lead.py
@@ -1234,7 +1234,7 @@ class Lead(models.Model):
class Tag(models.Model):
_name = "crm.lead.tag"
- _description = "Category of lead"
+ _description = "Lead Tag"
name = fields.Char('Name', required=True, translate=True)
color = fields.Integer('Color Index')
@@ -1246,7 +1246,7 @@ class Tag(models.Model):
class LostReason(models.Model):
_name = "crm.lost.reason"
- _description = 'Reason for loosing leads'
+ _description = 'Opp. Lost Reason'
name = fields.Char('Name', required=True, translate=True)
active = fields.Boolean('Active', default=True)
diff --git a/addons/crm/models/crm_stage.py b/addons/crm/models/crm_stage.py
index f2e33c7ca86..d324a3fc00a 100644
--- a/addons/crm/models/crm_stage.py
+++ b/addons/crm/models/crm_stage.py
@@ -18,7 +18,7 @@ class Stage(models.Model):
Stages are for example used to display the kanban view of records.
"""
_name = "crm.stage"
- _description = "Stage of case"
+ _description = "CRM Stages"
_rec_name = 'name'
_order = "sequence, name, id"
diff --git a/addons/crm/models/crm_team.py b/addons/crm/models/crm_team.py
index 31b4eeed98c..2aa3802cdcd 100644
--- a/addons/crm/models/crm_team.py
+++ b/addons/crm/models/crm_team.py
@@ -11,6 +11,7 @@ from odoo.exceptions import ValidationError
class Team(models.Model):
_name = 'crm.team'
_inherit = ['mail.alias.mixin', 'crm.team']
+ _description = 'Sales Channels'
use_leads = fields.Boolean('Leads', help="Check this box to filter and qualify incoming requests as leads before converting them into opportunities and assigning them to a salesperson.")
use_opportunities = fields.Boolean('Pipeline', help="Check this box to manage a presales process with opportunities.")
diff --git a/addons/crm/wizard/crm_lead_to_opportunity.py b/addons/crm/wizard/crm_lead_to_opportunity.py
index 799863f3aa6..b911609f03a 100644
--- a/addons/crm/wizard/crm_lead_to_opportunity.py
+++ b/addons/crm/wizard/crm_lead_to_opportunity.py
@@ -9,7 +9,7 @@ from odoo.tools.translate import _
class Lead2OpportunityPartner(models.TransientModel):
_name = 'crm.lead2opportunity.partner'
- _description = 'Lead To Opportunity Partner'
+ _description = 'Convert Lead to Opportunity (not in mass)'
_inherit = 'crm.partner.binding'
@api.model
@@ -157,7 +157,7 @@ class Lead2OpportunityPartner(models.TransientModel):
class Lead2OpportunityMassConvert(models.TransientModel):
_name = 'crm.lead2opportunity.partner.mass'
- _description = 'Mass Lead To Opportunity Partner'
+ _description = 'Convert Lead to Opportunity (in mass)'
_inherit = 'crm.lead2opportunity.partner'
@api.model
diff --git a/addons/crm/wizard/crm_merge_opportunities.py b/addons/crm/wizard/crm_merge_opportunities.py
index c0e2a6cc7ba..82795678d89 100644
--- a/addons/crm/wizard/crm_merge_opportunities.py
+++ b/addons/crm/wizard/crm_merge_opportunities.py
@@ -15,7 +15,7 @@ class MergeOpportunity(models.TransientModel):
"""
_name = 'crm.merge.opportunity'
- _description = 'Merge opportunities'
+ _description = 'Merge Opportunities'
@api.model
def default_get(self, fields):
diff --git a/addons/crm/wizard/crm_partner_binding.py b/addons/crm/wizard/crm_partner_binding.py
index aee80574444..85acbc62396 100644
--- a/addons/crm/wizard/crm_partner_binding.py
+++ b/addons/crm/wizard/crm_partner_binding.py
@@ -15,7 +15,7 @@ class PartnerBinding(models.TransientModel):
"""
_name = 'crm.partner.binding'
- _description = 'Handle partner binding or generation in CRM wizards.'
+ _description = 'Partner linking/binding in CRM wizard'
@api.model
def default_get(self, fields):
diff --git a/addons/crm_project/wizard/crm_lead_convert2task.py b/addons/crm_project/wizard/crm_lead_convert2task.py
index 6f9f8de10d3..126f3fec692 100644
--- a/addons/crm_project/wizard/crm_lead_convert2task.py
+++ b/addons/crm_project/wizard/crm_lead_convert2task.py
@@ -7,6 +7,7 @@ class CrmLeadConvert2Task(models.TransientModel):
_name = "crm.lead.convert2task"
_inherit = 'crm.partner.binding'
+ _description = 'Lead convert to Task'
@api.model
def default_get(self, fields):
diff --git a/addons/membership/models/membership.py b/addons/membership/models/membership.py
index 900ee18755b..416907bca4d 100644
--- a/addons/membership/models/membership.py
+++ b/addons/membership/models/membership.py
@@ -19,6 +19,7 @@ class MembershipLine(models.Model):
_name = 'membership.membership_line'
_rec_name = 'partner'
_order = 'id desc'
+ _description = 'Membership Line'
partner = fields.Many2one('res.partner', string='Partner', ondelete='cascade', index=True)
membership_id = fields.Many2one('product.product', string="Membership", required=True)
diff --git a/addons/membership/report/report_membership.py b/addons/membership/report/report_membership.py
index 9e016a9890e..2c506ce300e 100644
--- a/addons/membership/report/report_membership.py
+++ b/addons/membership/report/report_membership.py
@@ -18,7 +18,7 @@ class ReportMembership(models.Model):
'''Membership Analysis'''
_name = 'report.membership'
- _description = __doc__
+ _description = 'Membership Analysis'
_auto = False
_rec_name = 'start_date'
diff --git a/addons/product/models/product.py b/addons/product/models/product.py
index 12ddf1d9734..3318c9a075a 100644
--- a/addons/product/models/product.py
+++ b/addons/product/models/product.py
@@ -64,6 +64,7 @@ class ProductPriceHistory(models.Model):
_name = 'product.price.history'
_rec_name = 'datetime'
_order = 'datetime desc'
+ _description = 'Product Price List History'
def _get_default_company_id(self):
return self._context.get('force_company', self.env.user.company_id.id)
@@ -585,7 +586,7 @@ class ProductProduct(models.Model):
class ProductPackaging(models.Model):
_name = "product.packaging"
- _description = "Packaging"
+ _description = "Product Packaging"
_order = 'sequence'
name = fields.Char('Package Type', required=True)
@@ -598,7 +599,7 @@ class ProductPackaging(models.Model):
class SupplierInfo(models.Model):
_name = "product.supplierinfo"
- _description = "Information about a product vendor"
+ _description = "Supplier Pricelist"
_order = 'sequence, min_qty desc, price'
name = fields.Many2one(
diff --git a/addons/product/models/product_attribute.py b/addons/product/models/product_attribute.py
index 76ba430ba25..e2c20145455 100644
--- a/addons/product/models/product_attribute.py
+++ b/addons/product/models/product_attribute.py
@@ -22,6 +22,7 @@ class ProductAttribute(models.Model):
class ProductAttributevalue(models.Model):
_name = "product.attribute.value"
_order = 'attribute_id, sequence, id'
+ _description = 'Product Attribute Value'
name = fields.Char('Attribute Value', required=True, translate=True)
sequence = fields.Integer('Sequence', help="Determine the display order")
@@ -82,6 +83,7 @@ class ProductAttributevalue(models.Model):
class ProductAttributePrice(models.Model):
_name = "product.attribute.price"
+ _description = 'Product Attribute Price'
product_tmpl_id = fields.Many2one('product.template', 'Product Template', ondelete='cascade', required=True)
value_id = fields.Many2one('product.attribute.value', 'Product Attribute Value', ondelete='cascade', required=True)
@@ -91,6 +93,7 @@ class ProductAttributePrice(models.Model):
class ProductAttributeLine(models.Model):
_name = "product.attribute.line"
_rec_name = 'attribute_id'
+ _description = 'Product Attribute Line'
product_tmpl_id = fields.Many2one('product.template', 'Product Template', ondelete='cascade', required=True)
attribute_id = fields.Many2one('product.attribute', 'Attribute', ondelete='restrict', required=True)
diff --git a/addons/product/models/product_pricelist.py b/addons/product/models/product_pricelist.py
index ef73478b30b..958d5823c50 100644
--- a/addons/product/models/product_pricelist.py
+++ b/addons/product/models/product_pricelist.py
@@ -359,7 +359,7 @@ class ResCountryGroup(models.Model):
class PricelistItem(models.Model):
_name = "product.pricelist.item"
- _description = "Pricelist item"
+ _description = "Pricelist Item"
_order = "applied_on, min_quantity desc, categ_id desc, id"
product_tmpl_id = fields.Many2one(
diff --git a/addons/product/report/product_pricelist.py b/addons/product/report/product_pricelist.py
index 1b5c56003cf..2a94a4b2a29 100644
--- a/addons/product/report/product_pricelist.py
+++ b/addons/product/report/product_pricelist.py
@@ -7,6 +7,7 @@ from odoo.tools import float_round
class report_product_pricelist(models.AbstractModel):
_name = 'report.product.report_pricelist'
+ _description = 'Product Price List Report'
@api.model
def _get_report_values(self, docids, data=None):
diff --git a/addons/product/wizard/product_price_list.py b/addons/product/wizard/product_price_list.py
index 171c4b944be..bff0177f415 100644
--- a/addons/product/wizard/product_price_list.py
+++ b/addons/product/wizard/product_price_list.py
@@ -7,7 +7,7 @@ from odoo.exceptions import UserError
class product_price_list(models.TransientModel):
_name = 'product.price_list'
- _description = 'Price List'
+ _description = 'Product Price per Unit Based on Pricelist Version'
price_list = fields.Many2one('product.pricelist', 'PriceList', required=True)
qty1 = fields.Integer('Quantity-1', default=1)
diff --git a/addons/sale/models/sale.py b/addons/sale/models/sale.py
index 6657dd04c25..8547a0cf5db 100644
--- a/addons/sale/models/sale.py
+++ b/addons/sale/models/sale.py
@@ -20,7 +20,7 @@ from werkzeug.urls import url_encode
class SaleOrder(models.Model):
_name = "sale.order"
_inherit = ['portal.mixin', 'mail.thread', 'mail.activity.mixin']
- _description = "Quotation"
+ _description = "Sale Order"
_order = 'date_order desc, id desc'
def _default_validity_date(self):
diff --git a/addons/sale/report/report_all_channels_sales.py b/addons/sale/report/report_all_channels_sales.py
index 234e39e83f2..1638c087d05 100644
--- a/addons/sale/report/report_all_channels_sales.py
+++ b/addons/sale/report/report_all_channels_sales.py
@@ -6,7 +6,7 @@ from odoo import api, fields, models, tools
class PosSaleReport(models.Model):
_name = "report.all.channels.sales"
- _description = "All sales orders grouped by Sales Teams"
+ _description = "Sales by Channel (All in One)"
_auto = False
name = fields.Char('Order Reference', readonly=True)
diff --git a/addons/sale/report/sale_report.py b/addons/sale/report/sale_report.py
index 190c11afbba..70a1ebd4277 100644
--- a/addons/sale/report/sale_report.py
+++ b/addons/sale/report/sale_report.py
@@ -7,7 +7,7 @@ from odoo import api, fields, models
class SaleReport(models.Model):
_name = "sale.report"
- _description = "Sales Orders Statistics"
+ _description = "Sales Analysis Report"
_auto = False
_rec_name = 'date'
_order = 'date desc'
@@ -136,6 +136,7 @@ class SaleReport(models.Model):
class SaleOrderReportProforma(models.AbstractModel):
_name = 'report.sale.report_saleproforma'
+ _description = 'Proforma Report'
@api.multi
def _get_report_values(self, docids, data=None):
diff --git a/addons/sale/wizard/payment_acquirer_onboarding_wizard.py b/addons/sale/wizard/payment_acquirer_onboarding_wizard.py
index 2b7212437db..36653714cde 100644
--- a/addons/sale/wizard/payment_acquirer_onboarding_wizard.py
+++ b/addons/sale/wizard/payment_acquirer_onboarding_wizard.py
@@ -9,6 +9,7 @@ class PaymentWizard(models.TransientModel):
_inherit = 'payment.acquirer.onboarding.wizard'
_name = 'sale.payment.acquirer.onboarding.wizard'
+ _description = 'Sale Payment acquire onboarding wizard'
def _get_default_payment_method(self):
return self.env.user.company_id.sale_onboarding_payment_method or 'digital_signature'
diff --git a/addons/sale_timesheet/models/project_sale_line_employee_map.py b/addons/sale_timesheet/models/project_sale_line_employee_map.py
index 04814503a01..d657eeedabd 100644
--- a/addons/sale_timesheet/models/project_sale_line_employee_map.py
+++ b/addons/sale_timesheet/models/project_sale_line_employee_map.py
@@ -6,6 +6,7 @@ from odoo import api, fields, models
class ProjectProductEmployeeMap(models.Model):
_name = 'project.sale.line.employee.map'
+ _description = 'Project Sales line, employee mapping'
@api.model
def _default_project_id(self):
diff --git a/addons/sale_timesheet/report/project_profitability_report_analysis.py b/addons/sale_timesheet/report/project_profitability_report_analysis.py
index ae2e26819c4..366df3cc970 100644
--- a/addons/sale_timesheet/report/project_profitability_report_analysis.py
+++ b/addons/sale_timesheet/report/project_profitability_report_analysis.py
@@ -7,7 +7,7 @@ from odoo import fields, models, tools
class ProfitabilityAnalysis(models.Model):
_name = "project.profitability.report"
- _description = "Project Profitability Analysis"
+ _description = "Project Profitability Report"
_order = 'project_id, sale_line_id'
_auto = False
diff --git a/addons/sale_timesheet/wizard/project_create_invoice.py b/addons/sale_timesheet/wizard/project_create_invoice.py
index a02ab47af75..1df7bf948b2 100644
--- a/addons/sale_timesheet/wizard/project_create_invoice.py
+++ b/addons/sale_timesheet/wizard/project_create_invoice.py
@@ -7,7 +7,7 @@ from odoo.exceptions import UserError
class ProjectCreateInvoice(models.TransientModel):
_name = 'project.create.invoice'
- _description = "Create a Invoice from project"
+ _description = "Create Invoice from project"
@api.model
def default_get(self, fields):
diff --git a/addons/sale_timesheet/wizard/project_create_sale_order.py b/addons/sale_timesheet/wizard/project_create_sale_order.py
index 1e4ea237a48..781403dddbb 100644
--- a/addons/sale_timesheet/wizard/project_create_sale_order.py
+++ b/addons/sale_timesheet/wizard/project_create_sale_order.py
@@ -8,7 +8,7 @@ from odoo.addons import decimal_precision as dp
class ProjectCreateSalesOrder(models.TransientModel):
_name = 'project.create.sale.order'
- _description = "Create a SO from project"
+ _description = "Create SO from project"
@api.model
def default_get(self, fields):
@@ -194,6 +194,7 @@ class ProjectCreateSalesOrder(models.TransientModel):
class ProjectCreateSalesOrderLine(models.TransientModel):
_name = 'project.create.sale.order.line'
+ _description = 'Create SO Line from project'
_order = 'id,create_date'
wizard_id = fields.Many2one('project.create.sale.order', required=True)
diff --git a/addons/website_crm_partner_assign/models/res_partner.py b/addons/website_crm_partner_assign/models/res_partner.py
index 28372c1e402..7ff83efa005 100644
--- a/addons/website_crm_partner_assign/models/res_partner.py
+++ b/addons/website_crm_partner_assign/models/res_partner.py
@@ -8,6 +8,7 @@ from odoo.addons.http_routing.models.ir_http import slug
class ResPartnerGrade(models.Model):
_name = 'res.partner.grade'
_inherit = ['website.published.mixin']
+ _description = 'Partner Grade'
website_published = fields.Boolean(default=True)
sequence = fields.Integer('Sequence')
@@ -26,6 +27,7 @@ class ResPartnerGrade(models.Model):
class ResPartnerActivation(models.Model):
_name = 'res.partner.activation'
_order = 'sequence'
+ _description = 'Partner Activation'
sequence = fields.Integer('Sequence')
name = fields.Char('Name', required=True)
diff --git a/addons/website_crm_partner_assign/report/crm_lead_report.py b/addons/website_crm_partner_assign/report/crm_lead_report.py
new file mode 100644
index 00000000000..5971c239b2e
--- /dev/null
+++ b/addons/website_crm_partner_assign/report/crm_lead_report.py
@@ -0,0 +1,76 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+
+from odoo import api, fields, models
+from odoo import tools
+from odoo.addons.crm.models import crm_stage
+
+
+class CrmLeadReportAssign(models.Model):
+ """ CRM Lead Report """
+ _name = "crm.lead.report.assign"
+ _auto = False
+ _description = "Opp. Assignment Analysis"
+
+ partner_assigned_id = fields.Many2one('res.partner', 'Partner', readonly=True)
+ grade_id = fields.Many2one('res.partner.grade', 'Grade', readonly=True)
+ user_id = fields.Many2one('res.users', 'User', readonly=True)
+ country_id = fields.Many2one('res.country', 'Country', readonly=True)
+ team_id = fields.Many2one('crm.team', 'Sales Team', oldname='section_id', readonly=True)
+ company_id = fields.Many2one('res.company', 'Company', readonly=True)
+ date_assign = fields.Date('Assign Date', readonly=True)
+ delay_open = fields.Float('Delay to Assign', digits=(16, 2), readonly=True, group_operator="avg", help="Number of Days to open the case")
+ delay_close = fields.Float('Delay to Close', digits=(16, 2), readonly=True, group_operator="avg", help="Number of Days to close the case")
+ delay_expected = fields.Float('Overpassed Deadline', digits=(16, 2), readonly=True, group_operator="avg")
+ probability = fields.Float('Avg Probability', digits=(16, 2), readonly=True, group_operator="avg")
+ probability_max = fields.Float('Max Probability', digits=(16, 2), readonly=True, group_operator="max")
+ planned_revenue = fields.Float('Planned Revenue', digits=(16, 2), readonly=True)
+ probable_revenue = fields.Float('Probable Revenue', digits=(16, 2), readonly=True)
+ tag_ids = fields.Many2many('crm.lead.tag', 'crm_lead_tag_rel', 'lead_id', 'tag_id', 'Tags')
+ partner_id = fields.Many2one('res.partner', 'Customer', readonly=True)
+ opening_date = fields.Datetime('Opening Date', readonly=True)
+ date_closed = fields.Datetime('Close Date', readonly=True)
+ nbr_cases = fields.Integer('# of Cases', readonly=True, oldname='nbr')
+ priority = fields.Selection(crm_stage.AVAILABLE_PRIORITIES, 'Priority')
+ type = fields.Selection([
+ ('lead', 'Lead'),
+ ('opportunity', 'Opportunity')
+ ], 'Type', help="Type is used to separate Leads and Opportunities")
+
+ @api.model_cr
+ def init(self):
+ """
+ CRM Lead Report
+ @param cr: the current row, from the database cursor
+ """
+ tools.drop_view_if_exists(self._cr, 'crm_lead_report_assign')
+ self._cr.execute("""
+ CREATE OR REPLACE VIEW crm_lead_report_assign AS (
+ SELECT
+ c.id,
+ c.date_open as opening_date,
+ c.date_closed as date_closed,
+ c.date_assign,
+ c.user_id,
+ c.probability,
+ c.probability as probability_max,
+ c.type,
+ c.company_id,
+ c.priority,
+ c.team_id,
+ c.partner_id,
+ c.country_id,
+ c.planned_revenue,
+ c.partner_assigned_id,
+ p.grade_id,
+ p.date as partner_date,
+ c.planned_revenue*(c.probability/100) as probable_revenue,
+ 1 as nbr_cases,
+ c.create_date as create_date,
+ extract('epoch' from (c.write_date-c.create_date))/(3600*24) as delay_close,
+ extract('epoch' from (c.date_deadline - c.date_closed))/(3600*24) as delay_expected,
+ extract('epoch' from (c.date_open-c.create_date))/(3600*24) as delay_open
+ FROM
+ crm_lead c
+ left join res_partner p on (c.partner_assigned_id=p.id)
+ )""")
diff --git a/addons/website_crm_partner_assign/report/crm_partner_report.py b/addons/website_crm_partner_assign/report/crm_partner_report.py
index 1f21f9fdc14..de062bdcd59 100644
--- a/addons/website_crm_partner_assign/report/crm_partner_report.py
+++ b/addons/website_crm_partner_assign/report/crm_partner_report.py
@@ -9,7 +9,7 @@ class CrmPartnerReportAssign(models.Model):
""" CRM Lead Report """
_name = "crm.partner.report.assign"
_auto = False
- _description = "CRM Partner Report"
+ _description = "CRM Partnership Analysis"
partner_id = fields.Many2one('res.partner', 'Partner', required=False, readonly=True)
grade_id = fields.Many2one('res.partner.grade', 'Grade', readonly=True)
diff --git a/addons/website_crm_partner_assign/wizard/crm_forward_to_partner.py b/addons/website_crm_partner_assign/wizard/crm_forward_to_partner.py
index 3d85f0f4189..5b672a91ab4 100644
--- a/addons/website_crm_partner_assign/wizard/crm_forward_to_partner.py
+++ b/addons/website_crm_partner_assign/wizard/crm_forward_to_partner.py
@@ -8,6 +8,7 @@ from odoo.exceptions import UserError
class CrmLeadForwardToPartner(models.TransientModel):
""" Forward info history to partners. """
_name = 'crm.lead.forward.to.partner'
+ _description = 'Lead forward to partner'
@api.model
def _convert_to_assignation_line(self, lead, partner):
@@ -128,6 +129,7 @@ class CrmLeadForwardToPartner(models.TransientModel):
class CrmLeadAssignation(models.TransientModel):
_name = 'crm.lead.assignation'
+ _description = 'Lead Assignation'
forward_id = fields.Many2one('crm.lead.forward.to.partner', 'Partner Assignation')
lead_id = fields.Many2one('crm.lead', 'Lead')