diff --git a/.github/workflows/test-migration.yml b/.github/workflows/test-migration.yml index 0cb8186ad3b5..bc425add5de4 100644 --- a/.github/workflows/test-migration.yml +++ b/.github/workflows/test-migration.yml @@ -92,7 +92,6 @@ jobs: - name: Requirements Installation run: | sed -i -E "s/(gevent==)21\.8\.0( ; sys_platform != 'win32' and python_version == '3.10')/\122.10.2\2/;s/(greenlet==)1.1.2( ; sys_platform != 'win32' and python_version == '3.10')/\12.0.2\2/" odoo/requirements.txt - sed -i -E "s/(^cbor2==)5\.4\.2/\15.6.2/" odoo/requirements.txt pip install -q -r odoo/requirements.txt pip install -r ./openupgrade/requirements.txt pip install -U git+https://github.com/oca/openupgradelib diff --git a/docsource/modules180-190.rst b/docsource/modules180-190.rst index 26046b3e4238..503450ef8187 100644 --- a/docsource/modules180-190.rst +++ b/docsource/modules180-190.rst @@ -166,7 +166,7 @@ Module coverage 18.0 -> 19.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | google_recaptcha | | | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| hr | | | +| hr |Done | | +---------------------------------------------------+----------------------+-------------------------------------------------+ | hr_attendance | | | +---------------------------------------------------+----------------------+-------------------------------------------------+ @@ -818,7 +818,7 @@ Module coverage 18.0 -> 19.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | payment_xendit | | | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| phone_validation | | | +| phone_validation |Nothing to do | | +---------------------------------------------------+----------------------+-------------------------------------------------+ | point_of_sale | | | +---------------------------------------------------+----------------------+-------------------------------------------------+ @@ -980,7 +980,7 @@ Module coverage 18.0 -> 19.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | resource |Done | | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| resource_mail | | | +| resource_mail |Nothing to do | | +---------------------------------------------------+----------------------+-------------------------------------------------+ | |new| rpc | | | +---------------------------------------------------+----------------------+-------------------------------------------------+ diff --git a/openupgrade_scripts/scripts/hr/19.0.1.1/post-migration.py b/openupgrade_scripts/scripts/hr/19.0.1.1/post-migration.py new file mode 100644 index 000000000000..ff649c3f886b --- /dev/null +++ b/openupgrade_scripts/scripts/hr/19.0.1.1/post-migration.py @@ -0,0 +1,149 @@ +# Copyright 2026 Hunki Enterprises BV +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from openupgradelib import openupgrade + +from odoo.tools.mail import html2plaintext, is_html_empty + +_deleted_xmlids = [] + + +def fill_hr_version(env): + """ + Create a hr.version per hr.employee if not already created by a contract. + If hr_contract was installed, amend data resulting from renaming hr.contract to + hr.version + """ + fields = ( + "active", + "additional_note", + "address_id", + "children", + "country_id", + "company_id", + "department_id", + "departure_date", + "departure_description", + "departure_reason_id", + "distance_home_work", + "distance_home_work_unit", + "employee_type", + "sex", + "identification_id", + "is_flexible", + "is_fully_flexible", + "job_id", + "job_title", + "km_home_work", + "marital", + "name", + "passport_id", + "private_city", + "private_country_id", + "private_state_id", + "private_street", + "private_street2", + "private_zip", + "spouse_birthdate", + "spouse_complete_name", + "ssnid", + "work_location_id", + ) + link_column = openupgrade.get_legacy_name("contract_id") + env.cr.execute( + f"ALTER TABLE hr_version ADD COLUMN IF NOT EXISTS {link_column} int", + ) + env.cr.execute(f"UPDATE hr_version SET {link_column}=id") + env.cr.execute( + f""" + UPDATE hr_version + SET + {", ".join(f"{field}=hr_employee.{field}" for field in fields)} + FROM hr_employee + WHERE + hr_version.employee_id=hr_employee.id + """ + ) + env.cr.execute( + f""" + INSERT INTO hr_version + ( + employee_id, date_version, + last_modified_uid, last_modified_date, hr_responsible_id, + {", ".join(fields)} + ) + SELECT + id, create_date, + write_uid, write_date, {env.ref("base.user_admin").id}, + {", ".join(fields)} + FROM hr_employee + WHERE id NOT IN ( + SELECT employee_id FROM hr_version + ) + """ + ) + env.cr.execute( + f""" + UPDATE hr_version + SET hr_responsible_id={env.ref("base.user_admin").id} + WHERE hr_responsible_id IS NULL + """ + ) + env["hr.employee"]._cron_update_current_version_id() + + +def hr_employee_bank_account_ids(env): + """ + Fill hr.employee#bank_account_ids + """ + openupgrade.m2o_to_x2m( + env.cr, env["hr.employee"], "hr_employee", "bank_account_ids", "bank_account_id" + ) + + +def hr_employee_notes(env): + """ + Append hr.employee#note and hr.contract#note to hr.version#additional_note + """ + env.cr.execute( + """ + UPDATE + hr_version + SET + additional_note= + COALESCE(hr_version.additional_note || '\n', '') || + hr_employee.notes + FROM + hr_employee + WHERE + hr_version.employee_id=hr_employee.id + AND + hr_employee.notes IS NOT NULL + """ + ) + if openupgrade.column_exists(env.cr, "hr_version", "notes"): + # this is hr.contract#note, which is html + env.cr.execute( + "SELECT id, additional_note, notes FROM hr_version WHERE notes IS NOT NULL" + ) + for _id, additional_note, notes in env.cr.fetchall(): + if is_html_empty(notes): + continue + notes = html2plaintext(notes) + additional_note = (additional_note + "\n") if additional_note else "" + env.cr.execute( + "UPDATE hr_version SET additional_note=%s WHERE id=%s", + ( + additional_note + notes, + _id, + ), + ) + + +@openupgrade.migrate() +def migrate(env, version): + fill_hr_version(env) + hr_employee_notes(env) + hr_employee_bank_account_ids(env) + openupgrade.load_data(env, "hr", "19.0.1.1/noupdate_changes.xml") + openupgrade.delete_records_safely_by_xml_id(env, _deleted_xmlids) diff --git a/openupgrade_scripts/scripts/hr/19.0.1.1/pre-migration.py b/openupgrade_scripts/scripts/hr/19.0.1.1/pre-migration.py new file mode 100644 index 000000000000..8f23c365eb03 --- /dev/null +++ b/openupgrade_scripts/scripts/hr/19.0.1.1/pre-migration.py @@ -0,0 +1,81 @@ +# Copyright 2026 Hunki Enterprises BV +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from openupgradelib import openupgrade + +renamed_fields = [ + ("hr.employee", "hr_employee", "gender", "sex"), +] + +renamed_fields_hr_contract = [ + ("hr.contract", "hr_contract", "date_start", "contract_date_start"), + ("hr.contract", "hr_contract", "date_end", "contract_date_end"), +] + +renamed_field_references = [ + ("hr.employee", "bank_account_id", "bank_account_ids"), +] + +added_fields = [ + ( + "country_id", + "hr.departure.reason", + "hr_departure_reason", + "many2one", + None, + "hr", + ), + ("employee", "res.partner", "res_partner", "boolean", None, "hr", False), +] + +renamed_tables_hr_contract = [ + ("hr_contract", "hr_version"), +] + +renamed_models = [ + ("hr.contract", "hr.version"), +] + +renamed_xmlids = [ + ("hr.contract_type_statutaire", "hr.contract_type_statutory"), +] + +deleted_xmlids = [ + "hr.ir_cron_data_check_work_permit_validity", + "hr.ir_cron_data_contract_update_state", + "hr.ir_rule_hr_contract_employee_manager", + "hr.ir_rule_hr_contract_history_multi_company", + "hr_contract.group_hr_contract_employee_manager", + "hr_contract.group_hr_contract_manager", +] + + +def res_partner_employee(env): + """ + Compute res.partner#employee + """ + env.cr.execute( + """ + UPDATE res_partner + SET + employee=True + FROM + hr_employee + WHERE + hr_employee.work_contact_id=res_partner.id + """ + ) + + +@openupgrade.migrate() +def migrate(env, version): + openupgrade.rename_fields(env, renamed_fields) + openupgrade.rename_field_references(env, renamed_field_references) + openupgrade.add_fields(env, added_fields) + openupgrade.rename_xmlids(env.cr, renamed_xmlids) + openupgrade.delete_records_safely_by_xml_id(env, deleted_xmlids) + if openupgrade.table_exists(env.cr, "hr_contract"): + openupgrade.rename_fields(env, renamed_fields_hr_contract) + openupgrade.rename_tables(env.cr, renamed_tables_hr_contract) + openupgrade.rename_models(env.cr, renamed_models) + res_partner_employee(env) diff --git a/openupgrade_scripts/scripts/hr/19.0.1.1/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/hr/19.0.1.1/upgrade_analysis_work.txt new file mode 100644 index 000000000000..4ca77f3a118e --- /dev/null +++ b/openupgrade_scripts/scripts/hr/19.0.1.1/upgrade_analysis_work.txt @@ -0,0 +1,397 @@ +---Models in module 'hr'--- +obsolete model hr.contract (renamed to hr.version) + +# DONE: renamed in pre-migration + +obsolete model hr.contract.history [sql_view] +obsolete model hr.employee.base [abstract] + +# NOTHING TO DO + +new model hr.bank.account.allocation.wizard [transient] +new model hr.bank.account.allocation.wizard.line [transient] +new model hr.mixin [abstract] +new model hr.version (renamed from hr.contract) +new model hr.version.wizard [transient] + +# NOTHING TO DO + +---Fields in module 'hr'--- +hr / hr.department / complete_name (char) : not stored anymore + +# NOTHING TO DO + +hr / hr.departure.reason / country_id (many2one) : NEW relation: res.country, hasdefault: default + +# DONE: precreated to avoid default + +hr / hr.departure.reason / reason_code (integer) : DEL + +# NOTHING TO DO + +hr / hr.employee / _inherits : NEW _inherits: {'hr.version': 'version_id'}, stored: False +hr / hr.employee / additional_note (text) : not stored anymore +hr / hr.employee / additional_note (text) : now related +hr / hr.employee / address_id (many2one) : not stored anymore +hr / hr.employee / address_id (many2one) : now related + +# DONE: copied to hr.version in post-migration + +hr / hr.employee / bank_account_id (many2one) : DEL relation: res.partner.bank +hr / hr.employee / bank_account_ids (many2many) : NEW relation: res.partner.bank + +# DONE: filled m2m from m2o in post migration + +hr / hr.employee / birthday_public_display (boolean): NEW hasdefault: default +hr / hr.employee / certificate (selection) : selection_keys is now 'function' ('['bachelor', 'doctor', 'graduate', 'master', 'other']') + +# NOTHING TO DO + +hr / hr.employee / children (integer) : not stored anymore +hr / hr.employee / children (integer) : now related +hr / hr.employee / country_id (many2one) : not stored anymore +hr / hr.employee / country_id (many2one) : now related + +# DONE: copied to hr.version in post-migration + +hr / hr.employee / current_version_id (many2one) : NEW relation: hr.version, isfunction: function, stored + +# DONE: recomputed in post-migration + +hr / hr.employee / department_id (many2one) : not stored anymore +hr / hr.employee / department_id (many2one) : now related +hr / hr.employee / departure_date (date) : not stored anymore +hr / hr.employee / departure_date (date) : now related +hr / hr.employee / departure_description (html) : not stored anymore +hr / hr.employee / departure_description (html) : now related +hr / hr.employee / departure_reason_id (many2one): not stored anymore +hr / hr.employee / departure_reason_id (many2one): now related +hr / hr.employee / distance_home_work (integer) : not stored anymore +hr / hr.employee / distance_home_work (integer) : now related +hr / hr.employee / distance_home_work_unit (selection): not stored anymore +hr / hr.employee / distance_home_work_unit (selection): now related +hr / hr.employee / distance_home_work_unit (selection): selection_keys is now 'function' ('['kilometers', 'miles']') +hr / hr.employee / employee_type (selection) : not stored anymore +hr / hr.employee / employee_type (selection) : now related +hr / hr.employee / employee_type (selection) : selection_keys is now 'function' ('['contractor', 'employee', 'freelance', 'student', 'trainee', 'worker']') + +# DONE: copied to hr.version in post-migration + +hr / hr.employee / gender (selection) : DEL selection_keys: ['female', 'male', 'other'] + +# DONE: renamed in pre-migration + +hr / hr.employee / identification_id (char) : not stored anymore +hr / hr.employee / identification_id (char) : now related +hr / hr.employee / is_flexible (boolean) : not a function anymore +hr / hr.employee / is_flexible (boolean) : not stored anymore +hr / hr.employee / is_flexible (boolean) : now related +hr / hr.employee / is_fully_flexible (boolean) : not a function anymore +hr / hr.employee / is_fully_flexible (boolean) : not stored anymore +hr / hr.employee / is_fully_flexible (boolean) : now related +hr / hr.employee / job_id (many2one) : not stored anymore +hr / hr.employee / job_id (many2one) : now related +hr / hr.employee / job_title (char) : not stored anymore +hr / hr.employee / job_title (char) : now related +hr / hr.employee / km_home_work (integer) : not a function anymore +hr / hr.employee / km_home_work (integer) : not stored anymore +hr / hr.employee / km_home_work (integer) : now related +hr / hr.employee / marital (selection) : not stored anymore +hr / hr.employee / marital (selection) : now related + +# DONE: copied to hr.version in post-migration + +hr / hr.employee / member_of_department (boolean): not a function anymore +hr / hr.employee / member_of_department (boolean): now related + +# NOTHING TO DO: non-stored + +hr / hr.employee / mobile_phone (char) : not a function anymore + +# NOTHING TO DO + +hr / hr.employee / notes (text) : DEL + +# DONE: appended to hr.version#additional_note + +hr / hr.employee / passport_id (char) : not stored anymore +hr / hr.employee / passport_id (char) : now related +hr / hr.employee / private_city (char) : not stored anymore +hr / hr.employee / private_city (char) : now related +hr / hr.employee / private_country_id (many2one) : not stored anymore +hr / hr.employee / private_country_id (many2one) : now related +hr / hr.employee / private_state_id (many2one) : not stored anymore +hr / hr.employee / private_state_id (many2one) : now related +hr / hr.employee / private_street (char) : not stored anymore +hr / hr.employee / private_street (char) : now related +hr / hr.employee / private_street2 (char) : not stored anymore +hr / hr.employee / private_street2 (char) : now related +hr / hr.employee / private_zip (char) : not stored anymore +hr / hr.employee / private_zip (char) : now related + +# DONE: copied to hr.version in post-migration + +hr / hr.employee / resource_calendar_id (many2one): not stored anymore +hr / hr.employee / salary_distribution (json) : NEW hasdefault: compute +hr / hr.employee / sinid (char) : DEL + +# NOTHING TO DO + +hr / hr.employee / spouse_birthdate (date) : not stored anymore +hr / hr.employee / spouse_birthdate (date) : now related +hr / hr.employee / spouse_complete_name (char) : not stored anymore +hr / hr.employee / spouse_complete_name (char) : now related +hr / hr.employee / ssnid (char) : not stored anymore +hr / hr.employee / ssnid (char) : now related + +# DONE: copied to hr.version in post-migration + +hr / hr.employee / version_ids (one2many) : NEW relation: hr.version, required + +# NOTHING TO DO + +hr / hr.employee / work_location_id (many2one) : not stored anymore +hr / hr.employee / work_location_id (many2one) : now related + +# DONE: copied to hr.version in post-migration + +hr / hr.employee / work_phone (char) : now a function +hr / hr.job / allowed_user_ids (many2many) : previously in module hr_recruitment +hr / hr.job / expected_employees (integer) : not stored anymore +hr / hr.job / no_of_employee (integer) : not stored anymore +hr / hr.job / user_id (many2one) : previously in module hr_recruitment + +# NOTHING TO DO + +hr / hr.version / additional_note (text) : NEW +hr / hr.version / address_id (many2one) : NEW relation: res.partner, hasdefault: default +hr / hr.version / children (integer) : NEW + +# DONE: copied from hr_employee + +hr / hr.version / contract_date_end (date) : NEW +hr / hr.version / contract_date_start (date) : NEW + +# DONE: renamed from hr_contract.date_start + +hr / hr.version / contract_template_id (many2one): NEW relation: hr.version + +# NOTHING TO DO + +hr / hr.version / country_id (many2one) : NEW relation: res.country +hr / hr.version / date_version (date) : NEW required, hasdefault: default +hr / hr.version / departure_date (date) : NEW +hr / hr.version / departure_description (html) : NEW +hr / hr.version / departure_reason_id (many2one): NEW relation: hr.departure.reason +hr / hr.version / distance_home_work (integer) : NEW +hr / hr.version / distance_home_work_unit (selection): NEW required, selection_keys: ['kilometers', 'miles'], hasdefault: default +hr / hr.version / employee_type (selection) : NEW required, selection_keys: ['contractor', 'employee', 'freelance', 'student', 'trainee', 'worker'], hasdefault: default +hr / hr.version / identification_id (char) : NEW + +# DONE: copied from hr_employee + +hr / hr.version / is_custom_job_title (boolean) : NEW isfunction: function, stored + +# NOTHING TO DO + +hr / hr.version / is_flexible (boolean) : NEW isfunction: function, stored +hr / hr.version / is_fully_flexible (boolean) : NEW isfunction: function, stored +hr / hr.version / job_title (char) : NEW isfunction: function, stored +hr / hr.version / km_home_work (integer) : NEW isfunction: function, stored +hr / hr.version / last_modified_date (datetime) : NEW required, hasdefault: default +hr / hr.version / last_modified_uid (many2one) : NEW relation: res.users, required, hasdefault: default +hr / hr.version / marital (selection) : NEW required, selection_keys: function, hasdefault: default + +# DONE: copied from hr_employee + +hr / hr.version / passport_expiration_date (date): NEW + +# NOTHING TO DO + +hr / hr.version / passport_id (char) : NEW +hr / hr.version / private_city (char) : NEW +hr / hr.version / private_country_id (many2one) : NEW relation: res.country +hr / hr.version / private_state_id (many2one) : NEW relation: res.country.state +hr / hr.version / private_street (char) : NEW +hr / hr.version / private_street2 (char) : NEW +hr / hr.version / private_zip (char) : NEW +hr / hr.version / sex (selection) : NEW selection_keys: ['female', 'male', 'other'] +hr / hr.version / spouse_birthdate (date) : NEW +hr / hr.version / spouse_complete_name (char) : NEW +hr / hr.version / ssnid (char) : NEW +hr / hr.version / work_location_id (many2one) : NEW relation: hr.work.location + +# DONE: copied from hr_employee + +hr / res.partner / employee (False) : NEW mode: modify, hasdefault: compute + +# DONE: created and computed in pre-migration + +hr / resource.resource / department_id (many2one) : not related anymore +hr / resource.resource / department_id (many2one) : now a function +hr / resource.resource / job_title (char) : not related anymore +hr / resource.resource / job_title (char) : now a function +hr_contract / hr.contract / _order : _order is now 'date_version' ('id') + +# NOTHING TO DO + +hr_contract / hr.contract / date_end (date) : not stored anymore +hr_contract / hr.contract / date_end (date) : now a function +hr_contract / hr.contract / date_start (date) : not stored anymore +hr_contract / hr.contract / date_start (date) : now a function + +# DONE: renamed to conract_* for model rename to hr_version + +hr_contract / hr.contract / hr_responsible_id (many2one) : now required + +# DONE: set to admin if unset + +hr_contract / hr.contract / kanban_state (selection) : DEL selection_keys: ['blocked', 'done', 'normal'] +hr_contract / hr.contract / notes (html) : DEL + +# DONE: appended to hr.version#additional_note + +hr_contract / hr.contract / state (selection) : DEL selection_keys: ['cancel', 'close', 'draft', 'open'] +hr_contract / hr.employee / contract_id (many2one) : DEL relation: hr.contract +hr_contract / hr.employee / contract_ids (one2many) : DEL relation: hr.contract +hr_contract / hr.employee / contract_warning (boolean) : DEL +hr_contract / hr.employee / first_contract_date (date) : DEL +hr_contract / hr.employee / vehicle (char) : DEL + +# NOTHING TO DO + +---XML records in module 'hr'--- +NEW hr.contract.type: hr.contract_type_interim (noupdate) +NEW hr.contract.type: hr.contract_type_intern (noupdate) + +# NOTHING TO DO + +NEW hr.contract.type: hr.contract_type_statutory (noupdate) +DEL hr.contract.type: hr.contract_type_statutaire (noupdate) + +# DONE: renamed in pre-migration + +NEW hr.payroll.structure.type: hr.structure_type_employee [renamed from hr_contract module] (noupdate) +NEW hr.payroll.structure.type: hr.structure_type_employee_cp200 [renamed from hr_contract module] (noupdate) +NEW hr.payroll.structure.type: hr.structure_type_employee_cp200_pfi [renamed from hr_contract module] (noupdate) +NEW hr.payroll.structure.type: hr.structure_type_worker [renamed from hr_contract module] (noupdate) +DEL hr.payroll.structure.type: hr_contract.structure_type_employee [renamed to hr module] (noupdate) +DEL hr.payroll.structure.type: hr_contract.structure_type_employee_cp200 [renamed to hr module] (noupdate) +DEL hr.payroll.structure.type: hr_contract.structure_type_employee_cp200_pfi [renamed to hr module] (noupdate) +DEL hr.payroll.structure.type: hr_contract.structure_type_worker [renamed to hr module] (noupdate) +NEW ir.actions.act_window: hr.action_bank_account_allocation_wizard +NEW ir.actions.act_window: hr.action_create_job_position +NEW ir.actions.act_window: hr.action_hr_contract_templates +NEW ir.actions.act_window: hr.action_hr_employee_all_activities +NEW ir.actions.act_window: hr.action_hr_version +NEW ir.actions.act_window: hr.hr_version_wizard_action +DEL ir.actions.act_window: hr.hr_departure_wizard_action +DEL ir.actions.act_window: hr_contract.action_hr_contract +DEL ir.actions.act_window: hr_contract.hr_contract_history_to_review_view_list_action +DEL ir.actions.act_window: hr_contract.hr_contract_history_view_form_action +DEL ir.actions.act_window: hr_contract.hr_contract_history_view_list_action +NEW ir.actions.server: hr.action_hr_employee_create_users +NEW ir.actions.server: hr.action_hr_employee_create_users_confirmation +NEW ir.actions.server: hr.action_hr_employee_load_demo_data +NEW ir.cron: hr.ir_cron_data_employee_notify_expiring_contract_work_permit (noupdate) +NEW ir.cron: hr.ir_cron_data_employee_update_current_version (noupdate) + +# NOTHING TO DO + +DEL ir.cron: hr.ir_cron_data_check_work_permit_validity (noupdate) +DEL ir.cron: hr_contract.ir_cron_data_contract_update_state (noupdate) + +# DONE: deleted in pre-migration + +NEW ir.model.access: hr.access_hr_bank_account_allocation_wizard +NEW ir.model.access: hr.access_hr_bank_account_allocation_wizard_line +NEW ir.model.access: hr.access_hr_job_employee +NEW ir.model.access: hr.access_hr_payroll_structure_type_hr_contract_manager [renamed from hr_contract module] +NEW ir.model.access: hr.access_hr_resource_calendar_attendance_user [renamed from hr_contract module] +NEW ir.model.access: hr.access_hr_resource_calendar_user [renamed from hr_contract module] +NEW ir.model.access: hr.access_hr_resource_manager [renamed from hr_contract module] +NEW ir.model.access: hr.access_hr_version_manager +NEW ir.model.access: hr.access_hr_version_user +NEW ir.model.access: hr.access_hr_version_wizard +DEL ir.model.access: hr_contract.access_hr_contract_history_manager +DEL ir.model.access: hr_contract.access_hr_contract_hr_employee_manager +DEL ir.model.access: hr_contract.access_hr_contract_manager +DEL ir.model.access: hr_contract.access_hr_payroll_structure_type_hr_contract_manager [renamed to hr module] +DEL ir.model.access: hr_contract.access_hr_resource_calendar_attendance_user [renamed to hr module] +DEL ir.model.access: hr_contract.access_hr_resource_calendar_user [renamed to hr module] +DEL ir.model.access: hr_contract.access_hr_resource_manager [renamed to hr module] +NEW ir.model.constraint: hr.constraint_hr_version_check_contract_start_date_defined +NEW ir.model.constraint: hr.constraint_hr_version_check_unique_date_version +NEW ir.rule: hr.ir_rule_hr_contract_manager [renamed from hr_contract module] (noupdate) +NEW ir.rule: hr.ir_rule_hr_contract_multi_company [renamed from hr_contract module] (noupdate) +NEW ir.rule: hr.ir_rule_hr_departure_reason_multi_company (noupdate) +NEW ir.rule: hr.ir_rule_hr_payroll_structure_type_multi_company [renamed from hr_contract module] (noupdate) + +# NOTHING TO DO + +DEL ir.rule: hr_contract.ir_rule_hr_contract_employee_manager (noupdate) +DEL ir.rule: hr_contract.ir_rule_hr_contract_history_multi_company (noupdate) + +# DONE: deleted in pre-migration + +DEL ir.rule: hr_contract.ir_rule_hr_contract_manager [renamed to hr module] (noupdate) +DEL ir.rule: hr_contract.ir_rule_hr_contract_multi_company [renamed to hr module] (noupdate) +DEL ir.rule: hr_contract.ir_rule_hr_payroll_structure_type_multi_company [renamed to hr module] (noupdate) +NEW ir.ui.menu: hr.menu_hr_employee_contract_templates +DEL ir.ui.menu: hr.menu_hr_employee_user +DEL ir.ui.menu: hr.menu_hr_reporting_timesheet +DEL ir.ui.menu: hr_contract.hr_menu_contract +DEL ir.ui.menu: hr_contract.menu_hr_employee_contracts +DEL ir.ui.menu: hr_contract.menu_human_resources_configuration_contract +NEW ir.ui.view: hr.hr_contract_template_form_view +NEW ir.ui.view: hr.hr_contract_template_list_view +NEW ir.ui.view: hr.hr_employee_list_activites_view +NEW ir.ui.view: hr.hr_employee_list_view +NEW ir.ui.view: hr.hr_version_graph_view +NEW ir.ui.view: hr.hr_version_list_view +NEW ir.ui.view: hr.hr_version_pivot_view +NEW ir.ui.view: hr.hr_version_search_view +NEW ir.ui.view: hr.hr_version_wizard_view_form +NEW ir.ui.view: hr.res_users_view_form_preferences +NEW ir.ui.view: hr.view_bank_account_allocation_line_list +NEW ir.ui.view: hr.view_bank_account_allocation_wizard +NEW ir.ui.view: hr.view_partner_bank_form_inherit_hr +DEL ir.ui.view: hr.res_users_view_form_profile +DEL ir.ui.view: hr_contract.hr_contract_history_view_form +DEL ir.ui.view: hr_contract.hr_contract_history_view_kanban +DEL ir.ui.view: hr_contract.hr_contract_history_view_list +DEL ir.ui.view: hr_contract.hr_contract_history_view_search +DEL ir.ui.view: hr_contract.hr_contract_view_activity +DEL ir.ui.view: hr_contract.hr_contract_view_form +DEL ir.ui.view: hr_contract.hr_contract_view_kanban +DEL ir.ui.view: hr_contract.hr_contract_view_search +DEL ir.ui.view: hr_contract.hr_contract_view_tree +DEL ir.ui.view: hr_contract.hr_departure_wizard_view_form +DEL ir.ui.view: hr_contract.hr_employee_view_graph_inherit_hr_contract +DEL ir.ui.view: hr_contract.hr_employee_view_pivot_inherit_hr_contract +DEL ir.ui.view: hr_contract.hr_employee_view_search +DEL ir.ui.view: hr_contract.hr_hr_employee_view_form2 +DEL ir.ui.view: hr_contract.hr_hr_employee_view_form3 +DEL ir.ui.view: hr_contract.hr_user_view_form +DEL ir.ui.view: hr_contract.res_config_settings_view_form +DEL ir.ui.view: hr_contract.resource_calendar_view_form +DEL ir.ui.view: hr_contract.resource_calendar_view_tree +DEL ir.ui.view: hr_contract.view_employee_public_form +DEL ir.ui.view: hr_contract.view_employee_tree +NEW mail.message.subtype: hr.mt_contract_close [renamed from hr_contract module] (noupdate) +NEW mail.message.subtype: hr.mt_contract_pending [renamed from hr_contract module] (noupdate) +NEW mail.message.subtype: hr.mt_department_contract_pending [renamed from hr_contract module] (noupdate) +DEL mail.message.subtype: hr_contract.mt_contract_close [renamed to hr module] (noupdate) +DEL mail.message.subtype: hr_contract.mt_contract_pending [renamed to hr module] (noupdate) +DEL mail.message.subtype: hr_contract.mt_department_contract_pending [renamed to hr module] (noupdate) + +# NOTHING TO DO + +DEL res.groups: hr_contract.group_hr_contract_employee_manager (noupdate) +DEL res.groups: hr_contract.group_hr_contract_manager (noupdate) + +# DONE: deleted in pre-migration + +NEW res.groups.privilege: hr.res_groups_privilege_employees + +# NOTHING TO DO diff --git a/openupgrade_scripts/scripts/phone_validation/19.0.2.1/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/phone_validation/19.0.2.1/upgrade_analysis_work.txt new file mode 100644 index 000000000000..0c1fbdf7c172 --- /dev/null +++ b/openupgrade_scripts/scripts/phone_validation/19.0.2.1/upgrade_analysis_work.txt @@ -0,0 +1,17 @@ +---Models in module 'phone_validation'--- +---Fields in module 'phone_validation'--- +phone_validation / res.partner / phone_blacklisted (boolean) : previously in module sms +phone_validation / res.partner / phone_mobile_search (char) : previously in module sms +phone_validation / res.partner / phone_sanitized (char) : previously in module sms +phone_validation / res.partner / phone_sanitized_blacklisted (boolean): previously in module sms +phone_validation / res.users / phone_blacklisted (boolean) : previously in module sms +phone_validation / res.users / phone_mobile_search (char) : previously in module sms +phone_validation / res.users / phone_sanitized (char) : previously in module sms +phone_validation / res.users / phone_sanitized_blacklisted (boolean): previously in module sms + +# NOTHING TO DO: if sms is installed, fields are reused, otherwise they are new anyways + +---XML records in module 'phone_validation'--- +NEW ir.ui.view: phone_validation.res_partner_view_search + +# NOTHING TO DO diff --git a/openupgrade_scripts/scripts/resource_mail/19.0.1.0/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/resource_mail/19.0.1.0/upgrade_analysis_work.txt new file mode 100644 index 000000000000..5c4c279ab793 --- /dev/null +++ b/openupgrade_scripts/scripts/resource_mail/19.0.1.0/upgrade_analysis_work.txt @@ -0,0 +1,7 @@ +---Models in module 'resource_mail'--- +---Fields in module 'resource_mail'--- +resource_mail / resource.resource / color (integer) : NEW hasdefault: default + +# NOTHING TO DO + +---XML records in module 'resource_mail'---