diff --git a/docsource/modules160-170.rst b/docsource/modules160-170.rst index e2cb80aab102..3d9dc1197177 100644 --- a/docsource/modules160-170.rst +++ b/docsource/modules160-170.rst @@ -128,7 +128,7 @@ Module coverage 16.0 -> 17.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | digest | Done | | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| event | | | +| event | Done | | +---------------------------------------------------+----------------------+-------------------------------------------------+ | event_booth | | | +---------------------------------------------------+----------------------+-------------------------------------------------+ diff --git a/openupgrade_scripts/scripts/event/17.0.1.8/post-migration.py b/openupgrade_scripts/scripts/event/17.0.1.8/post-migration.py new file mode 100644 index 000000000000..2ed14075967e --- /dev/null +++ b/openupgrade_scripts/scripts/event/17.0.1.8/post-migration.py @@ -0,0 +1,17 @@ +# Copyright 2024 Tecnativa - Víctor Martínez +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +from openupgradelib import openupgrade + +_deleted_xml_records = [ + "event.event_type_data_conference", + "event.event_type_data_ticket", +] + + +@openupgrade.migrate() +def migrate(env, version): + openupgrade.load_data(env, "event", "17.0.1.8/noupdate_changes.xml") + openupgrade.delete_records_safely_by_xml_id( + env, + _deleted_xml_records, + ) diff --git a/openupgrade_scripts/scripts/event/17.0.1.8/pre-migration.py b/openupgrade_scripts/scripts/event/17.0.1.8/pre-migration.py new file mode 100644 index 000000000000..20fe51e3eebb --- /dev/null +++ b/openupgrade_scripts/scripts/event/17.0.1.8/pre-migration.py @@ -0,0 +1,37 @@ +# Copyright 2024 Tecnativa - Víctor Martínez +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +from openupgradelib import openupgrade + + +def _fill_event_registration_company_name(env): + openupgrade.logged_query( + env.cr, + """ + ALTER TABLE event_registration + ADD COLUMN IF NOT EXISTS company_name VARCHAR + """, + ) + openupgrade.logged_query( + env.cr, + """UPDATE event_registration AS r + SET company_name = p.company_name + FROM res_partner AS p + WHERE r.partner_id IS NOT NULL + AND p.type = 'contact' + AND p.company_name IS NOT NULL;""", + ) + openupgrade.logged_query( + env.cr, + """UPDATE event_registration AS r + SET company_name = p2.company_name + FROM res_partner AS p + JOIN res_partner AS p2 ON (p2.parent_id = p.id AND p2.type = 'contact') + WHERE r.partner_id IS NOT NULL + AND p2.company_name IS NOT NULL + AND r.company_name IS NULL;""", + ) + + +@openupgrade.migrate() +def migrate(env, version): + _fill_event_registration_company_name(env) diff --git a/openupgrade_scripts/scripts/event/17.0.1.8/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/event/17.0.1.8/upgrade_analysis_work.txt new file mode 100644 index 000000000000..a8a54a4739b7 --- /dev/null +++ b/openupgrade_scripts/scripts/event/17.0.1.8/upgrade_analysis_work.txt @@ -0,0 +1,67 @@ +---Models in module 'event'--- +---Fields in module 'event'--- +event / event.event / _order : _order is now 'date_begin, id' ('date_begin') +event / event.event / activity_user_id (many2one) : not related anymore +event / event.event / activity_user_id (many2one) : now a function +# NOTHING TO DO +event / event.event / auto_confirm (boolean) : DEL +# NOTHING TO DO: Attendees are now created confirmed (state=open) +event / event.event / badge_format (selection) : NEW required, selection_keys: ['A4_french_fold', 'A6', 'four_per_sheet'], hasdefault: default +event / event.event / badge_image (binary) : NEW attachment: True +# NOTHING TO DO +event / event.event / lang (selection) : NEW selection_keys: function +# NOTHING TO DO: It is not required, it can be empty, we do not set the value of the old records +event / event.event / message_main_attachment_id (many2one): DEL relation: ir.attachment +event / event.event / rating_ids (one2many) : NEW relation: rating.rating +event / event.event / registration_properties_definition (properties_definition): NEW +# NOTHING TO DO +event / event.event.ticket / _order : _order is now 'event_id, sequence, name, id' ('id') +event / event.event.ticket / color (char) : NEW hasdefault: default +event / event.event.ticket / sequence (integer) : NEW hasdefault: default +# NOTHING TO DO +event / event.registration / activity_user_id (many2one) : not related anymore +event / event.registration / activity_user_id (many2one) : now a function +# NOTHING TO DO +event / event.registration / barcode (char) : NEW +# NOTHING TO DO: There is no correct way to do it in postgres, we let the ORM set the value of the old records +event / event.registration / company_name (char) : NEW hasdefault: compute +# DONE: Define the value of existing records in pre-migration +event / event.registration / message_main_attachment_id (many2one): DEL relation: ir.attachment +event / event.registration / mobile (char) : DEL +event / event.registration / rating_ids (one2many) : NEW relation: rating.rating +event / event.registration / registration_properties (properties): NEW hasdefault: compute +# NOTHING TO DO +event / event.type / auto_confirm (boolean) : DEL +# NOTHING TO DO: Explained in auto_confirm field of event.event +event / event.type.ticket / _order : _order is now 'sequence, name, id' ('id') +event / event.type.ticket / sequence (integer) : NEW hasdefault: default +# NOTHING TO DO +---XML records in module 'event'--- +DEL event.type: event.event_type_data_conference (noupdate) +DEL event.type: event.event_type_data_ticket (noupdate) +# DONE: removed in post-migration +NEW ir.actions.client: event.event_barcode_action_main_view +NEW ir.actions.report: event.action_report_event_event_attendee_list +NEW ir.actions.report: event.action_report_event_event_badge +NEW ir.actions.report: event.action_report_event_registration_attendee_list +NEW ir.actions.report: event.action_report_event_registration_badge +NEW ir.actions.report: event.action_report_event_registration_responsive_html_ticket +DEL ir.actions.report: event.action_report_event_event_foldable_badge +DEL ir.actions.report: event.action_report_event_registration_foldable_badge +NEW ir.model.constraint: event.constraint_event_registration_barcode_event_uniq +NEW ir.ui.menu: event.menu_event_registration_desk +NEW ir.ui.view: event.attendee_list +NEW ir.ui.view: event.event_event_attendee_list +NEW ir.ui.view: event.event_event_report_template_badge +NEW ir.ui.view: event.event_event_view_activity +NEW ir.ui.view: event.event_registration_attendee_list +NEW ir.ui.view: event.event_registration_report_template_badge +NEW ir.ui.view: event.event_registration_report_template_responsive_html_ticket +NEW ir.ui.view: event.event_report_template_a6_badge +NEW ir.ui.view: event.event_report_template_badge_card +NEW ir.ui.view: event.event_report_template_four_per_sheet_badge +DEL ir.ui.view: event.event_event_report_template_foldable_badge +DEL ir.ui.view: event.event_registration_report_template_foldable_badge +NEW report.paperformat: event.paperformat_event_badge +DEL report.paperformat: event.paperformat_event_foldable_badge +# NOTHING TO DO