diff --git a/addons/website_event_track/migrations/9.0.1.0/openupgrade_analysis_work.txt b/addons/website_event_track/migrations/9.0.1.0/openupgrade_analysis_work.txt new file mode 100644 index 000000000000..9894552b1500 --- /dev/null +++ b/addons/website_event_track/migrations/9.0.1.0/openupgrade_analysis_work.txt @@ -0,0 +1,68 @@ +---Fields in module 'website_event_track'--- +website_event_track / event.track / message_follower_ids (many2many): not a function anymore +website_event_track / event.track / message_follower_ids (many2many): relation is now 'mail.followers' ('res.partner') +website_event_track / event.track / message_follower_ids (many2many): type is now 'one2many' ('many2many') +# Nothing to do: Handled in mail module + +website_event_track / event.event / show_track_proposal (boolean) : now a function +website_event_track / event.event / show_tracks (boolean) : now a function +# Nothing to do: Stored computed fields + +website_event_track / event.event / tag_ids (many2many) : DEL relation: event.tag +# Nothing to do: it remains stored in case of later need + +website_event_track / event.event / tracks_tag_ids (one2many) : type is now 'many2many' ('one2many') +# Nothing to do: Computed field + +website_event_track / event.event / timezone_of_event (selection) : DEL selection_keys: function +# Done: copy this timezone to date_tz if it's empty + +website_event_track / event.sponsor / sequence (float) : type is now 'integer' ('float') +# Done: converted type + +website_event_track / event.sponsor / url (text) : type is now 'char' ('text') +# Nothing to do: Auto-converted by ORM + +website_event_track / event.track / image (binary) : now a function +# Nothing to do: It's still a related field + +website_event_track / event.track / partner_biography (html) : NEW +website_event_track / event.track / partner_email (char) : NEW +website_event_track / event.track / partner_id (many2one) : NEW relation: res.partner +website_event_track / event.track / partner_name (char) : NEW +website_event_track / event.track / partner_phone (char) : NEW +# Nothing to do: Info not present nor required + +website_event_track / event.track / stage_id (many2one) : DEL relation: event.track.stage +website_event_track / event.track / state (selection) : NEW required: required, selection_keys: ['announced', 'cancel', 'confirmed', 'draft', 'published', 'refused'], req_default: draft +DEL event.track.stage: website_event_track.event_track_stage1 +DEL event.track.stage: website_event_track.event_track_stage2 +DEL event.track.stage: website_event_track.event_track_stage3 +DEL event.track.stage: website_event_track.event_track_stage4 +DEL event.track.stage: website_event_track.event_track_stage5 +# Done: Convert stage into status when possible + +website_event_track / event.track.tag / track_ids (many2many) : NEW relation: event.track +# Nothing to do: Inverse of event.track.tag_ids + +---XML records in module 'website_event_track'--- +NEW ir.actions.act_window: website_event_track.action_event_sponsor_from_event +NEW ir.actions.act_window: website_event_track.action_event_track_from_event +DEL ir.actions.act_window: website_event_track.act_event_list_tracks +DEL ir.actions.act_window: website_event_track.action_event_tag +DEL ir.actions.act_window: website_event_track.action_event_track_stage +DEL ir.model.access: website_event_track.access_event_tag_manager +DEL ir.model.access: website_event_track.access_event_tag_public +DEL ir.model.access: website_event_track.access_event_track_stage_manager +DEL ir.model.access: website_event_track.access_event_track_stage_public +DEL ir.ui.menu: website_event_track.menu_event_tag +DEL ir.ui.menu: website_event_track.menu_event_track_stage +NEW ir.ui.view: website_event_track.view_event_sponsor_search +NEW ir.ui.view: website_event_track.view_event_sponsor_tree +DEL ir.ui.view: website_event_track.view_event_tag_form +DEL ir.ui.view: website_event_track.view_event_tag_tree +DEL ir.ui.view: website_event_track.view_event_track_stage_form +DEL ir.ui.view: website_event_track.view_event_track_stage_tree +NEW mail.message.subtype: website_event_track.mt_event_track +NEW web.tip: website_event_track.event_track_tip_1 +# Nothing to do diff --git a/addons/website_event_track/migrations/9.0.1.0/post-migration.py b/addons/website_event_track/migrations/9.0.1.0/post-migration.py new file mode 100644 index 000000000000..b6209e720916 --- /dev/null +++ b/addons/website_event_track/migrations/9.0.1.0/post-migration.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- +# Copyright 2017 Tecnativa - Pedro M. Baeza +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from openupgradelib import openupgrade + + +def copy_timezone_event_track(env): + openupgrade.logged_query( + env.cr, + """ + UPDATE event_event + SET date_tz = {} + WHERE date_tz is NULL + """.format(openupgrade.get_legacy_name('timezone_of_event')) + ) + + +def convert_track_stage(env): + data_obj = env['ir.model.data'] + stage_state_mapping = [ + # website_event_track.event_track_stage1 is the default draft state + (data_obj.xmlid_to_res_id('website_event_track.event_track_stage2'), + 'confirmed'), + (data_obj.xmlid_to_res_id('website_event_track.event_track_stage3'), + 'published'), + (data_obj.xmlid_to_res_id('website_event_track.event_track_stage4'), + 'announced'), + # There's no exact equivalent to this stage (Completed) + (data_obj.xmlid_to_res_id('website_event_track.event_track_stage5'), + 'announced'), + ] + openupgrade.map_values( + env.cr, openupgrade.get_legacy_name('stage_id'), 'state', + stage_state_mapping, table='event_track', + ) + + +@openupgrade.migrate(use_env=True) +def migrate(env, version): + copy_timezone_event_track(env) + convert_track_stage(env) diff --git a/addons/website_event_track/migrations/9.0.1.0/pre-migration.py b/addons/website_event_track/migrations/9.0.1.0/pre-migration.py new file mode 100644 index 000000000000..5d7698db7823 --- /dev/null +++ b/addons/website_event_track/migrations/9.0.1.0/pre-migration.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Copyright 2017 Tecnativa - Pedro M. Baeza +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from openupgradelib import openupgrade + +column_renames = { + 'event_event': [ + ('timezone_of_event', None), + ], + 'event_track': [ + ('stage_id', None), + ] +} + + +@openupgrade.migrate() +def migrate(cr, version): + openupgrade.rename_columns(cr, column_renames) + openupgrade.float_to_integer(cr, 'event_sponsor', 'sequence') diff --git a/addons/website_event_track/migrations/9.0.1.0/tests/test_website_event_track.py b/addons/website_event_track/migrations/9.0.1.0/tests/test_website_event_track.py new file mode 100644 index 000000000000..eaade9af0bbd --- /dev/null +++ b/addons/website_event_track/migrations/9.0.1.0/tests/test_website_event_track.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# Copyright 2017 Tecnativa - Pedro M. Baeza +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from openerp.tests import common + + +class TestWebsiteEventTrack(common.SavepointCase): + def test_website_event_track_migration(self): + track = self.env.ref('website_event_track.event_track27') + self.assertEqual(track.state, 'confirmed') diff --git a/openerp/openupgrade/doc/source/modules80-90.rst b/openerp/openupgrade/doc/source/modules80-90.rst index 313ca70098d0..6683de92552a 100644 --- a/openerp/openupgrade/doc/source/modules80-90.rst +++ b/openerp/openupgrade/doc/source/modules80-90.rst @@ -478,7 +478,7 @@ Status : +-----------------------------------+-----------------------------------+ |website_event_sale | Nothing to do | +-----------------------------------+-----------------------------------+ -|website_event_track | | +|website_event_track | Done | +-----------------------------------+-----------------------------------+ |website_form | | +-----------------------------------+-----------------------------------+