From 8280c7d5598cc52996e0da9fd3a28dc5adc51b72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Tue, 5 May 2020 07:22:57 +0000 Subject: [PATCH] [ADD] iap_crm: bridge module for IAP and CRM PURPOSE Clean and improve IAP services integration in Odoo. Clean IAP integrations tools and improve data sharing with base modules, notably for CRM and Partner. SPECIFICATIONS In this commit we create a bridge module between iap_mail and crm to hold notably some fields used in various CRM integrations. Now that we have clean bridge module we can safely update crm and partner integrations dependencies. LINKS Task ID-2248367 Community PR odoo/odoo#53214 Enterprise PR odoo/enterprise#11258 Upgrade PR odoo/upgrade#1363 IAP PR odoo/iap-apps#191 --- addons/crm_iap_lead/__manifest__.py | 5 +++-- addons/crm_iap_lead/models/__init__.py | 1 - addons/crm_iap_lead/models/crm_lead.py | 1 - addons/crm_iap_lead/models/ir_model_fields.py | 18 ----------------- addons/crm_iap_lead_enrich/__manifest__.py | 3 ++- addons/crm_iap_lead_enrich/models/__init__.py | 1 - addons/crm_iap_lead_enrich/models/crm_lead.py | 1 - .../models/ir_model_fields.py | 18 ----------------- addons/crm_iap_lead_website/__manifest__.py | 6 +++--- addons/iap_crm/__init__.py | 4 ++++ addons/iap_crm/__manifest__.py | 20 +++++++++++++++++++ addons/iap_crm/models/__init__.py | 4 ++++ addons/iap_crm/models/crm_lead.py | 10 ++++++++++ addons/partner_autocomplete/__manifest__.py | 2 +- odoo/addons/base/__manifest__.py | 2 +- 15 files changed, 48 insertions(+), 48 deletions(-) delete mode 100644 addons/crm_iap_lead/models/ir_model_fields.py delete mode 100644 addons/crm_iap_lead_enrich/models/ir_model_fields.py create mode 100644 addons/iap_crm/__init__.py create mode 100644 addons/iap_crm/__manifest__.py create mode 100644 addons/iap_crm/models/__init__.py create mode 100644 addons/iap_crm/models/crm_lead.py diff --git a/addons/crm_iap_lead/__manifest__.py b/addons/crm_iap_lead/__manifest__.py index f28486212b9..7cd8e7d4e09 100644 --- a/addons/crm_iap_lead/__manifest__.py +++ b/addons/crm_iap_lead/__manifest__.py @@ -3,12 +3,13 @@ { 'name': 'Lead Generation', - 'summary': 'Create Leads/Opportunities based on country, industries, size, etc.', + 'summary': 'Generate Leads/Opportunities based on country, industries, size, etc.', + 'version': '1.1', 'category': 'Sales/CRM', 'version': '1.1', 'depends': [ + 'iap_crm', 'iap_mail', - 'crm', ], 'data': [ 'data/crm.iap.lead.industry.csv', diff --git a/addons/crm_iap_lead/models/__init__.py b/addons/crm_iap_lead/models/__init__.py index 1ac91ddbc0c..d529ee24678 100644 --- a/addons/crm_iap_lead/models/__init__.py +++ b/addons/crm_iap_lead/models/__init__.py @@ -4,4 +4,3 @@ from . import crm_lead from . import crm_iap_lead from . import crm_iap_lead_helpers from . import crm_iap_lead_mining_request -from . import ir_model_fields diff --git a/addons/crm_iap_lead/models/crm_lead.py b/addons/crm_iap_lead/models/crm_lead.py index bbf70174ef7..eaed1d92bd7 100644 --- a/addons/crm_iap_lead/models/crm_lead.py +++ b/addons/crm_iap_lead/models/crm_lead.py @@ -7,5 +7,4 @@ from odoo import fields, models class Lead(models.Model): _inherit = 'crm.lead' - reveal_id = fields.Char(string='Reveal ID', index=True) lead_mining_request_id = fields.Many2one('crm.iap.lead.mining.request', string='Lead Mining Request', index=True) diff --git a/addons/crm_iap_lead/models/ir_model_fields.py b/addons/crm_iap_lead/models/ir_model_fields.py deleted file mode 100644 index 06a7fb6eeb0..00000000000 --- a/addons/crm_iap_lead/models/ir_model_fields.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- -# Part of Odoo. See LICENSE file for full copyright and licensing details - -from odoo import models - - -class IrModelFields(models.Model): - _inherit = 'ir.model.fields' - - def unlink(self): - # Nasty hack to prevent the deletion of shared field reveal_id - self = self.filtered( - lambda rec: not ( - rec.model == 'crm.lead' - and rec.name == 'reveal_id' - ) - ) - return super(IrModelFields, self).unlink() diff --git a/addons/crm_iap_lead_enrich/__manifest__.py b/addons/crm_iap_lead_enrich/__manifest__.py index 55398d00cdd..3c82fa6283c 100644 --- a/addons/crm_iap_lead_enrich/__manifest__.py +++ b/addons/crm_iap_lead_enrich/__manifest__.py @@ -4,11 +4,12 @@ { 'name': 'Lead Enrichment', 'summary': 'Enrich Leads/Opportunities using email address domain', + 'version': '1.1', 'category': 'Sales/CRM', 'version': '1.1', 'depends': [ + 'iap_crm', 'iap_mail', - 'crm', ], 'data': [ 'data/ir_cron.xml', diff --git a/addons/crm_iap_lead_enrich/models/__init__.py b/addons/crm_iap_lead_enrich/models/__init__.py index f1f911179a4..dcb5aa3d8a4 100644 --- a/addons/crm_iap_lead_enrich/models/__init__.py +++ b/addons/crm_iap_lead_enrich/models/__init__.py @@ -4,4 +4,3 @@ from . import crm_lead from . import iap_enrich_api from . import res_config_settings -from . import ir_model_fields diff --git a/addons/crm_iap_lead_enrich/models/crm_lead.py b/addons/crm_iap_lead_enrich/models/crm_lead.py index d6953cc0bdd..4f679f6a957 100644 --- a/addons/crm_iap_lead_enrich/models/crm_lead.py +++ b/addons/crm_iap_lead_enrich/models/crm_lead.py @@ -13,7 +13,6 @@ _logger = logging.getLogger(__name__) class Lead(models.Model): _inherit = 'crm.lead' - reveal_id = fields.Char(string='Reveal ID', index=True) iap_enrich_done = fields.Boolean(string='Enrichment done', help='Whether IAP service for lead enrichment based on email has been performed on this lead.') show_enrich_button = fields.Boolean(string='Allow manual enrich', compute="_compute_show_enrich_button") diff --git a/addons/crm_iap_lead_enrich/models/ir_model_fields.py b/addons/crm_iap_lead_enrich/models/ir_model_fields.py deleted file mode 100644 index 06a7fb6eeb0..00000000000 --- a/addons/crm_iap_lead_enrich/models/ir_model_fields.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- -# Part of Odoo. See LICENSE file for full copyright and licensing details - -from odoo import models - - -class IrModelFields(models.Model): - _inherit = 'ir.model.fields' - - def unlink(self): - # Nasty hack to prevent the deletion of shared field reveal_id - self = self.filtered( - lambda rec: not ( - rec.model == 'crm.lead' - and rec.name == 'reveal_id' - ) - ) - return super(IrModelFields, self).unlink() diff --git a/addons/crm_iap_lead_website/__manifest__.py b/addons/crm_iap_lead_website/__manifest__.py index 0fc11bfdb27..17f7c00f92b 100644 --- a/addons/crm_iap_lead_website/__manifest__.py +++ b/addons/crm_iap_lead_website/__manifest__.py @@ -3,14 +3,14 @@ { 'name': 'Lead Generation From Website Visits', - 'summary': 'Create Leads/Opportunities from your website\'s traffic', + 'summary': 'Generate Leads/Opportunities from your website\'s traffic', 'version': '1.1', 'category': 'Sales/CRM', 'depends': [ + 'iap_crm', 'iap_mail', - 'crm', 'crm_iap_lead', - 'website_form', + 'website_form' ], 'data': [ 'data/reveal_data.xml', diff --git a/addons/iap_crm/__init__.py b/addons/iap_crm/__init__.py new file mode 100644 index 00000000000..dc5e6b693d1 --- /dev/null +++ b/addons/iap_crm/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import models diff --git a/addons/iap_crm/__manifest__.py b/addons/iap_crm/__manifest__.py new file mode 100644 index 00000000000..4f17c4ce3fc --- /dev/null +++ b/addons/iap_crm/__manifest__.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + + +{ + 'name': "IAP / CRM", + 'summary': """Bridge between IAP and CRM""", + 'description': """Bridge between IAP and CRM""", + 'category': 'Hidden/Tools', + 'version': '1.0', + 'depends': [ + 'crm', + 'iap_mail', + ], + 'application': False, + 'installable': True, + 'auto_install': True, + 'data': [ + ], +} diff --git a/addons/iap_crm/models/__init__.py b/addons/iap_crm/models/__init__.py new file mode 100644 index 00000000000..00140f99c9f --- /dev/null +++ b/addons/iap_crm/models/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import crm_lead diff --git a/addons/iap_crm/models/crm_lead.py b/addons/iap_crm/models/crm_lead.py new file mode 100644 index 00000000000..c45d9da847d --- /dev/null +++ b/addons/iap_crm/models/crm_lead.py @@ -0,0 +1,10 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import fields, models + + +class Lead(models.Model): + _inherit = 'crm.lead' + + reveal_id = fields.Char(string='Reveal ID', help="Technical ID of reveal request done by IAP.") diff --git a/addons/partner_autocomplete/__manifest__.py b/addons/partner_autocomplete/__manifest__.py index e4ff3294ef9..92ce812ee40 100644 --- a/addons/partner_autocomplete/__manifest__.py +++ b/addons/partner_autocomplete/__manifest__.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. + { 'name': "Partner Autocomplete", 'summary': "Auto-complete partner companies' data", @@ -11,7 +12,6 @@ 'author': "Odoo SA", 'category': 'Hidden/Tools', 'version': '1.0', - 'depends': [ 'iap_mail', ], diff --git a/odoo/addons/base/__manifest__.py b/odoo/addons/base/__manifest__.py index 46962db9c2e..aed63a8501d 100644 --- a/odoo/addons/base/__manifest__.py +++ b/odoo/addons/base/__manifest__.py @@ -4,7 +4,7 @@ { 'name': 'Base', - 'version': '1.4', + 'version': '1.3', 'category': 'Hidden', 'description': """ The kernel of Odoo, needed for all installation.