[REF] crm: finalize multi sales-team and auto assign integration
GLOBAL PURPOSE
Ability to have salesmen belonging to several sales team is a core requirement
of CRM. It is therefore moved from website_crm_score to crm along with cleaning
and behavior improvement. Automatic lead assignment is also moved and cleaned.
SPECIFICATIONS
Make final integration of members management by taking into consideration
both multi-membership and automatic lead assignment features.
Correctly hide assignment options and fields if auto assign is not activated.
This means that
* when being in mono membership mode without automatic assign: display
users on team form view;
* when being in multi membership mode or with automatic assign: display
members o2m records, as configuration is done on this model;
* hide the whole right column in sales team form view about assignment when
assignment is not activated in settings;
LINKS
Task ID-2086889 (main task)
Task ID-2357969 (scoring migration task)
Community PR odoo/odoo#48422
Enterprise PR odoo/enterprise#499
Upgrade PR odoo/upgrade#996
This commit is contained in:
@@ -19,6 +19,7 @@ class Team(models.Model):
|
||||
_inherit = 'crm.team.member'
|
||||
|
||||
# assignment
|
||||
assignment_enabled = fields.Boolean(related="crm_team_id.assignment_enabled")
|
||||
assignment_domain = fields.Char('Assignment Domain', tracking=True)
|
||||
assignment_max = fields.Integer('Max Leads (last 30 days)')
|
||||
lead_month_count = fields.Integer(
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
<field name="inherit_id" ref="sales_team.crm_team_member_view_tree"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="user_id" position="after">
|
||||
<field name="assignment_enabled" invisible="1"/>
|
||||
<field name="assignment_max"/>
|
||||
<field name="lead_month_count"/>
|
||||
</field>
|
||||
@@ -19,7 +20,9 @@
|
||||
<field name="inherit_id" ref="sales_team.crm_team_member_view_kanban"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//div[hasclass('oe_kanban_details')]" position="after">
|
||||
<div class="o_member_assignment">
|
||||
<field name="assignment_enabled" invisible="1"/>
|
||||
<div class="o_member_assignment"
|
||||
attrs="{'invisible': [('assignment_enabled', '=', False)]}">
|
||||
<field name="assignment_max" invisible="1"/>
|
||||
<field name="lead_month_count" widget="gauge"
|
||||
options="{'max_field': 'assignment_max'}"/>
|
||||
@@ -34,7 +37,8 @@
|
||||
<field name="inherit_id" ref="sales_team.crm_team_member_view_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//group[@name='member_partner_info']" position="after">
|
||||
<group name="group_assign">
|
||||
<group name="group_assign" attrs="{'invisible': [('assignment_enabled', '=', False)]}">
|
||||
<field name="assignment_enabled" invisible="1"/>
|
||||
<label for="lead_month_count"/>
|
||||
<div>
|
||||
<field name="lead_month_count" class="oe_inline"/>
|
||||
|
||||
@@ -111,7 +111,8 @@
|
||||
<button name="action_assign_leads" type="object"
|
||||
string="Assign Leads"
|
||||
class="oe_highlight"
|
||||
confirm="This will assign leads to all members. Do you want to proceed?"/>
|
||||
confirm="This will assign leads to all members. Do you want to proceed?"
|
||||
attrs="{'invisible': [('assignment_enabled', '=', False)]}"/>
|
||||
</header>
|
||||
</xpath>
|
||||
<xpath expr="//div[@name='options_active']" position="inside">
|
||||
@@ -147,16 +148,27 @@
|
||||
</xpath>
|
||||
<xpath expr="//group[@name='right']" position="attributes">
|
||||
<attribute name="string">Assignment Rules</attribute>
|
||||
<attribute name="attrs">{'invisible': [('assignment_enabled', '=', False)]}</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//group[@name='right']" position="inside">
|
||||
<field name="assignment_enabled" invisible="1"/>
|
||||
<field name="assignment_auto_enabled" invisible="1"/>
|
||||
<field name="assignment_domain" widget="domain" string="Domain"
|
||||
options="{'model': 'crm.lead', 'in_dialog': True}"/>
|
||||
<label for="lead_all_assigned_month_count" string="Assigned Leads Count"/>
|
||||
<div>
|
||||
options="{'model': 'crm.lead', 'in_dialog': True}"
|
||||
attrs="{'invisible': [('assignment_enabled', '=', False)]}"/>
|
||||
<label for="lead_all_assigned_month_count" string="Assigned Leads Count"
|
||||
attrs="{'invisible': [('assignment_enabled', '=', False)]}"/>
|
||||
<div attrs="{'invisible': [('assignment_enabled', '=', False)]}">
|
||||
<field name="lead_all_assigned_month_count" class="oe_inline"/> /
|
||||
<field name="assignment_max" class="oe_inline"/>
|
||||
</div>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='member_ids']" position="attributes">
|
||||
<attribute name="attrs">{'invisible': [('assignment_enabled', '=', True)]}</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='crm_team_member_ids']" position="attributes">
|
||||
<attribute name="attrs">{'invisible': [('assignment_enabled', '=', False)]}</attribute>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -53,8 +53,7 @@
|
||||
<notebook>
|
||||
<page string="Members" name="members_users">
|
||||
<field name="member_ids" mode="kanban"
|
||||
class="w-100"
|
||||
attrs="{'invisible': [('is_membership_multi', '=', True)]}">
|
||||
class="w-100">
|
||||
<kanban>
|
||||
<field name="id"/>
|
||||
<field name="name"/>
|
||||
@@ -82,7 +81,7 @@
|
||||
</field>
|
||||
<field name="crm_team_member_ids" mode="kanban"
|
||||
class="w-100"
|
||||
attrs="{'invisible': [('is_membership_multi', '=', False)]}"
|
||||
attrs="{'invisible': ['|', ('is_membership_multi', '=', True), ('is_membership_multi', '=', False)]}"
|
||||
context="{
|
||||
'kanban_view_ref': 'sales_team.crm_team_member_view_kanban_from_team',
|
||||
'form_view_ref': 'sales_team.crm_team_member_view_form_from_team',
|
||||
|
||||
Reference in New Issue
Block a user