From 30a848bffbdd7a0f6bd3c3817d2de154e0bf82da Mon Sep 17 00:00:00 2001 From: Julien Castiaux Date: Mon, 8 Apr 2019 13:42:52 +0000 Subject: [PATCH] [FIX] crm, sale: safe override of sales team The user can delete teams created during the installation of the Sale Team module, both CRM and Sale modify those teams but the way they modify the teams doesn't take their deletion into account. opw-1962297 closes odoo/odoo#32412 Signed-off-by: Nicolas Martinelli (nim) --- addons/crm/__init__.py | 18 ++++++++++++++++++ addons/crm/__manifest__.py | 1 + addons/crm/data/crm_data.xml | 7 ------- addons/crm/data/crm_lead_data.xml | 5 ----- addons/sale/__init__.py | 10 ++++++++++ addons/sale/__manifest__.py | 1 + addons/sale/data/sale_data.xml | 6 ------ 7 files changed, 30 insertions(+), 18 deletions(-) diff --git a/addons/crm/__init__.py b/addons/crm/__init__.py index 3398a4b470d..d62e4f34d3c 100644 --- a/addons/crm/__init__.py +++ b/addons/crm/__init__.py @@ -13,3 +13,21 @@ def uninstall_hook(cr, registry): env = api.Environment(cr, SUPERUSER_ID, {}) teams = env['crm.team'].search([('dashboard_graph_model', '=', 'crm.opportunity.report')]) teams.update({'dashboard_graph_model': None}) + +def _update_sale_teams(cr, registry): + env = api.Environment(cr, SUPERUSER_ID, {}) + + sale_team = env.ref('sales_team.team_sales_department', False) + ws_team = env.ref('sales_team.salesteam_website_sales', False) + teams = [team for team in [sale_team, ws_team] if team] + + if teams: + env['crm.team'].message_unsubscribe(teams, [env.ref('base.partner_root')]) + env['crm.team'].message_subscribe(teams, [env.ref('base.partner_root')]) + + if sale_team: + sale_team.write({ + 'use_opportunities': True, + 'alias_name': 'sales', + 'dashboard_graph_model': 'crm.lead', + }) diff --git a/addons/crm/__manifest__.py b/addons/crm/__manifest__.py index 4223c2c1ad6..1cfda7e9a6b 100644 --- a/addons/crm/__manifest__.py +++ b/addons/crm/__manifest__.py @@ -56,4 +56,5 @@ 'application': True, 'auto_install': False, 'uninstall_hook': 'uninstall_hook', + 'post_init_hook': '_update_sale_teams', } diff --git a/addons/crm/data/crm_data.xml b/addons/crm/data/crm_data.xml index 91edb12038a..236e5605349 100644 --- a/addons/crm/data/crm_data.xml +++ b/addons/crm/data/crm_data.xml @@ -1,13 +1,6 @@ - - True - sales - crm.lead - - - diff --git a/addons/crm/data/crm_lead_data.xml b/addons/crm/data/crm_lead_data.xml index 4a287afb4e8..914fd3f167f 100644 --- a/addons/crm/data/crm_lead_data.xml +++ b/addons/crm/data/crm_lead_data.xml @@ -60,11 +60,6 @@ team_id - - - diff --git a/addons/sale/__init__.py b/addons/sale/__init__.py index abfa039b9ef..3ec4fa32915 100644 --- a/addons/sale/__init__.py +++ b/addons/sale/__init__.py @@ -22,3 +22,13 @@ def uninstall_hook(cr, registry): rec._onchange_team_type() cr.after("commit", partial(update_dashboard_graph_model, cr.dbname)) + +def _update_sale_teams(cr, registry): + env = api.Environment(cr, SUPERUSER_ID, {}) + sale_team = env.ref('sales_team.team_sales_department', False) + if sale_team: + sale_team.write({ + 'use_quotations': True, + 'use_invoices': True, + 'dashboard_graph_model': 'sale.report' + }) \ No newline at end of file diff --git a/addons/sale/__manifest__.py b/addons/sale/__manifest__.py index ec9faf38bd2..1c237e8937f 100644 --- a/addons/sale/__manifest__.py +++ b/addons/sale/__manifest__.py @@ -40,6 +40,7 @@ This module contains all the common features of Sales Management and eCommerce. 'data/product_product_demo.xml', ], 'uninstall_hook': "uninstall_hook", + 'post_init_hook': '_update_sale_teams', 'installable': True, 'auto_install': False } diff --git a/addons/sale/data/sale_data.xml b/addons/sale/data/sale_data.xml index 2b8b4ebd0b2..8abe2f432d8 100644 --- a/addons/sale/data/sale_data.xml +++ b/addons/sale/data/sale_data.xml @@ -1,12 +1,6 @@ - - - - sale.report - - Share