Skip to content

Commit

Permalink
Merge pull request #3751 from Tecnativa/15.0-ou_add-website_event_track
Browse files Browse the repository at this point in the history
[15.0][OU-ADD] website_event_track: Migration scripts
  • Loading branch information
pedrobaeza authored Mar 7, 2023
2 parents c95433d + 421677f commit 7c19b09
Show file tree
Hide file tree
Showing 3 changed files with 283 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
# Copyright 2023 Tecnativa - Pedro M. Baeza
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from openupgradelib import openupgrade


def _check_sponsors(env):
"""If any sponsor found, mark website_event_exhibitor module to be installed, as
this is the new host for such model. Also renamed XML-IDs for commodity.
"""
if openupgrade.logged_query(env.cr, "SELECT id FROM event_sponsor LIMIT 1"):
openupgrade.logged_query(
env.cr,
"UPDATE ir_module_module SET state='to install' "
"WHERE name='website_event_exhibitor'",
)
openupgrade.rename_xmlids(
env.cr,
[
(
"website_event_track.event_sponsor_type1",
"website_event_exhibitor.event_sponsor_type1",
),
(
"website_event_track.event_sponsor_type2",
"website_event_exhibitor.event_sponsor_type2",
),
(
"website_event_track.event_sponsor_type3",
"website_event_exhibitor.event_sponsor_type3",
),
(
"website_event_track.event_sponsor_action_from_event",
"website_event_exhibitor.event_sponsor_action_from_event",
),
(
"website_event_track.event_sponsor_type_action",
"website_event_exhibitor.event_sponsor_type_action",
),
(
"website_event_track.menu_event_sponsor_type",
"website_event_exhibitor.menu_event_sponsor_type",
),
(
"website_event_track.event_sponsor",
"website_event_exhibitor.event_sponsor",
),
(
"website_event_track.event_sponsor_type_view_form",
"website_event_exhibitor.event_sponsor_type_view_form",
),
(
"website_event_track.event_sponsor_type_view_tree",
"website_event_exhibitor.event_sponsor_type_view_tree",
),
(
"website_event_track.event_sponsor_view_form",
"website_event_exhibitor.event_sponsor_view_form",
),
(
"website_event_track.event_sponsor_view_kanban",
"website_event_exhibitor.event_sponsor_view_kanban",
),
(
"website_event_track.event_sponsor_view_search",
"website_event_exhibitor.event_sponsor_view_search",
),
(
"website_event_track.event_sponsor_view_tree",
"website_event_exhibitor.event_sponsor_view_tree",
),
],
)
else:
openupgrade.delete_records_safely_by_xml_id(
env.cr,
[
"website_event_track.event_sponsor_type1",
"website_event_track.event_sponsor_type2",
"website_event_track.event_sponsor_type3",
],
)


