diff options
| -rw-r--r-- | addons/crm/crm_lead.py | 36 | ||||
| -rw-r--r-- | addons/crm/crm_lead_menu.xml | 17 | ||||
| -rw-r--r-- | addons/crm/crm_lead_view.xml | 3 | ||||
| -rw-r--r-- | addons/crm/data/crm_stage_demo.xml | 1 | ||||
| -rw-r--r-- | addons/sales_team/sales_team.py | 37 | ||||
| -rw-r--r-- | addons/sales_team/sales_team.xml | 4 | ||||
| -rw-r--r-- | addons/sales_team/sales_team_dashboard.xml | 7 | ||||
| -rw-r--r-- | addons/sales_team/sales_team_demo.xml | 1 | ||||
| -rw-r--r-- | addons/sales_team/static/src/xml/sales_team_dashboard.xml | 4 | ||||
| -rw-r--r-- | addons/website_crm/data/website_crm_data.xml | 1 | ||||
| -rw-r--r-- | addons/website_sale/data/data.xml | 1 | ||||
| -rw-r--r-- | addons/website_sale/data/demo.xml | 6 |
12 files changed, 63 insertions, 55 deletions
diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py index 2adf9fb84e4..b488137e50a 100644 --- a/addons/crm/crm_lead.py +++ b/addons/crm/crm_lead.py @@ -1221,3 +1221,39 @@ class crm_lost_reason(osv.Model): _columns = { 'name': fields.char('Name', required=True), } + + +class crm_team(osv.Model): + _inherit = "crm.team" + def action_your_pipeline(self, cr, uid, context={}): + imd = self.pool.get('ir.actions.act_window') + action = imd.for_xml_id(cr, uid, 'crm', "crm_lead_opportunities_tree_view", context=context) + user = self.pool.get('res.users').browse(cr, uid, uid, context=context) + team_id = user.sale_team_id.id + if not team_id: + team_id = self.search(cr, uid, [], context=context, limit=1) + team_id = team_id and team_id[0] + action['help'] = """ + <p class='oe_view_nocontent_create'>Click here to add new opportunities</p><p> + Looks like you are not a member of a sales team. You should add yourself + as a member of one of the sales team. + </p>""" + if team_id: + action['help'] += "<p>As you don't belong to any sales team, Odoo opens the first one by default.</p>" + newcontext = eval(action['context'], {'uid': uid}) + if team_id: + newcontext.update({ + 'default_team_id': team_id, + 'search_default_team_id': team_id + }) + result = { + 'name': action['name'], + 'help': action['help'], + 'type': action['type'], + 'views': [[False, 'kanban'], [False, 'tree'], [False, 'form'], [False, 'graph'], [False, 'calendar'], [False, 'pivot']], + 'target': action['target'], + 'context': newcontext, + 'res_model': action['res_model'], + } + return result + diff --git a/addons/crm/crm_lead_menu.xml b/addons/crm/crm_lead_menu.xml index f1245382535..d569110a2e0 100644 --- a/addons/crm/crm_lead_menu.xml +++ b/addons/crm/crm_lead_menu.xml @@ -54,18 +54,25 @@ </field> </record> + <record id="action_your_pipeline" model="ir.actions.server"> + <field name="name">Your Pipeline</field> + <field name="model_id" ref="crm.model_crm_team"/> + <field name="state">code</field> + <field name="code">action = self.action_your_pipeline(cr, uid, context=context)</field> + <field eval="True" name="condition"/> + </record> + <record model="ir.actions.act_window" id="crm_lead_opportunities_tree_view"> - <field name="name">Pipeline</field> + <field name="name">Your Pipeline</field> <field name="res_model">crm.lead</field> - <field name="view_mode">tree,graph,pivot,form,calendar</field> + <field name="view_mode">kanban,tree,graph,pivot,form,calendar</field> <field name="domain">[('type','=','opportunity')]</field> <field name="context">{ 'stage_type': 'opportunity', 'default_type': 'opportunity', 'default_user_id': uid, 'search_default_assigned_to_me': 1, - } - </field> +}</field> <field name="search_view_id" ref="crm.view_crm_case_opportunities_filter"/> <field name="help" type="html"> <p> @@ -102,7 +109,7 @@ <menuitem id="base.menu_sales" name="Sales" parent="base.menu_base_partner" sequence="5"/> <menuitem name="Leads" id="menu_crm_leads" parent="base.menu_sales" sequence="1" action="crm_lead_all_leads" groups="crm.group_use_lead"/> - <menuitem name="Pipeline" id="menu_crm_opportunities" action="crm_lead_opportunities_tree_view" parent="base.menu_sales" sequence="1"/> + <menuitem id="menu_crm_opportunities" action="action_your_pipeline" parent="base.menu_sales" sequence="4"/> <record id="crm_lead_action_activities" model="ir.actions.act_window"> <field name="name">Next Activities</field> diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml index f4874d6c5ea..d0e6258bd80 100644 --- a/addons/crm/crm_lead_view.xml +++ b/addons/crm/crm_lead_view.xml @@ -368,7 +368,8 @@ name="type_opportunity" domain="[('type', '=', 'opportunity')]"/> <separator/> - <filter string="My Leads" + <filter string="My Opportunities" + name="assigned_to_me" domain="[('user_id','=',uid)]" help="Leads that are assigned to me"/> <filter string="Unassigned" name="unassigned" diff --git a/addons/crm/data/crm_stage_demo.xml b/addons/crm/data/crm_stage_demo.xml index d72e1481678..c233d9849e6 100644 --- a/addons/crm/data/crm_stage_demo.xml +++ b/addons/crm/data/crm_stage_demo.xml @@ -60,7 +60,6 @@ (4, ref('stage_lead4'))]"/> </record> <record model="crm.team" id="sales_team.crm_team_1"> - <field name="member_ids" eval="[(4, ref('base.user_root')),(4, ref('base.user_demo'))]"/> <field name="stage_ids" eval="[(4, ref('crm_stage_2_1')), (4, ref('crm_stage_2_2')), (4, ref('crm_stage_2_3')), diff --git a/addons/sales_team/sales_team.py b/addons/sales_team/sales_team.py index ec99ca6bdf2..d6c523bf548 100644 --- a/addons/sales_team/sales_team.py +++ b/addons/sales_team/sales_team.py @@ -8,12 +8,9 @@ class crm_team(osv.Model): _name = "crm.team" _inherit = ['mail.thread', 'ir.needaction_mixin'] _description = "Sales Team" - _order = "complete_name" + _order = "name" _period_number = 5 - def get_full_name(self, cr, uid, ids, field_name, arg, context=None): - return dict(self.name_get(cr, uid, ids, context=context)) - def _get_default_team_id(self, cr, uid, context=None, user_id=None): if context is None: context = {} @@ -29,16 +26,13 @@ class crm_team(osv.Model): _columns = { 'name': fields.char('Sales Team', size=64, required=True, translate=True), - 'complete_name': fields.function(get_full_name, type='char', size=256, readonly=True, store=True, string="Full Name"), 'code': fields.char('Code', size=8), 'active': fields.boolean('Active', help="If the active field is set to "\ "false, it will allow you to hide the sales team without removing it."), 'company_id': fields.many2one('res.company', 'Company'), 'user_id': fields.many2one('res.users', 'Team Leader'), - 'member_ids': fields.many2many('res.users', 'sale_member_rel', 'team_id', 'member_id', 'Team Members'), + 'member_ids': fields.one2many('res.users', 'sale_team_id', 'Team Members'), 'reply_to': fields.char('Reply-To', size=64, help="The email address put in the 'Reply-To' of all emails sent by Odoo about cases in this sales team"), - 'parent_id': fields.many2one('crm.team', 'Parent Team'), - 'child_ids': fields.one2many('crm.team', 'parent_id', 'Child Teams'), 'working_hours': fields.float('Working Hours', digits=(16, 2)), 'color': fields.integer('Color Index'), } @@ -51,35 +45,22 @@ class crm_team(osv.Model): ('code_uniq', 'unique (code)', 'The code of the sales team must be unique !') ] - _constraints = [ - (osv.osv._check_recursion, 'Error ! You cannot create recursive Sales team.', ['parent_id']) - ] - def create(self, cr, uid, values, context=None): if context is None: context = {} context['mail_create_nosubscribe'] = True return super(crm_team, self).create(cr, uid, values, context=context) - def name_get(self, cr, uid, ids, context=None): - """Overrides orm name_get method""" - if not isinstance(ids, list): - ids = [ids] - res = [] - if not ids: - return res - reads = self.read(cr, uid, ids, ['name', 'parent_id'], context) - - for record in reads: - name = record['name'] - if record['parent_id']: - name = record['parent_id'][1] + ' / ' + name - res.append((record['id'], name)) - return res - class res_partner(osv.Model): _inherit = 'res.partner' _columns = { 'team_id': fields.many2one('crm.team', 'Sales Team', oldname='section_id'), } + +class res_users(osv.Model): + _inherit = ['res.users'] + _columns = { + 'sale_team_id': fields.many2one('crm.team','Sales Team') + } + diff --git a/addons/sales_team/sales_team.xml b/addons/sales_team/sales_team.xml index b4d07b55cb0..942ddb6851d 100644 --- a/addons/sales_team/sales_team.xml +++ b/addons/sales_team/sales_team.xml @@ -14,12 +14,10 @@ <search string="Salesteams Search"> <filter name="personal" string="My Salesteams" domain="['|', ('member_ids', '=', uid), ('user_id', '=', uid)]"/> <field name="name"/> - <field name="parent_id"/> <field name="user_id"/> <field name="code"/> <group expand="0" string="Group By..."> <filter string="Team Leader" domain="[]" context="{'group_by':'user_id'}"/> - <filter string="Parent Sales Teams" domain="[]" context="{'group_by':'parent_id'}"/> </group> </search> </field> @@ -27,7 +25,7 @@ <!-- Case Teams Action --> <record id="crm_team_salesteams_act" model="ir.actions.act_window"> - <field name="name">Sales Teams</field> + <field name="name">Dashboard</field> <field name="res_model">crm.team</field> <field name="view_type">form</field> <field name="view_mode">sales_team_dashboard</field> diff --git a/addons/sales_team/sales_team_dashboard.xml b/addons/sales_team/sales_team_dashboard.xml index 79f2bfba168..d94efdb385a 100644 --- a/addons/sales_team/sales_team_dashboard.xml +++ b/addons/sales_team/sales_team_dashboard.xml @@ -62,11 +62,4 @@ </field> </record> - <record id="action_sales_team_dashboard" model="ir.actions.client"> - <field name="name">Sales Team Dashboard</field> - <field name="res_model">crm.team</field> - <field name="tag">sales_team_dashboard</field> - </record> - - <menuitem action="action_sales_team_dashboard" id="menu_sales_team_dashboard" parent="base.menu_sales" sequence="20" groups="base.group_sale_salesman,base.group_sale_manager"/> </odoo> diff --git a/addons/sales_team/sales_team_demo.xml b/addons/sales_team/sales_team_demo.xml index 68cc2e0f7a0..552e89b93f0 100644 --- a/addons/sales_team/sales_team_demo.xml +++ b/addons/sales_team/sales_team_demo.xml @@ -10,7 +10,6 @@ </record> <record model="crm.team" id="crm_team_1"> <field name="name">Indirect Sales</field> - <field name="member_ids" eval="[(4, ref('base.user_root')),(4, ref('base.user_demo'))]"/> </record> </data> </odoo> diff --git a/addons/sales_team/static/src/xml/sales_team_dashboard.xml b/addons/sales_team/static/src/xml/sales_team_dashboard.xml index bce1fac5d8c..eb67da5934a 100644 --- a/addons/sales_team/static/src/xml/sales_team_dashboard.xml +++ b/addons/sales_team/static/src/xml/sales_team_dashboard.xml @@ -3,7 +3,7 @@ <templates> <!-- - This template is the rubbon at the top of the salesteam dashboard that adds + This template is the ribbon at the top of the salesteam dashboard that adds some figures to it. We call this rubbon the "SalesDashboard". --> <t t-name="sales_team.SalesDashboard"> @@ -233,7 +233,7 @@ <h2>Hi there!</h2> <h4>Great sales journeys start with a clean pipeline.</h4> <h4>Create a few opportunities to activate your dashboard.</h4> - <a class="btn btn-primary btn-lg o_dashboard_action" name="crm.crm_lead_opportunities">Your Pipeline</a> + <a class="btn btn-primary o_dashboard_action" name="crm.action_your_pipeline">Your Pipeline</a> </div> </div> </div> diff --git a/addons/website_crm/data/website_crm_data.xml b/addons/website_crm/data/website_crm_data.xml index a116a6ae411..e74672c71b1 100644 --- a/addons/website_crm/data/website_crm_data.xml +++ b/addons/website_crm/data/website_crm_data.xml @@ -21,7 +21,6 @@ <record model="crm.team" id="website.salesteam_website_sales"> <field name="name">Website Sales</field> <field name="code">WS</field> - <field name="member_ids" eval="[(4, ref('base.user_root'))]"/> <field name="use_leads">True</field> <field name="use_opportunities" eval="False"/> </record> diff --git a/addons/website_sale/data/data.xml b/addons/website_sale/data/data.xml index e0eaeec4b5a..798d2221c81 100644 --- a/addons/website_sale/data/data.xml +++ b/addons/website_sale/data/data.xml @@ -30,7 +30,6 @@ <record model="crm.team" id="website.salesteam_website_sales"> <field name="name">Website Sales</field> <field name="code">WS</field> - <field name="member_ids" eval="[(4, ref('base.user_root'))]"/> <field name="use_quotations" eval="False"/> </record> diff --git a/addons/website_sale/data/demo.xml b/addons/website_sale/data/demo.xml index 115356a469f..fb43f644bb1 100644 --- a/addons/website_sale/data/demo.xml +++ b/addons/website_sale/data/demo.xml @@ -548,13 +548,9 @@ Weight: 31 grams</field> <field name="price_discount">-0.2000</field> <field name="sequence">1</field> </record> - - <record model="crm.team" id="website.salesteam_website_sales"> - <field name="member_ids" eval="[(4, ref('base.user_root'), ref('base.user_demo'))]"/> - </record> <!-- product.public.category --> - + <record id="product.Components" model="product.public.category"> <field name="name">Components</field> <field name="sequence">15</field> |
