From f547a3ceba61a581b257f070766190fc5eb96f2b Mon Sep 17 00:00:00 2001 From: JocelynVN Date: Sun, 16 Nov 2025 17:00:33 +0700 Subject: [PATCH 1/4] [MIG] hr_attendance: Add no-update changes XML and load it in post-migration script --- .../scripts/hr_attendance/17.0.2.0/noupdate_changes.xml | 6 ++++++ .../scripts/hr_attendance/17.0.2.0/post-migration.py | 1 + 2 files changed, 7 insertions(+) create mode 100644 openupgrade_scripts/scripts/hr_attendance/17.0.2.0/noupdate_changes.xml diff --git a/openupgrade_scripts/scripts/hr_attendance/17.0.2.0/noupdate_changes.xml b/openupgrade_scripts/scripts/hr_attendance/17.0.2.0/noupdate_changes.xml new file mode 100644 index 000000000000..12d1d43c14cd --- /dev/null +++ b/openupgrade_scripts/scripts/hr_attendance/17.0.2.0/noupdate_changes.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/openupgrade_scripts/scripts/hr_attendance/17.0.2.0/post-migration.py b/openupgrade_scripts/scripts/hr_attendance/17.0.2.0/post-migration.py index 7022dfb631c7..f30b4d130ab3 100644 --- a/openupgrade_scripts/scripts/hr_attendance/17.0.2.0/post-migration.py +++ b/openupgrade_scripts/scripts/hr_attendance/17.0.2.0/post-migration.py @@ -105,3 +105,4 @@ def migrate(env, version): openupgrade.delete_records_safely_by_xml_id(env, _deleted_xml_records) fill_hr_attendance_overtime_hours(env) hr_attendance_menus(env) + openupgrade.load_data(env, "hr_attendance", "17.0.2.0/noupdate_changes.xml") From 924e9f3e39da3e492f7e310ea78fbf4edd0faf3b Mon Sep 17 00:00:00 2001 From: JocelynVN Date: Fri, 21 Nov 2025 06:59:10 +0700 Subject: [PATCH 2/4] [MIG] hr_attendance: Remove no-update changes XML and implement direct group modification in post-migration script --- .../hr_attendance/17.0.2.0/noupdate_changes.xml | 6 ------ .../hr_attendance/17.0.2.0/post-migration.py | 17 ++++++++++++++++- 2 files changed, 16 insertions(+), 7 deletions(-) delete mode 100644 openupgrade_scripts/scripts/hr_attendance/17.0.2.0/noupdate_changes.xml diff --git a/openupgrade_scripts/scripts/hr_attendance/17.0.2.0/noupdate_changes.xml b/openupgrade_scripts/scripts/hr_attendance/17.0.2.0/noupdate_changes.xml deleted file mode 100644 index 12d1d43c14cd..000000000000 --- a/openupgrade_scripts/scripts/hr_attendance/17.0.2.0/noupdate_changes.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/openupgrade_scripts/scripts/hr_attendance/17.0.2.0/post-migration.py b/openupgrade_scripts/scripts/hr_attendance/17.0.2.0/post-migration.py index f30b4d130ab3..561bebbe06ff 100644 --- a/openupgrade_scripts/scripts/hr_attendance/17.0.2.0/post-migration.py +++ b/openupgrade_scripts/scripts/hr_attendance/17.0.2.0/post-migration.py @@ -97,6 +97,21 @@ def hr_attendance_menus(env): ) +def add_attendance_own_reader_to_base_user(env): + """ + Add hr_attendance.group_hr_attendance_own_reader to base.group_user's implied_ids. + This ensures all users have access to read their own attendance records. + """ + group_user = env.ref("base.group_user") + group_attendance_own_reader = env.ref("hr_attendance.group_hr_attendance_own_reader") + if group_attendance_own_reader not in group_user.implied_ids: + group_user.write( + { + "implied_ids": [Command.link(group_attendance_own_reader.id)], + } + ) + + @openupgrade.migrate() def migrate(env, version): fill_res_company_hr_attendance_display_overtime(env) @@ -105,4 +120,4 @@ def migrate(env, version): openupgrade.delete_records_safely_by_xml_id(env, _deleted_xml_records) fill_hr_attendance_overtime_hours(env) hr_attendance_menus(env) - openupgrade.load_data(env, "hr_attendance", "17.0.2.0/noupdate_changes.xml") + add_attendance_own_reader_to_base_user(env) From 91e03412ccb5ede0e126a7a953eaa9f4130b9331 Mon Sep 17 00:00:00 2001 From: JocelynVN Date: Sun, 23 Nov 2025 21:54:50 +0700 Subject: [PATCH 3/4] [IMP] hr_attendance: Refactor post-migration script for better readability and maintainability --- .../scripts/hr_attendance/17.0.2.0/post-migration.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/openupgrade_scripts/scripts/hr_attendance/17.0.2.0/post-migration.py b/openupgrade_scripts/scripts/hr_attendance/17.0.2.0/post-migration.py index 561bebbe06ff..d6f9ebaf266e 100644 --- a/openupgrade_scripts/scripts/hr_attendance/17.0.2.0/post-migration.py +++ b/openupgrade_scripts/scripts/hr_attendance/17.0.2.0/post-migration.py @@ -102,12 +102,14 @@ def add_attendance_own_reader_to_base_user(env): Add hr_attendance.group_hr_attendance_own_reader to base.group_user's implied_ids. This ensures all users have access to read their own attendance records. """ - group_user = env.ref("base.group_user") - group_attendance_own_reader = env.ref("hr_attendance.group_hr_attendance_own_reader") + group_user = env.ref('base.group_user') + group_attendance_own_reader = env.ref( + 'hr_attendance.group_hr_attendance_own_reader' + ) if group_attendance_own_reader not in group_user.implied_ids: group_user.write( { - "implied_ids": [Command.link(group_attendance_own_reader.id)], + 'implied_ids': [Command.link(group_attendance_own_reader.id)], } ) From b80252d3e2976a11aec309ff0c1dcac1df854a86 Mon Sep 17 00:00:00 2001 From: JocelynVN Date: Sun, 23 Nov 2025 22:07:06 +0700 Subject: [PATCH 4/4] [IMP] hr_attendance: Standardize string formatting in post-migration script --- .../scripts/hr_attendance/17.0.2.0/post-migration.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openupgrade_scripts/scripts/hr_attendance/17.0.2.0/post-migration.py b/openupgrade_scripts/scripts/hr_attendance/17.0.2.0/post-migration.py index d6f9ebaf266e..db971000e6b9 100644 --- a/openupgrade_scripts/scripts/hr_attendance/17.0.2.0/post-migration.py +++ b/openupgrade_scripts/scripts/hr_attendance/17.0.2.0/post-migration.py @@ -102,14 +102,14 @@ def add_attendance_own_reader_to_base_user(env): Add hr_attendance.group_hr_attendance_own_reader to base.group_user's implied_ids. This ensures all users have access to read their own attendance records. """ - group_user = env.ref('base.group_user') + group_user = env.ref("base.group_user") group_attendance_own_reader = env.ref( - 'hr_attendance.group_hr_attendance_own_reader' + "hr_attendance.group_hr_attendance_own_reader" ) if group_attendance_own_reader not in group_user.implied_ids: group_user.write( { - 'implied_ids': [Command.link(group_attendance_own_reader.id)], + "implied_ids": [Command.link(group_attendance_own_reader.id)], } )