@openupgrade.migrate()
def migrate(env, version):
_check_sponsors(env)
openupgrade.load_data(
env.cr, "website_event_track", "15.0.1.3/noupdate_changes.xml"
)
openupgrade.delete_record_translations(
env.cr, "website_event_track", ["mail_template_data_track_confirmation"]
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Copyright 2023 Tecnativa - Pedro M. Baeza
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from openupgradelib import openupgrade


@openupgrade.migrate()
def migrate(env, version):
openupgrade.add_fields(
env,
[
(
"contact_email",
"event.track",
"event_track",
"char",
"False",
"website_event_track",
),
(
"contact_phone",
"event.track",
"event_track",
"char",
"False",
"website_event_track",
),
],
)
openupgrade.loggued_query(
env.cr,
"""UPDATE event_track et
SET contact_email = rp.email, contact_phone = rp.phone
FROM res_partner rp
WHERE rp.id = et.partner_id
AND rp.email IS NOT NULL OR rp.phone IS NOT NULL""",
)
openupgrade.rename_fields(
env,
[
(
"event.track.stage",
"event_track_stage",
"is_accepted",
"is_visible_in_agenda",
)
],
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
---Models in module 'website_event_track'---
model event.sponsor (moved to website_event_exhibitor)
model event.sponsor.type (moved to website_event_exhibitor)
---Fields in module 'website_event_track'---
website_event_track / event.event / sponsor_count (integer) : module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.event / sponsor_ids (one2many) : module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / __last_update (datetime) : module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / _order : module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / active (boolean) : module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / activity_date_deadline (date) : module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / activity_exception_decoration (selection): module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / activity_exception_icon (char): module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / activity_ids (one2many) : module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / activity_state (selection) : module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / activity_summary (char) : module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / activity_type_icon (char) : module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / activity_type_id (many2one) : module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / activity_user_id (many2one) : module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / display_name (char) : module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / email (char) : module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / event_id (many2one) : module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / image_128 (binary) : module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / image_256 (binary) : module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / image_512 (binary) : module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / message_attachment_count (integer): module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / message_follower_ids (one2many): module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / message_has_error (boolean) : module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / message_has_error_counter (integer): module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / message_has_sms_error (boolean): module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / message_ids (one2many) : module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / message_is_follower (boolean) : module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / message_main_attachment_id (many2one): module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / message_needaction (boolean) : module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / message_needaction_counter (integer): module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / message_partner_ids (many2many): module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / message_unread (boolean) : module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / message_unread_counter (integer): module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / mobile (char) : module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / my_activity_date_deadline (date): module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / name (char) : module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / partner_email (char) : module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / partner_id (many2one) : module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / partner_mobile (char) : module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / partner_name (char) : module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / partner_phone (char) : module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / phone (char) : module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / sequence (integer) : module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / sponsor_type_id (many2one) : module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / url (char) : module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / website_image_url (char) : module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor / website_message_ids (one2many): module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor.type / __last_update (datetime) : module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor.type / _order : module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor.type / display_name (char) : module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor.type / display_ribbon_style (selection): module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor.type / name (char) : module is now 'website_event_exhibitor' ('website_event_track')
website_event_track / event.sponsor.type / sequence (integer) : module is now 'website_event_exhibitor' ('website_event_track')
# DONE: post-migration. If any data found, mark website_event_exhibitor to install

website_event_track / event.track / contact_email (char) : NEW hasdefault: compute
website_event_track / event.track / contact_phone (char) : NEW hasdefault: compute
# DONE: pre-migration. Add columns to avoid the computation and do it manually through SQL

website_event_track / event.track / kanban_state_label (char) : NEW isfunction: function, stored
website_event_track / event.track.stage / legend_blocked (char) : NEW hasdefault: default
website_event_track / event.track.stage / legend_done (char) : NEW hasdefault: default
website_event_track / event.track.stage / legend_normal (char) : NEW hasdefault: default
# NOTHING TO DO. Let the ORM to do the defaults + compute

website_event_track / event.track / partner_company_name (char) : is now stored
website_event_track / event.track / partner_company_name (char) : not related anymore
# NOTHING TO DO: It exists already

website_event_track / event.track / partner_function (char) : is now stored
website_event_track / event.track / partner_function (char) : not related anymore
# NOTHING TO DO: It exists already

website_event_track / event.track.stage / description (text) : NEW
# NOTHING TO DO: New informative text that can be empty

website_event_track / event.track.stage / is_accepted (boolean) : DEL
website_event_track / event.track.stage / is_visible_in_agenda (boolean): NEW isfunction: function, stored
# DONE: pre-migration. Rename the column to get the same effect

website_event_track / event.track.stage / is_done (boolean) : DEL
# NOTHING TO DO: It served for publishing tracks, but the result is already done in event.track.is_published

website_event_track / event.track.stage / is_fully_accessible (boolean) : NEW isfunction: function, stored
# NOTHING TO DO: Let the ORM to compute this field

website_event_track / website.event.menu / menu_type (False) : selection_keys is now '['booth', 'community', 'exhibitor', 'introduction', 'location', 'meeting_room', 'register', 'track', 'track_proposal']' ('['community', 'meeting_room', 'track', 'track_proposal']')
# NOTHING TO DO: New values added

---XML records in module 'website_event_track'---
DEL event.sponsor.type: website_event_track.event_sponsor_type1 [renamed to website_event_exhibitor module] (noupdate)
DEL event.sponsor.type: website_event_track.event_sponsor_type2 [renamed to website_event_exhibitor module] (noupdate)
DEL event.sponsor.type: website_event_track.event_sponsor_type3 [renamed to website_event_exhibitor module] (noupdate)
DEL ir.actions.act_window: website_event_track.event_sponsor_action_from_event [renamed to website_event_exhibitor module]
DEL ir.actions.act_window: website_event_track.event_sponsor_type_action [renamed to website_event_exhibitor module]
DEL ir.ui.menu: website_event_track.menu_event_sponsor_type [renamed to website_event_exhibitor module]
DEL ir.ui.view: website_event_track.event_sponsor
DEL ir.ui.view: website_event_track.event_sponsor_type_view_form
DEL ir.ui.view: website_event_track.event_sponsor_type_view_tree
DEL ir.ui.view: website_event_track.event_sponsor_view_form
DEL ir.ui.view: website_event_track.event_sponsor_view_kanban
DEL ir.ui.view: website_event_track.event_sponsor_view_search
DEL ir.ui.view: website_event_track.event_sponsor_view_tree
# DONE: post-migration. Renamed XML-IDs if website_event_exhibitor should be installed. Remove noupdate=1 record otherwise

NEW ir.model.access: website_event_track.access_event_track
NEW ir.model.access: website_event_track.access_event_track_location
NEW ir.model.access: website_event_track.access_event_track_location_user
NEW ir.model.access: website_event_track.access_event_track_stage
NEW ir.model.access: website_event_track.access_event_track_stage_manager
NEW ir.model.access: website_event_track.access_event_track_tag
NEW ir.model.access: website_event_track.access_event_track_tag_category
NEW ir.model.access: website_event_track.access_event_track_tag_category_user
NEW ir.model.access: website_event_track.access_event_track_user
NEW ir.model.access: website_event_track.access_event_track_visitor
NEW ir.model.access: website_event_track.access_event_track_visitor_manager
DEL ir.model.access: website_event_track.access_event_track__public
DEL ir.model.access: website_event_track.access_event_track_location_public
DEL ir.model.access: website_event_track.access_event_track_sponsor_manager
DEL ir.model.access: website_event_track.access_event_track_sponsor_public
DEL ir.model.access: website_event_track.access_event_track_sponsor_type_manager
DEL ir.model.access: website_event_track.access_event_track_sponsor_type_public
DEL ir.model.access: website_event_track.access_event_track_stage_all
DEL ir.model.access: website_event_track.access_event_track_stage_event_manager
DEL ir.model.access: website_event_track.access_event_track_tag_public
DEL ir.model.access: website_event_track.event_track_tag_category_access_manager
DEL ir.model.access: website_event_track.event_track_tag_category_access_public
DEL ir.model.access: website_event_track.event_track_visitor_access_all
DEL ir.model.access: website_event_track.event_track_visitor_access_manager
NEW ir.ui.view: website_event_track.event_track_proposal_contact_details
NEW ir.ui.view: website_event_track.track_card
NEW ir.ui.view: website_event_track.track_cards_section
DEL ir.ui.view: website_event_track.assets_frontend
DEL ir.ui.view: website_event_track.event_layout
DEL ir.ui.view: website_event_track.event_track_proposal_success
DEL ir.ui.view: website_event_track.tracks_cards_track
DEL ir.ui.view: website_event_track.website_visitor_view_kanban
# NOTHING TO DO: noupdate=0 data

0 comments on commit 7c19b09

Please sign in to comment.