From c8480c13a09508ed82b1507db2c2bc7b5c377b3b Mon Sep 17 00:00:00 2001 From: Cristina Martin Date: Thu, 28 Feb 2019 23:04:35 +0100 Subject: [PATCH] [12.0][MIG] partner_industry_secondary: Migration to v12 --- partner_industry_secondary/README.rst | 3 +- partner_industry_secondary/__manifest__.py | 5 +- .../i18n/partner_industry_secondary.pot | 9 +-- .../i18n/partner_sector.pot | 10 +-- .../11.0.1.0.0/openupgrade_analysis.txt | 40 ----------- .../11.0.1.0.0/openupgrade_analysis_work.txt | 55 --------------- .../migrations/11.0.1.0.0/post-migration.py | 67 ------------------- .../migrations/11.0.1.0.0/pre-migration.py | 27 -------- .../migrations/12.0.1.0.0/post-migration.py | 9 +++ .../models/res_partner.py | 2 +- .../models/res_partner_industry.py | 6 +- .../readme/CONTRIBUTORS.rst | 1 + .../views/res_partner_industry_view.xml | 2 +- 13 files changed, 24 insertions(+), 212 deletions(-) delete mode 100644 partner_industry_secondary/migrations/11.0.1.0.0/openupgrade_analysis.txt delete mode 100644 partner_industry_secondary/migrations/11.0.1.0.0/openupgrade_analysis_work.txt delete mode 100644 partner_industry_secondary/migrations/11.0.1.0.0/post-migration.py delete mode 100644 partner_industry_secondary/migrations/11.0.1.0.0/pre-migration.py create mode 100644 partner_industry_secondary/migrations/12.0.1.0.0/post-migration.py diff --git a/partner_industry_secondary/README.rst b/partner_industry_secondary/README.rst index 6f8a3a9e1..c7852e717 100644 --- a/partner_industry_secondary/README.rst +++ b/partner_industry_secondary/README.rst @@ -23,7 +23,7 @@ Partner Industry Secondary :target: https://runbot.odoo-community.org/runbot/134/11.0 :alt: Try me on Runbot -|badge1| |badge2| |badge3| |badge4| |badge5| +|badge1| |badge2| |badge3| |badge4| |badge5| This module adds secondary industries for partners. @@ -85,6 +85,7 @@ Contributors * Luis M. Ontalba * Jordi Ballester Alomar * Miquel Raïch +* Cristina Martin R. Maintainers ~~~~~~~~~~~ diff --git a/partner_industry_secondary/__manifest__.py b/partner_industry_secondary/__manifest__.py index 11dc24843..4729d7ee6 100644 --- a/partner_industry_secondary/__manifest__.py +++ b/partner_industry_secondary/__manifest__.py @@ -1,12 +1,13 @@ # Copyright 2015 Antiun Ingenieria S.L. - Javier Iniesta # Copyright 2016-2017 Tecnativa S.L. - Vicent Cubells +# Copyright 2019 Tecnativa S.L. - Cristina Martin R. # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). { "name": "Partner Industry Secondary", "summary": "Add secondary partner industries", - "version": "11.0.1.0.0", - "category": "Customer Relationship Management", + "version": "12.0.1.0.0", + "category": "Sales", "website": "https://github.com/OCA/partner-contact", "author": "Tecnativa, Odoo Community Association (OCA)", "license": "AGPL-3", diff --git a/partner_industry_secondary/i18n/partner_industry_secondary.pot b/partner_industry_secondary/i18n/partner_industry_secondary.pot index 2b84afb2e..a3c70019e 100644 --- a/partner_industry_secondary/i18n/partner_industry_secondary.pot +++ b/partner_industry_secondary/i18n/partner_industry_secondary.pot @@ -56,14 +56,10 @@ msgid "Parent" msgstr "" #. module: partner_industry_secondary -#: model:ir.model.fields,field_description:partner_industry_secondary.field_res_partner_industry_parent_left -msgid "Parent Left" +#: model:ir.model.fields,field_description:partner_industry_secondary.field_res_partner_industry_parent_path +msgid "Parent Path" msgstr "" -#. module: partner_industry_secondary -#: model:ir.model.fields,field_description:partner_industry_secondary.field_res_partner_industry_parent_right -msgid "Parent Right" -msgstr "" #. module: partner_industry_secondary #: model:ir.ui.view,arch_db:partner_industry_secondary.res_config_settings_view_form @@ -102,4 +98,3 @@ msgstr "" #: model:ir.model,name:partner_industry_secondary.model_res_config_settings msgid "res.config.settings" msgstr "" - diff --git a/partner_industry_secondary/i18n/partner_sector.pot b/partner_industry_secondary/i18n/partner_sector.pot index d830149f3..7a096d0bb 100644 --- a/partner_industry_secondary/i18n/partner_sector.pot +++ b/partner_industry_secondary/i18n/partner_sector.pot @@ -72,13 +72,8 @@ msgid "Name" msgstr "" #. module: partner_sector -#: model:ir.model.fields,field_description:partner_sector.field_res_partner_sector_parent_left -msgid "Parent Left" -msgstr "" - -#. module: partner_sector -#: model:ir.model.fields,field_description:partner_sector.field_res_partner_sector_parent_right -msgid "Parent Right" +#: model:ir.model.fields,field_description:partner_sector.field_res_partner_sector_parent_path +msgid "Parent Path" msgstr "" #. module: partner_sector @@ -117,4 +112,3 @@ msgstr "" #, python-format msgid "The main sector must be different from the secondary sectors." msgstr "" - diff --git a/partner_industry_secondary/migrations/11.0.1.0.0/openupgrade_analysis.txt b/partner_industry_secondary/migrations/11.0.1.0.0/openupgrade_analysis.txt deleted file mode 100644 index d50fcf75f..000000000 --- a/partner_industry_secondary/migrations/11.0.1.0.0/openupgrade_analysis.txt +++ /dev/null @@ -1,40 +0,0 @@ ----Fields in module 'partner_industry_secondary'--- -partner_industry_secondary / res.partner / secondary_industry_ids (many2many): NEW relation: res.partner.industry -partner_industry_secondary / res.partner.industry / child_ids (one2many) : NEW relation: res.partner.industry -partner_industry_secondary / res.partner.industry / name (False) : NEW required: required, mode: modify -partner_industry_secondary / res.partner.industry / parent_id (many2one) : NEW relation: res.partner.industry -partner_industry_secondary / res.partner.industry / parent_left (integer) : NEW -partner_industry_secondary / res.partner.industry / parent_right (integer) : NEW -partner_sector / res.partner / secondary_sector_ids (many2many): DEL relation: res.partner.sector -partner_sector / res.partner / sector_id (many2one) : DEL relation: res.partner.sector ----XML records in module 'partner_industry_secondary'--- -DEL ir.actions.act_window: partner_sector.res_partner_sector_action -NEW ir.model.access: partner_industry_secondary.access_res_partner_industry_group_partner_manager -NEW ir.model.access: partner_industry_secondary.access_res_partner_industry_portal -NEW ir.model.access: partner_industry_secondary.access_res_partner_industry_public -DEL ir.model.access: partner_sector.access_res_partner_sector_group_partner_manager -DEL ir.model.access: partner_sector.access_res_partner_sector_group_user -DEL ir.model.access: partner_sector.access_res_partner_sector_portal -DEL ir.model.access: partner_sector.access_res_partner_sector_public -DEL ir.ui.menu: partner_sector.menu_res_partner_sector -NEW ir.ui.view: partner_industry_secondary.res_config_settings_view_form -NEW ir.ui.view: partner_industry_secondary.res_partner_industry_view_form -NEW ir.ui.view: partner_industry_secondary.res_partner_industry_view_tree -NEW ir.ui.view: partner_industry_secondary.view_partner_form_industry -NEW ir.ui.view: partner_industry_secondary.view_partner_form_industry_person -NEW ir.ui.view: partner_industry_secondary.view_partner_form_industry_person0 -NEW ir.ui.view: partner_industry_secondary.view_partner_tree_industry -NEW ir.ui.view: partner_industry_secondary.view_partner_tree_industry_person -NEW ir.ui.view: partner_industry_secondary.view_res_partner_filter_industry -NEW ir.ui.view: partner_industry_secondary.view_res_partner_filter_industry_person -DEL ir.ui.view: partner_sector.res_partner_sector_tree_view -DEL ir.ui.view: partner_sector.view_general_configuration -DEL ir.ui.view: partner_sector.view_partner_form_sector -DEL ir.ui.view: partner_sector.view_partner_form_sector_person -DEL ir.ui.view: partner_sector.view_partner_tree_sector -DEL ir.ui.view: partner_sector.view_partner_tree_sector_person -DEL ir.ui.view: partner_sector.view_res_partner_filter_sector -DEL ir.ui.view: partner_sector.view_res_partner_filter_sector_person -DEL ir.ui.view: partner_sector.view_sale_config_settings -NEW res.groups: partner_industry_secondary.group_use_partner_industry_for_person -DEL res.groups: partner_sector.group_use_partner_sector_for_person diff --git a/partner_industry_secondary/migrations/11.0.1.0.0/openupgrade_analysis_work.txt b/partner_industry_secondary/migrations/11.0.1.0.0/openupgrade_analysis_work.txt deleted file mode 100644 index e708d835b..000000000 --- a/partner_industry_secondary/migrations/11.0.1.0.0/openupgrade_analysis_work.txt +++ /dev/null @@ -1,55 +0,0 @@ ----Fields in module 'partner_industry_secondary'--- -partner_industry_secondary / res.partner.industry / child_ids (one2many) : NEW relation: res.partner.industry -# nothing to do - -partner_industry_secondary / res.partner.industry / name (False) : NEW required: required, mode: modify -partner_industry_secondary / res.partner.industry / parent_id (many2one) : NEW relation: res.partner.industry -# fill this table with old res_partner_sector table - -partner_industry_secondary / res.partner.industry / parent_left (integer) : NEW -partner_industry_secondary / res.partner.industry / parent_right (integer) : NEW -# recompute - ----Fields in module 'res_partner'--- - -partner_sector / res.partner / sector_id (many2one) : DEL relation: res.partner.sector -# DONE in pre-migration: rename - -partner_sector / res.partner / secondary_sector_ids (many2many): DEL relation: res.partner.sector -partner_industry_secondary / res.partner / secondary_industry_ids (many2many): NEW relation: res.partner.industry -# DONE in post-migration: refill new rel table with old rel table - ----XML records in module 'partner_industry_secondary'--- -DEL ir.actions.act_window: partner_sector.res_partner_sector_action -NEW ir.model.access: partner_industry_secondary.access_res_partner_industry_group_partner_manager -NEW ir.model.access: partner_industry_secondary.access_res_partner_industry_portal -NEW ir.model.access: partner_industry_secondary.access_res_partner_industry_public -DEL ir.model.access: partner_sector.access_res_partner_sector_group_partner_manager -DEL ir.model.access: partner_sector.access_res_partner_sector_group_user -DEL ir.model.access: partner_sector.access_res_partner_sector_portal -DEL ir.model.access: partner_sector.access_res_partner_sector_public -DEL ir.ui.menu: partner_sector.menu_res_partner_sector -NEW ir.ui.view: partner_industry_secondary.res_config_settings_view_form -NEW ir.ui.view: partner_industry_secondary.res_partner_industry_view_form -NEW ir.ui.view: partner_industry_secondary.res_partner_industry_view_tree -NEW ir.ui.view: partner_industry_secondary.view_partner_form_industry -NEW ir.ui.view: partner_industry_secondary.view_partner_form_industry_person -NEW ir.ui.view: partner_industry_secondary.view_partner_form_industry_person0 -NEW ir.ui.view: partner_industry_secondary.view_partner_tree_industry -NEW ir.ui.view: partner_industry_secondary.view_partner_tree_industry_person -NEW ir.ui.view: partner_industry_secondary.view_res_partner_filter_industry -NEW ir.ui.view: partner_industry_secondary.view_res_partner_filter_industry_person -DEL ir.ui.view: partner_sector.res_partner_sector_tree_view -DEL ir.ui.view: partner_sector.view_general_configuration -DEL ir.ui.view: partner_sector.view_partner_form_sector -DEL ir.ui.view: partner_sector.view_partner_form_sector_person -DEL ir.ui.view: partner_sector.view_partner_tree_sector -DEL ir.ui.view: partner_sector.view_partner_tree_sector_person -DEL ir.ui.view: partner_sector.view_res_partner_filter_sector -DEL ir.ui.view: partner_sector.view_res_partner_filter_sector_person -DEL ir.ui.view: partner_sector.view_sale_config_settings -# NOTHING TO DO - -NEW res.groups: partner_industry_secondary.group_use_partner_industry_for_person -DEL res.groups: partner_sector.group_use_partner_sector_for_person -# DONE in pre-migration: rename of xmlids \ No newline at end of file diff --git a/partner_industry_secondary/migrations/11.0.1.0.0/post-migration.py b/partner_industry_secondary/migrations/11.0.1.0.0/post-migration.py deleted file mode 100644 index 304132ddd..000000000 --- a/partner_industry_secondary/migrations/11.0.1.0.0/post-migration.py +++ /dev/null @@ -1,67 +0,0 @@ -# Copyright 2018 Eficent Business and IT Consulting Services, S.L. -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from openupgradelib import openupgrade -from psycopg2.extensions import AsIs - - -def fill_res_partner_industry(cr): - cr.execute( - """ - INSERT INTO res_partner_industry (name, active, create_uid, - create_date, write_uid, write_date, %s) - SELECT name, TRUE as active, create_uid, create_date, write_uid, - write_date, id - FROM res_partner_sector - """, (AsIs(openupgrade.get_legacy_name('old_sector_id')), ), - ) - # corrected parent_id here: - cr.execute( - """ - UPDATE res_partner_industry rpi - SET parent_id = rpi2.id - FROM res_partner_sector rps - INNER JOIN res_partner_industry rpi2 ON rps.parent_id = rpi2.%s - WHERE rpi.%s = rps.id - """, ( - AsIs(openupgrade.get_legacy_name('old_sector_id')), - AsIs(openupgrade.get_legacy_name('old_sector_id')), - ), - ) - - -def update_res_partner_industry(cr): - cr.execute( - """ - UPDATE res_partner rp - SET industry_id = rpi.id - FROM res_partner_industry rpi - WHERE rp.%s IS NOT NULL AND rp.%s = rpi.%s - """, ( - AsIs(openupgrade.get_legacy_name('sector_id')), - AsIs(openupgrade.get_legacy_name('sector_id')), - AsIs(openupgrade.get_legacy_name('old_sector_id')), - ), - ) - - -def fill_res_partner_industry_secondary(cr): - cr.execute( - """ - INSERT INTO res_partner_res_partner_industry_rel (res_partner_id, - res_partner_industry_id) - SELECT rel.res_partner_id, rpi.id - FROM res_partner_res_partner_sector_rel rel - LEFT JOIN res_partner_industry rpi - ON rel.res_partner_sector_id = rpi.%s - """, (AsIs(openupgrade.get_legacy_name('old_sector_id')), ), - ) - - -@openupgrade.migrate(use_env=True) -def migrate(env, version): - cr = env.cr - if openupgrade.table_exists(cr, 'res_partner_sector'): - fill_res_partner_industry(cr) - env['res.partner.industry']._parent_store_compute() - update_res_partner_industry(cr) - fill_res_partner_industry_secondary(cr) diff --git a/partner_industry_secondary/migrations/11.0.1.0.0/pre-migration.py b/partner_industry_secondary/migrations/11.0.1.0.0/pre-migration.py deleted file mode 100644 index bd105b53a..000000000 --- a/partner_industry_secondary/migrations/11.0.1.0.0/pre-migration.py +++ /dev/null @@ -1,27 +0,0 @@ -# Copyright 2018 Eficent Business and IT Consulting Services, S.L. -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). -from openupgradelib import openupgrade -from psycopg2.extensions import AsIs - -_column_renames = { - 'res_partner': [('sector_id', None)], -} - -_xmlid_renames = [ - ('partner_sector.group_use_partner_sector_for_person', - 'partner_industry_secondary.group_use_partner_industry_for_person'), -] - - -@openupgrade.migrate(use_env=True) -def migrate(env, version): - cr = env.cr - if openupgrade.table_exists(cr, 'res_partner_sector'): - openupgrade.rename_columns(cr, _column_renames) - openupgrade.rename_xmlids(cr, _xmlid_renames) - cr.execute( - """ - ALTER TABLE res_partner_industry - ADD COLUMN %s integer; - """, (AsIs(openupgrade.get_legacy_name('old_sector_id')), ), - ) diff --git a/partner_industry_secondary/migrations/12.0.1.0.0/post-migration.py b/partner_industry_secondary/migrations/12.0.1.0.0/post-migration.py new file mode 100644 index 000000000..54ad449fa --- /dev/null +++ b/partner_industry_secondary/migrations/12.0.1.0.0/post-migration.py @@ -0,0 +1,9 @@ +# Copyright 2019 Tecnativa - Cristina Martin R. +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from openupgradelib import openupgrade + + +@openupgrade.migrate(use_env=True) +def migrate(env, version): + env['res.partner.industry']._parent_store_compute() diff --git a/partner_industry_secondary/models/res_partner.py b/partner_industry_secondary/models/res_partner.py index 1cd0e786b..ec3334a9b 100644 --- a/partner_industry_secondary/models/res_partner.py +++ b/partner_industry_secondary/models/res_partner.py @@ -18,6 +18,6 @@ class ResPartner(models.Model): @api.constrains('industry_id', 'secondary_industry_ids') def _check_industries(self): if self.industry_id in self.secondary_industry_ids: - raise exceptions.UserError( + raise exceptions.ValidationError( _('The main industry must be different ' 'from the secondary industries.')) diff --git a/partner_industry_secondary/models/res_partner_industry.py b/partner_industry_secondary/models/res_partner_industry.py index 26c5a953d..5e63aa964 100644 --- a/partner_industry_secondary/models/res_partner_industry.py +++ b/partner_industry_secondary/models/res_partner_industry.py @@ -2,6 +2,7 @@ # Copyright 2016 Tecnativa S.L. - Vicent Cubells # Copyright 2016 Tecnativa S.L. - Pedro M. Baeza # Copyright 2018 Eficent Business and IT Consulting Services, S.L. +# Copyright 2019 Tecnativa - Cristina Martin R. # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). from odoo import api, exceptions, fields, models, _ @@ -9,7 +10,7 @@ from odoo import api, exceptions, fields, models, _ class ResPartnerIndustry(models.Model): _inherit = 'res.partner.industry' - _order = "parent_left" + _order = "parent_path" _parent_order = "name" _parent_store = True @@ -19,8 +20,7 @@ class ResPartnerIndustry(models.Model): child_ids = fields.One2many(comodel_name='res.partner.industry', inverse_name='parent_id', string="Children") - parent_left = fields.Integer('Parent Left', index=True) - parent_right = fields.Integer('Parent Right', index=True) + parent_path = fields.Char(index=True) @api.multi def name_get(self): diff --git a/partner_industry_secondary/readme/CONTRIBUTORS.rst b/partner_industry_secondary/readme/CONTRIBUTORS.rst index 5f6af82be..b9e3b9b76 100644 --- a/partner_industry_secondary/readme/CONTRIBUTORS.rst +++ b/partner_industry_secondary/readme/CONTRIBUTORS.rst @@ -6,3 +6,4 @@ * Luis M. Ontalba * Jordi Ballester Alomar * Miquel Raïch +* Cristina Martin R. diff --git a/partner_industry_secondary/views/res_partner_industry_view.xml b/partner_industry_secondary/views/res_partner_industry_view.xml index 26c2a7878..db5e4027c 100644 --- a/partner_industry_secondary/views/res_partner_industry_view.xml +++ b/partner_industry_secondary/views/res_partner_industry_view.xml @@ -1,5 +1,5 @@ -