odoo-addon-openupgrade-scripts 18.0.1.0.0.274__py3-none-any.whl → 18.0.1.0.0.303__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- odoo/addons/openupgrade_scripts/scripts/base/18.0.1.3/upgrade_general_log.txt +2 -1
- odoo/addons/openupgrade_scripts/scripts/hr_attendance/18.0.2.0/pre-migration.py +40 -0
- odoo/addons/openupgrade_scripts/scripts/hr_attendance/18.0.2.0/upgrade_analysis_work.txt +37 -0
- odoo/addons/openupgrade_scripts/scripts/hr_holidays/18.0.1.6/post-migration.py +12 -0
- odoo/addons/openupgrade_scripts/scripts/hr_holidays/18.0.1.6/pre-migration.py +185 -0
- odoo/addons/openupgrade_scripts/scripts/hr_holidays/18.0.1.6/upgrade_analysis_work.txt +114 -0
- odoo/addons/openupgrade_scripts/scripts/hr_holidays_attendance/18.0.1.0/post-migration.py +8 -0
- odoo/addons/openupgrade_scripts/scripts/hr_holidays_attendance/18.0.1.0/upgrade_analysis_work.txt +5 -0
- odoo/addons/openupgrade_scripts/scripts/hr_timesheet/18.0.1.0/post-migration.py +8 -0
- odoo/addons/openupgrade_scripts/scripts/hr_timesheet/18.0.1.0/upgrade_analysis_work.txt +33 -0
- odoo/addons/openupgrade_scripts/scripts/hr_timesheet_attendance/18.0.1.1/upgrade_analysis_work.txt +5 -0
- odoo/addons/openupgrade_scripts/scripts/l10n_br/18.0.1.0/upgrade_analysis.txt +1 -0
- odoo/addons/openupgrade_scripts/scripts/l10n_es_edi_verifactu/18.0.1.0/upgrade_analysis.txt +44 -0
- odoo/addons/openupgrade_scripts/scripts/l10n_es_edi_verifactu_pos/18.0.1.0/upgrade_analysis.txt +11 -0
- odoo/addons/openupgrade_scripts/scripts/l10n_kh/18.0.1.0/upgrade_analysis.txt +152 -0
- odoo/addons/openupgrade_scripts/scripts/l10n_sg/18.0.2.2/upgrade_analysis.txt +1 -1
- odoo/addons/openupgrade_scripts/scripts/l10n_th/18.0.2.0/upgrade_analysis.txt +1 -1
- odoo/addons/openupgrade_scripts/scripts/l10n_vn/18.0.2.0.3/upgrade_analysis.txt +1 -0
- odoo/addons/openupgrade_scripts/scripts/loyalty/18.0.1.0/end-migration.py +9 -0
- odoo/addons/openupgrade_scripts/scripts/loyalty/18.0.1.0/upgrade_analysis_work.txt +36 -0
- odoo/addons/openupgrade_scripts/scripts/product_expiry/18.0.1.0/upgrade_analysis_work.txt +5 -0
- odoo/addons/openupgrade_scripts/scripts/product_margin/18.0.1.0/upgrade_analysis_work.txt +5 -0
- odoo/addons/openupgrade_scripts/scripts/project_mrp/18.0.1.0/upgrade_analysis_work.txt +19 -0
- odoo/addons/openupgrade_scripts/scripts/project_mrp_account/18.0.1.0/upgrade_analysis_work.txt +5 -0
- odoo/addons/openupgrade_scripts/scripts/project_purchase/18.0.1.0/upgrade_analysis_work.txt +9 -0
- odoo/addons/openupgrade_scripts/scripts/project_sms/18.0.1.0/upgrade_analysis_work.txt +5 -0
- odoo/addons/openupgrade_scripts/scripts/project_stock_account/18.0.1.0/upgrade_analysis_work.txt +12 -0
- odoo/addons/openupgrade_scripts/scripts/sale_project/18.0.1.0/pre-migration.py +0 -1
- odoo/addons/openupgrade_scripts/scripts/sale_timesheet/18.0.1.0/upgrade_analysis_work.txt +34 -0
- odoo/addons/openupgrade_scripts/scripts/stock_landed_costs/18.0.1.1/pre-migration.py +27 -0
- odoo/addons/openupgrade_scripts/scripts/stock_landed_costs/18.0.1.1/upgrade_analysis_work.txt +11 -0
- odoo/addons/openupgrade_scripts/scripts/website_blog/18.0.1.1/upgrade_analysis_work.txt +12 -0
- odoo/addons/openupgrade_scripts/scripts/website_project/18.0.1.0/pre-migration.py +33 -0
- odoo/addons/openupgrade_scripts/scripts/website_project/18.0.1.0/upgrade_analysis_work.txt +22 -0
- {odoo_addon_openupgrade_scripts-18.0.1.0.0.274.dist-info → odoo_addon_openupgrade_scripts-18.0.1.0.0.303.dist-info}/METADATA +1 -1
- {odoo_addon_openupgrade_scripts-18.0.1.0.0.274.dist-info → odoo_addon_openupgrade_scripts-18.0.1.0.0.303.dist-info}/RECORD +38 -10
- {odoo_addon_openupgrade_scripts-18.0.1.0.0.274.dist-info → odoo_addon_openupgrade_scripts-18.0.1.0.0.303.dist-info}/WHEEL +1 -1
- {odoo_addon_openupgrade_scripts-18.0.1.0.0.274.dist-info → odoo_addon_openupgrade_scripts-18.0.1.0.0.303.dist-info}/top_level.txt +0 -0
@@ -70,6 +70,7 @@ new model l10n_ar.partner.tax [module l10n_ar_withholding]
|
|
70
70
|
new model l10n_br.zip.range [module l10n_br]
|
71
71
|
new model l10n_es_edi_facturae.ac_role_type (renamed from l10n_es_edi_facturae_adm_centers.ac_role_type) [module l10n_es_edi_facturae]
|
72
72
|
new model l10n_es_edi_tbai.document [module l10n_es_edi_tbai]
|
73
|
+
new model l10n_es_edi_verifactu.document [module l10n_es_edi_verifactu]
|
73
74
|
new model l10n_fr.fec.export.wizard [module l10n_fr_account]
|
74
75
|
new model l10n_gr_edi.document [module l10n_gr_edi]
|
75
76
|
new model l10n_gr_edi.preferred_classification [module l10n_gr_edi]
|
@@ -125,7 +126,7 @@ new model website.page.properties.base [module website]
|
|
125
126
|
# Found in other module: 92
|
126
127
|
# Found with different type: 8
|
127
128
|
# In obsolete models: 34
|
128
|
-
# New columns:
|
129
|
+
# New columns: 1702
|
129
130
|
# Not matched: 825
|
130
131
|
---XML records in module 'general'---
|
131
132
|
ERROR: module not in list of installed modules:
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# Copyright 2025 ForgeFlow S.L. (https://www.forgeflow.com)
|
2
|
+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
3
|
+
from openupgradelib import openupgrade
|
4
|
+
|
5
|
+
_new_columns = [
|
6
|
+
("hr.attendance", "expected_hours", "float"),
|
7
|
+
("hr.attendance", "overtime_status", "selection", "approved"),
|
8
|
+
("hr.attendance", "validated_overtime_hours", "float"),
|
9
|
+
("res.company", "absence_management", "boolean", False),
|
10
|
+
("res.company", "attendance_overtime_validation", "selection", "no_validation"),
|
11
|
+
("res.company", "auto_check_out", "boolean", False),
|
12
|
+
("res.company", "auto_check_out_tolerance", "float", 2),
|
13
|
+
]
|
14
|
+
|
15
|
+
|
16
|
+
def fill_hr_attendance_expected_hours(env):
|
17
|
+
openupgrade.logged_query(
|
18
|
+
env.cr,
|
19
|
+
"""
|
20
|
+
UPDATE hr_attendance
|
21
|
+
SET expected_hours = COALESCE(worked_hours, 0) - COALESCE(overtime_hours, 0)
|
22
|
+
""",
|
23
|
+
)
|
24
|
+
|
25
|
+
|
26
|
+
def fill_hr_attendance_validated_overtime_hours(env):
|
27
|
+
openupgrade.logged_query(
|
28
|
+
env.cr,
|
29
|
+
"""
|
30
|
+
UPDATE hr_attendance
|
31
|
+
SET validated_overtime_hours = COALESCE(overtime_hours, 0)
|
32
|
+
""",
|
33
|
+
)
|
34
|
+
|
35
|
+
|
36
|
+
@openupgrade.migrate()
|
37
|
+
def migrate(env, version=None):
|
38
|
+
openupgrade.add_columns(env, _new_columns)
|
39
|
+
fill_hr_attendance_expected_hours(env)
|
40
|
+
fill_hr_attendance_validated_overtime_hours(env)
|
@@ -0,0 +1,37 @@
|
|
1
|
+
---Models in module 'hr_attendance'---
|
2
|
+
---Fields in module 'hr_attendance'---
|
3
|
+
hr_attendance / hr.attendance / expected_hours (float) : NEW isfunction: function, stored
|
4
|
+
# DONE: pre-migration: pre-created and filled
|
5
|
+
|
6
|
+
hr_attendance / hr.attendance / in_mode (selection) : selection_keys is now '['kiosk', 'manual', 'systray', 'technical']' ('['kiosk', 'manual', 'systray']')
|
7
|
+
hr_attendance / hr.attendance / out_mode (selection) : selection_keys is now '['auto_check_out', 'kiosk', 'manual', 'systray', 'technical']' ('['kiosk', 'manual', 'systray']')
|
8
|
+
hr_attendance / hr.attendance / overtime_status (selection) : NEW selection_keys: ['approved', 'refused', 'to_approve'], isfunction: function, stored
|
9
|
+
hr_attendance / hr.attendance / validated_overtime_hours (float): NEW hasdefault: compute
|
10
|
+
# DONE: pre-migration: pre-created and filled
|
11
|
+
|
12
|
+
hr_attendance / res.company / absence_management (boolean) : NEW hasdefault: default
|
13
|
+
hr_attendance / res.company / attendance_overtime_validation (selection): NEW selection_keys: ['by_manager', 'no_validation'], hasdefault: default
|
14
|
+
hr_attendance / res.company / auto_check_out (boolean) : NEW hasdefault: default
|
15
|
+
hr_attendance / res.company / auto_check_out_tolerance (float): NEW hasdefault: default
|
16
|
+
# DONE: pre-migration: pre-created and filled
|
17
|
+
|
18
|
+
hr_attendance / res.company / hr_attendance_overtime (boolean): DEL
|
19
|
+
hr_attendance / res.company / overtime_start_date (date) : DEL
|
20
|
+
# NOTHING TO DO: deprecated fields (https://github.com/odoo/odoo/commit/cac96f5d3c391ea0d52da2e3433e7eabe07e8fb0)
|
21
|
+
|
22
|
+
---XML records in module 'hr_attendance'---
|
23
|
+
NEW ir.actions.act_window: hr_attendance.hr_attendance_management_action
|
24
|
+
NEW ir.actions.client: hr_attendance.hr_attendance_action_install_kiosk_pwa
|
25
|
+
NEW ir.actions.server: hr_attendance.action_load_demo_data
|
26
|
+
NEW ir.actions.server: hr_attendance.action_try_kiosk
|
27
|
+
NEW ir.cron: hr_attendance.hr_attendance_absence_cron
|
28
|
+
NEW ir.cron: hr_attendance.hr_attendance_check_out_cron
|
29
|
+
NEW ir.ui.menu: hr_attendance.menu_action_open_form
|
30
|
+
NEW ir.ui.menu: hr_attendance.menu_hr_attendance_view_attendances_management
|
31
|
+
DEL ir.ui.menu: hr_attendance.menu_hr_attendance_kiosk_no_user_mode
|
32
|
+
NEW ir.ui.view: hr_attendance.hr_attendance_management_view_filter
|
33
|
+
NEW ir.ui.view: hr_attendance.hr_attendance_overtime_view_pivot
|
34
|
+
NEW ir.ui.view: hr_attendance.hr_attendance_validated_hours_employee_simple_tree_view
|
35
|
+
NEW ir.ui.view: hr_attendance.view_attendance_overtime_graph
|
36
|
+
NEW ir.ui.view: hr_attendance.view_attendance_tree_management
|
37
|
+
# NOTHING TO DO
|
@@ -0,0 +1,12 @@
|
|
1
|
+
from openupgradelib import openupgrade
|
2
|
+
|
3
|
+
|
4
|
+
@openupgrade.migrate()
|
5
|
+
def migrate(env, version):
|
6
|
+
openupgrade.load_data(env, "hr_holidays", "18.0.1.6/noupdate_changes.xml")
|
7
|
+
openupgrade.delete_record_translations(
|
8
|
+
env.cr, "hr_holidays", ["mt_leave_allocation"], ["name"]
|
9
|
+
)
|
10
|
+
openupgrade.delete_records_safely_by_xml_id(
|
11
|
+
env, ["hr_holidays.mt_leave_home_working"]
|
12
|
+
)
|
@@ -0,0 +1,185 @@
|
|
1
|
+
from openupgradelib import openupgrade
|
2
|
+
|
3
|
+
_column_renames = {
|
4
|
+
"hr_leave": [("request_hour_from", None), ("request_hour_to", None)],
|
5
|
+
"hr_leave_allocation": [("private_name", "name")],
|
6
|
+
}
|
7
|
+
|
8
|
+
_column_adds = [
|
9
|
+
("hr.leave", "request_hour_from", "float"),
|
10
|
+
("hr.leave", "request_hour_to", "float"),
|
11
|
+
]
|
12
|
+
|
13
|
+
|
14
|
+
def refill_hr_leave_request_hours(env):
|
15
|
+
old_request_hour_from = openupgrade.get_legacy_name("request_hour_from")
|
16
|
+
openupgrade.logged_query(
|
17
|
+
env.cr,
|
18
|
+
f"""
|
19
|
+
UPDATE hr_leave SET request_hour_from = {old_request_hour_from}::float
|
20
|
+
WHERE {old_request_hour_from} IS NOT NULL;
|
21
|
+
""",
|
22
|
+
)
|
23
|
+
old_request_hour_to = openupgrade.get_legacy_name("request_hour_to")
|
24
|
+
openupgrade.logged_query(
|
25
|
+
env.cr,
|
26
|
+
f"""
|
27
|
+
UPDATE hr_leave SET request_hour_to = {old_request_hour_to}::float
|
28
|
+
WHERE {old_request_hour_to} IS NOT NULL;
|
29
|
+
""",
|
30
|
+
)
|
31
|
+
|
32
|
+
|
33
|
+
def update_states(env):
|
34
|
+
openupgrade.logged_query(
|
35
|
+
env.cr,
|
36
|
+
"""
|
37
|
+
UPDATE hr_leave
|
38
|
+
SET state = 'confirm'
|
39
|
+
WHERE state = 'draft'
|
40
|
+
""",
|
41
|
+
)
|
42
|
+
openupgrade.logged_query(
|
43
|
+
env.cr,
|
44
|
+
"""
|
45
|
+
UPDATE hr_leave
|
46
|
+
SET state = 'cancel'
|
47
|
+
WHERE active IS DISTINCT FROM TRUE
|
48
|
+
""",
|
49
|
+
)
|
50
|
+
openupgrade.logged_query(
|
51
|
+
env.cr,
|
52
|
+
"""
|
53
|
+
UPDATE hr_leave_allocation
|
54
|
+
SET state = 'cancel'
|
55
|
+
WHERE active IS DISTINCT FROM TRUE
|
56
|
+
""",
|
57
|
+
)
|
58
|
+
|
59
|
+
|
60
|
+
def update_allocation_validation_type(env):
|
61
|
+
openupgrade.logged_query(
|
62
|
+
env.cr,
|
63
|
+
"""
|
64
|
+
UPDATE hr_leave_type
|
65
|
+
SET allocation_validation_type = 'hr'
|
66
|
+
WHERE allocation_validation_type = 'officer'
|
67
|
+
""",
|
68
|
+
)
|
69
|
+
openupgrade.logged_query(
|
70
|
+
env.cr,
|
71
|
+
"""
|
72
|
+
UPDATE hr_leave_type
|
73
|
+
SET allocation_validation_type = 'no_validation'
|
74
|
+
WHERE allocation_validation_type = 'no'
|
75
|
+
""",
|
76
|
+
)
|
77
|
+
|
78
|
+
|
79
|
+
def split_employee_leaves(env):
|
80
|
+
for table in ["hr_leave", "hr_leave_allocation"]:
|
81
|
+
env.cr.execute(
|
82
|
+
f"""
|
83
|
+
SELECT column_name
|
84
|
+
FROM information_schema.columns
|
85
|
+
WHERE table_name = '{table}'
|
86
|
+
"""
|
87
|
+
)
|
88
|
+
columns = ", ".join(
|
89
|
+
[x[0] for x in env.cr.fetchall() if x[0] not in ("id", "employee_id")]
|
90
|
+
)
|
91
|
+
leave_employees = []
|
92
|
+
# case multi_employee
|
93
|
+
env.cr.execute(
|
94
|
+
f"""
|
95
|
+
SELECT leave.id, 'employee', array_agg(rel.hr_employee_id) as employee_ids
|
96
|
+
FROM {table} AS leave
|
97
|
+
JOIN hr_employee_{table}_rel rel ON rel.{table}_id = leave.id
|
98
|
+
WHERE leave.holiday_type = 'employee' AND leave.multi_employee
|
99
|
+
GROUP BY leave.id
|
100
|
+
"""
|
101
|
+
)
|
102
|
+
leave_employees.extend(env.cr.fetchall())
|
103
|
+
# case company
|
104
|
+
env.cr.execute(
|
105
|
+
f"""
|
106
|
+
SELECT leave.id, 'company', array_agg(he.id) as employee_ids
|
107
|
+
FROM {table} AS leave
|
108
|
+
JOIN hr_employee he ON he.company_id = leave.mode_company_id
|
109
|
+
WHERE leave.holiday_type = 'company'
|
110
|
+
GROUP BY leave.id
|
111
|
+
"""
|
112
|
+
)
|
113
|
+
leave_employees.extend(env.cr.fetchall())
|
114
|
+
# case category
|
115
|
+
env.cr.execute(
|
116
|
+
f"""
|
117
|
+
SELECT leave.id, 'category', array_agg(rel.employee_id) as employee_ids
|
118
|
+
FROM {table} AS leave
|
119
|
+
JOIN employee_category_rel rel ON rel.category_id = leave.category_id
|
120
|
+
WHERE leave.holiday_type = 'category'
|
121
|
+
GROUP BY leave.id
|
122
|
+
"""
|
123
|
+
)
|
124
|
+
leave_employees.extend(env.cr.fetchall())
|
125
|
+
# case department
|
126
|
+
env.cr.execute(
|
127
|
+
f"""
|
128
|
+
SELECT leave.id, 'department', array_agg(he.id) as employee_ids
|
129
|
+
FROM {table} AS leave
|
130
|
+
JOIN hr_employee he ON he.department_id = leave.department_id
|
131
|
+
WHERE leave.holiday_type = 'department'
|
132
|
+
GROUP BY leave.id
|
133
|
+
"""
|
134
|
+
)
|
135
|
+
leave_employees.extend(env.cr.fetchall())
|
136
|
+
for table_id, holiday_type, employee_ids in leave_employees:
|
137
|
+
employees = env["hr.employee"].browse(employee_ids)
|
138
|
+
if employee_ids:
|
139
|
+
openupgrade.logged_query(
|
140
|
+
env.cr,
|
141
|
+
f"""
|
142
|
+
UPDATE {table}
|
143
|
+
SET employee_id = {employees[0].id}
|
144
|
+
WHERE id = {table_id}
|
145
|
+
""",
|
146
|
+
)
|
147
|
+
if holiday_type != "employee":
|
148
|
+
openupgrade.logged_query(
|
149
|
+
env.cr,
|
150
|
+
f"""
|
151
|
+
UPDATE {table}
|
152
|
+
SET holiday_type = 'employee'
|
153
|
+
WHERE id = {table_id}
|
154
|
+
""",
|
155
|
+
)
|
156
|
+
for employee in employees[1:]:
|
157
|
+
openupgrade.logged_query(
|
158
|
+
env.cr,
|
159
|
+
f"""
|
160
|
+
INSERT INTO {table} (employee_id, {columns})
|
161
|
+
SELECT {employee.id}, {columns}
|
162
|
+
FROM {table}
|
163
|
+
WHERE id = {table_id}
|
164
|
+
""",
|
165
|
+
)
|
166
|
+
else:
|
167
|
+
openupgrade.logged_query(
|
168
|
+
env.cr,
|
169
|
+
f"""
|
170
|
+
DELETE FROM {table} WHERE id = {table_id}
|
171
|
+
""",
|
172
|
+
)
|
173
|
+
|
174
|
+
|
175
|
+
@openupgrade.migrate()
|
176
|
+
def migrate(env, version):
|
177
|
+
openupgrade.rename_columns(env.cr, _column_renames)
|
178
|
+
openupgrade.add_columns(env, _column_adds)
|
179
|
+
refill_hr_leave_request_hours(env)
|
180
|
+
update_states(env)
|
181
|
+
update_allocation_validation_type(env)
|
182
|
+
openupgrade.remove_tables_fks(
|
183
|
+
env.cr, ["hr_employee_hr_leave_rel", "hr_employee_hr_leave_allocation_rel"]
|
184
|
+
)
|
185
|
+
split_employee_leaves(env)
|
@@ -0,0 +1,114 @@
|
|
1
|
+
---Models in module 'hr_holidays'---
|
2
|
+
new model hr.leave.allocation.generate.multi.wizard [transient]
|
3
|
+
new model hr.leave.generate.multi.wizard [transient]
|
4
|
+
---Fields in module 'hr_holidays'---
|
5
|
+
hr_holidays / hr.employee / current_leave_state (selection): selection_keys removed: [draft]
|
6
|
+
hr_holidays / hr.employee / hr_icon_display (False) : selection_keys added: [presence_archive, presence_out_of_working_hour], removed: [presence_absent_active, presence_to_define]
|
7
|
+
# NOTHING TO DO: non stored
|
8
|
+
|
9
|
+
hr_holidays / hr.leave / employee_ids (many2many) : DEL relation: hr.employee
|
10
|
+
hr_holidays / hr.leave.allocation / employee_ids (many2many) : DEL relation: hr.employee
|
11
|
+
# DONE: pre-migration: remove many2many table fks
|
12
|
+
|
13
|
+
hr_holidays / hr.leave / category_id (many2one) : DEL relation: hr.employee.category
|
14
|
+
hr_holidays / hr.leave.allocation / category_id (many2one) : DEL relation: hr.employee.category
|
15
|
+
hr_holidays / hr.leave / holiday_type (selection) : DEL required, selection_keys: ['category', 'company', 'department', 'employee']
|
16
|
+
hr_holidays / hr.leave.allocation / holiday_type (selection) : DEL required, selection_keys: ['category', 'company', 'department', 'employee']
|
17
|
+
hr_holidays / hr.leave / linked_request_ids (one2many) : DEL relation: hr.leave
|
18
|
+
hr_holidays / hr.leave.allocation / linked_request_ids (one2many) : DEL relation: hr.leave.allocation
|
19
|
+
hr_holidays / hr.leave / mode_company_id (many2one) : DEL relation: res.company
|
20
|
+
hr_holidays / hr.leave.allocation / mode_company_id (many2one) : DEL relation: res.company
|
21
|
+
hr_holidays / hr.leave / multi_employee (boolean) : DEL
|
22
|
+
hr_holidays / hr.leave.allocation / multi_employee (boolean) : DEL
|
23
|
+
hr_holidays / hr.leave / parent_id (many2one) : DEL relation: hr.leave
|
24
|
+
hr_holidays / hr.leave.allocation / parent_id (many2one) : DEL relation: hr.leave.allocation
|
25
|
+
hr_holidays / hr.leave / employee_id (many2one) : now required
|
26
|
+
hr_holidays / hr.leave.allocation / employee_id (many2one) : now required
|
27
|
+
# DONE: pre-migration: split leaves, one for each employee
|
28
|
+
|
29
|
+
hr_holidays / hr.leave / report_note (text) : DEL
|
30
|
+
# NOTHING TO DO: deprecated (https://github.com/odoo/odoo/commit/ca34732081b1ce6c339dd941abb9696861d95878)
|
31
|
+
|
32
|
+
hr_holidays / hr.leave / request_hour_from (selection) : selection_keys is now 'False' ('['0', '0.5', '1', '1.5', '10', '10.5', '11', '11.5', '12', '12.5', '13', '13.5', '14', '14.5', '15', '15.5', '16', '16.5', '17', '17.5', '18', '18.5', '19', '19.5', '2', '2.5', '20', '20.5', '21', '21.5', '22', '22.5', '23', '23.5', '3', '3.5', '4', '4.5', '5', '5.5', '6', '6.5', '7', '7.5', '8', '8.5', '9', '9.5']')
|
33
|
+
hr_holidays / hr.leave / request_hour_from (selection) : type is now 'float' ('selection')
|
34
|
+
hr_holidays / hr.leave / request_hour_to (selection) : selection_keys is now 'False' ('['0', '0.5', '1', '1.5', '10', '10.5', '11', '11.5', '12', '12.5', '13', '13.5', '14', '14.5', '15', '15.5', '16', '16.5', '17', '17.5', '18', '18.5', '19', '19.5', '2', '2.5', '20', '20.5', '21', '21.5', '22', '22.5', '23', '23.5', '3', '3.5', '4', '4.5', '5', '5.5', '6', '6.5', '7', '7.5', '8', '8.5', '9', '9.5']')
|
35
|
+
hr_holidays / hr.leave / request_hour_to (selection) : type is now 'float' ('selection')
|
36
|
+
# DONE: pre-migration: transform to float
|
37
|
+
|
38
|
+
hr_holidays / hr.leave / active (boolean) : DEL
|
39
|
+
hr_holidays / hr.leave.allocation / active (boolean) : DEL
|
40
|
+
hr_holidays / hr.leave / state (selection) : selection_keys added: [cancel], removed: [draft]
|
41
|
+
hr_holidays / hr.leave.allocation / state (selection) : selection_keys added: [validate1] (most likely nothing to do)
|
42
|
+
# DONE: pre-migration: set state = 'cancel' if archived. Also, 'draft' set to 'confirm' for leaves
|
43
|
+
|
44
|
+
hr_holidays / hr.leave.accrual.level / accrual_validity (boolean) : NEW
|
45
|
+
hr_holidays / hr.leave.accrual.level / accrual_validity_count (integer): NEW hasdefault: default
|
46
|
+
hr_holidays / hr.leave.accrual.level / accrual_validity_type (selection): NEW required, selection_keys: ['day', 'month'], hasdefault: default
|
47
|
+
# NOTHING TO DO: new functionality
|
48
|
+
|
49
|
+
hr_holidays / hr.leave.accrual.level / cap_accrued_time_yearly (boolean): NEW
|
50
|
+
hr_holidays / hr.leave.accrual.level / maximum_leave_yearly (float) : NEW
|
51
|
+
# NOTHING TO DO: new feature
|
52
|
+
|
53
|
+
hr_holidays / hr.leave.allocation / accrual_plan_id (many2one) : now a function
|
54
|
+
# NOTHING TO DO
|
55
|
+
|
56
|
+
hr_holidays / hr.leave.allocation / actual_lastcall (date) : NEW
|
57
|
+
hr_holidays / hr.leave.allocation / last_executed_carryover_date (date): NEW
|
58
|
+
# NOTHING TO DO
|
59
|
+
|
60
|
+
hr_holidays / hr.leave.allocation / carried_over_days_expiration_date (date): NEW
|
61
|
+
hr_holidays / hr.leave.allocation / expiring_carryover_days (float): NEW
|
62
|
+
# NOTHING TO DO: new functionality
|
63
|
+
|
64
|
+
hr_holidays / hr.leave.allocation / is_name_custom (boolean) : NEW
|
65
|
+
hr_holidays / hr.leave.allocation / name (char) : is now stored
|
66
|
+
hr_holidays / hr.leave.allocation / name (char) : not a function anymore
|
67
|
+
hr_holidays / hr.leave.allocation / private_name (char) : DEL
|
68
|
+
# DONE: pre-migration: renamed private_name to name
|
69
|
+
|
70
|
+
hr_holidays / hr.leave.allocation / number_of_hours_display (float): is now stored
|
71
|
+
# NOTHING TO DO: let odoo compute it
|
72
|
+
|
73
|
+
hr_holidays / hr.leave.allocation / second_approver_id (many2one) : NEW relation: hr.employee
|
74
|
+
# NOTHING TO DO: new functionality
|
75
|
+
|
76
|
+
hr_holidays / hr.leave.allocation / yearly_accrued_amount (float) : NEW
|
77
|
+
# NOTHING TO DO
|
78
|
+
|
79
|
+
hr_holidays / hr.leave.type / allocation_validation_type (selection): selection_keys added: [both, hr, manager, no_validation], removed: [no, officer]
|
80
|
+
# DONE: pre-migration: officer -> hr, no -> no_validation
|
81
|
+
|
82
|
+
hr_holidays / hr.leave.type / include_public_holidays_in_duration (boolean): NEW hasdefault: default
|
83
|
+
# NOTHING TO DO: new feature
|
84
|
+
|
85
|
+
hr_holidays / hr.leave.type / show_on_dashboard (boolean) : NEW hasdefault: default
|
86
|
+
# NOTHING TO DO: new feature
|
87
|
+
|
88
|
+
---XML records in module 'hr_holidays'---
|
89
|
+
NEW ir.actions.act_window: hr_holidays.action_hr_leave_allocation_generate_multi_wizard
|
90
|
+
NEW ir.actions.act_window: hr_holidays.action_hr_leave_generate_multi_wizard
|
91
|
+
NEW ir.actions.act_window: hr_holidays.action_hr_leave_report
|
92
|
+
NEW ir.actions.act_window: hr_holidays.hr_leave_report_action
|
93
|
+
DEL ir.actions.act_window: hr_holidays.act_hr_employee_holiday_type
|
94
|
+
DEL ir.actions.act_window: hr_holidays.hr_leave_action_action_department
|
95
|
+
NEW ir.model.access: hr_holidays.access_hr_leave_allocation_generate_multi_wizard
|
96
|
+
NEW ir.model.access: hr_holidays.access_hr_leave_employee_type_report_manager
|
97
|
+
NEW ir.model.access: hr_holidays.access_hr_leave_generate_multi_wizard
|
98
|
+
DEL ir.model.access: hr_holidays.access_hr_leave_employee_type_report
|
99
|
+
NEW ir.model.constraint: hr_holidays.constraint_hr_leave_accrual_level_valid_yearly_cap_value
|
100
|
+
DEL ir.model.constraint: hr_holidays.constraint_hr_leave_allocation_type_value
|
101
|
+
DEL ir.model.constraint: hr_holidays.constraint_hr_leave_type_value
|
102
|
+
NEW ir.ui.menu: hr_holidays.menu_hr_holidays_balance
|
103
|
+
NEW ir.ui.view: hr_holidays.hr_leave_allocation_generate_multi_wizard_view_form
|
104
|
+
NEW ir.ui.view: hr_holidays.hr_leave_generate_multi_wizard_view_form
|
105
|
+
NEW ir.ui.view: hr_holidays.hr_leave_view_search_report
|
106
|
+
NEW ir.ui.view: hr_holidays.view_calendar_event_form_inherit
|
107
|
+
DEL ir.ui.view: hr_holidays.hr_departure_wizard_view_form
|
108
|
+
DEL ir.ui.view: hr_holidays.hr_leave_report_search_view
|
109
|
+
NEW mail.activity.type: hr_holidays.mail_act_leave_allocation_second_approval (noupdate)
|
110
|
+
NEW web_tour.tour: hr_holidays.hr_holidays_tour
|
111
|
+
# NOTHING TO DO
|
112
|
+
|
113
|
+
DEL mail.message.subtype: hr_holidays.mt_leave_home_working (noupdate)
|
114
|
+
# DONE: post-migration: safely delete
|
@@ -0,0 +1,8 @@
|
|
1
|
+
# Copyright 2025 Le Filament (https://le-filament.com)
|
2
|
+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
3
|
+
from openupgradelib import openupgrade
|
4
|
+
|
5
|
+
|
6
|
+
@openupgrade.migrate()
|
7
|
+
def migrate(env, version):
|
8
|
+
openupgrade.load_data(env, "hr_timesheet", "18.0.1.0/noupdate_changes.xml")
|
@@ -0,0 +1,33 @@
|
|
1
|
+
---Models in module 'hr_timesheet'---
|
2
|
+
---Fields in module 'hr_timesheet'---
|
3
|
+
hr_timesheet / account.analytic.applicability / business_domain (False) : NEW selection_keys: ['bill', 'expense', 'general', 'invoice', 'purchase_order', 'timesheet'], mode: modify
|
4
|
+
# NOTHING TO DO: new selection added for new functionality
|
5
|
+
|
6
|
+
hr_timesheet / project.task / analytic_account_active (boolean): not a function anymore
|
7
|
+
hr_timesheet / project.task / analytic_account_active (boolean): now related
|
8
|
+
# NOTHING TO DO: handled by ORM to get analytic_account from parent project_id
|
9
|
+
|
10
|
+
---XML records in module 'hr_timesheet'---
|
11
|
+
NEW ir.actions.act_window.view: hr_timesheet.timesheet_action_view_report_by_employee_list
|
12
|
+
NEW ir.actions.act_window.view: hr_timesheet.timesheet_action_view_report_by_project_list
|
13
|
+
NEW ir.actions.act_window.view: hr_timesheet.timesheet_action_view_report_by_task_list
|
14
|
+
NEW ir.embedded.actions: hr_timesheet.project_embedded_action_timesheets
|
15
|
+
NEW ir.embedded.actions: hr_timesheet.project_embedded_action_timesheets_dashboard
|
16
|
+
NEW ir.exports: hr_timesheet.account_analytic_line_export_template
|
17
|
+
NEW ir.exports.line: hr_timesheet.account_analytic_line_export_template_line_date
|
18
|
+
NEW ir.exports.line: hr_timesheet.account_analytic_line_export_template_line_employee_id
|
19
|
+
NEW ir.exports.line: hr_timesheet.account_analytic_line_export_template_line_id
|
20
|
+
NEW ir.exports.line: hr_timesheet.account_analytic_line_export_template_line_name
|
21
|
+
NEW ir.exports.line: hr_timesheet.account_analytic_line_export_template_line_project_id
|
22
|
+
NEW ir.exports.line: hr_timesheet.account_analytic_line_export_template_line_task_id
|
23
|
+
NEW ir.exports.line: hr_timesheet.account_analytic_line_export_template_line_unit_amount
|
24
|
+
NEW ir.exports.line: hr_timesheet.project_task_export_template_line_allocated_hours
|
25
|
+
NEW ir.model.access: hr_timesheet.access_timesheets_analysis_report
|
26
|
+
DEL ir.model.access: hr_timesheet.access_timesheets_analysis_report_manager
|
27
|
+
DEL ir.model.access: hr_timesheet.access_timesheets_analysis_report_user
|
28
|
+
NEW ir.rule: hr_timesheet.timesheet_analysis_report_department_manager (noupdate)
|
29
|
+
NEW ir.ui.view: hr_timesheet.timesheet_report_subtask
|
30
|
+
NEW ir.ui.view: hr_timesheet.timesheets_analysis_report_form
|
31
|
+
NEW ir.ui.view: hr_timesheet.timesheets_analysis_report_list
|
32
|
+
NEW ir.ui.view: hr_timesheet.view_hr_timesheet_line_by_project
|
33
|
+
# NOTHING TO DO: handled by ORM
|
@@ -5,6 +5,7 @@ l10n_br / l10n_br.zip.range / city_id (many2one) : NEW re
|
|
5
5
|
l10n_br / l10n_br.zip.range / end (char) : NEW required
|
6
6
|
l10n_br / l10n_br.zip.range / start (char) : NEW required
|
7
7
|
l10n_br / res.city / l10n_br_zip_range_ids (one2many): NEW relation: l10n_br.zip.range
|
8
|
+
l10n_br_pix / res.partner.bank / proxy_type (False) : selection_keys added: [bakong_id_merchant, bakong_id_solo] (most likely nothing to do)
|
8
9
|
---XML records in module 'l10n_br'---
|
9
10
|
NEW ir.model.access: l10n_br.access_l10n_br_zip_range_group_manager
|
10
11
|
NEW ir.model.access: l10n_br.access_l10n_br_zip_range_group_user
|
@@ -0,0 +1,44 @@
|
|
1
|
+
---Models in module 'l10n_es_edi_verifactu'---
|
2
|
+
new model l10n_es_edi_verifactu.document
|
3
|
+
---Fields in module 'l10n_es_edi_verifactu'---
|
4
|
+
l10n_es_edi_verifactu / account.move / l10n_es_edi_verifactu_clave_regimen (selection): NEW selection_keys: function, hasdefault: compute
|
5
|
+
l10n_es_edi_verifactu / account.move / l10n_es_edi_verifactu_document_ids (one2many): NEW relation: l10n_es_edi_verifactu.document
|
6
|
+
l10n_es_edi_verifactu / account.move / l10n_es_edi_verifactu_refund_reason (selection): NEW selection_keys: ['R1', 'R2', 'R3', 'R4', 'R5']
|
7
|
+
l10n_es_edi_verifactu / account.move / l10n_es_edi_verifactu_state (selection): NEW selection_keys: ['accepted', 'cancelled', 'registered_with_errors', 'rejected'], isfunction: function, stored
|
8
|
+
l10n_es_edi_verifactu / account.move / l10n_es_edi_verifactu_substituted_entry_id (many2one): NEW relation: account.move
|
9
|
+
l10n_es_edi_verifactu / account.move / l10n_es_edi_verifactu_substitution_move_ids (one2many): NEW relation: account.move
|
10
|
+
l10n_es_edi_verifactu / account.tax / l10n_es_applicability (selection): NEW selection_keys: ['01', '02', '03']
|
11
|
+
l10n_es_edi_verifactu / certificate.certificate / scope (False) : NEW selection_keys: ['facturae', 'general', 'sii', 'tbai', 'verifactu'], mode: modify
|
12
|
+
l10n_es_edi_verifactu / l10n_es_edi_verifactu.document / chain_index (integer) : NEW
|
13
|
+
l10n_es_edi_verifactu / l10n_es_edi_verifactu.document / company_id (many2one) : NEW relation: res.company, required
|
14
|
+
l10n_es_edi_verifactu / l10n_es_edi_verifactu.document / document_type (selection) : NEW required, selection_keys: ['cancellation', 'submission']
|
15
|
+
l10n_es_edi_verifactu / l10n_es_edi_verifactu.document / errors (html) : NEW
|
16
|
+
l10n_es_edi_verifactu / l10n_es_edi_verifactu.document / json_attachment_id (many2one) : NEW relation: ir.attachment
|
17
|
+
l10n_es_edi_verifactu / l10n_es_edi_verifactu.document / move_id (many2one) : NEW relation: account.move
|
18
|
+
l10n_es_edi_verifactu / l10n_es_edi_verifactu.document / response_csv (char) : NEW
|
19
|
+
l10n_es_edi_verifactu / l10n_es_edi_verifactu.document / state (selection) : NEW selection_keys: ['accepted', 'registered_with_errors', 'rejected']
|
20
|
+
l10n_es_edi_verifactu / res.company / l10n_es_edi_verifactu_certificate_ids (one2many): NEW relation: certificate.certificate
|
21
|
+
l10n_es_edi_verifactu / res.company / l10n_es_edi_verifactu_chain_sequence_id (many2one): NEW relation: ir.sequence
|
22
|
+
l10n_es_edi_verifactu / res.company / l10n_es_edi_verifactu_next_batch_time (datetime): NEW
|
23
|
+
l10n_es_edi_verifactu / res.company / l10n_es_edi_verifactu_required (boolean): NEW
|
24
|
+
l10n_es_edi_verifactu / res.company / l10n_es_edi_verifactu_special_vat_regime (selection): NEW selection_keys: ['reagyp', 'recargo', 'simplified']
|
25
|
+
l10n_es_edi_verifactu / res.company / l10n_es_edi_verifactu_test_environment (boolean): NEW hasdefault: default
|
26
|
+
---XML records in module 'l10n_es_edi_verifactu'---
|
27
|
+
NEW ir.actions.act_window: l10n_es_edi_verifactu.l10n_es_edi_verifactu_certificate_action
|
28
|
+
NEW ir.cron: l10n_es_edi_verifactu.cron_verifactu_batch (noupdate)
|
29
|
+
NEW ir.model.access: l10n_es_edi_verifactu.access_l10n_es_edi_verifactu_document_readonly
|
30
|
+
NEW ir.ui.menu: l10n_es_edi_verifactu.menu_l10n_es_edi_verifactu_certificates
|
31
|
+
NEW ir.ui.menu: l10n_es_edi_verifactu.menu_l10n_es_edi_verifactu_root
|
32
|
+
NEW ir.ui.view: l10n_es_edi_verifactu.certificate_certificate_view_form
|
33
|
+
NEW ir.ui.view: l10n_es_edi_verifactu.certificate_certificate_view_search
|
34
|
+
NEW ir.ui.view: l10n_es_edi_verifactu.report_invoice_document
|
35
|
+
NEW ir.ui.view: l10n_es_edi_verifactu.res_config_settings_view_form
|
36
|
+
NEW ir.ui.view: l10n_es_edi_verifactu.view_account_invoice_filter
|
37
|
+
NEW ir.ui.view: l10n_es_edi_verifactu.view_account_move_filter
|
38
|
+
NEW ir.ui.view: l10n_es_edi_verifactu.view_account_move_reversal_inherit_l10n_es_edi_verifactu
|
39
|
+
NEW ir.ui.view: l10n_es_edi_verifactu.view_company_form
|
40
|
+
NEW ir.ui.view: l10n_es_edi_verifactu.view_invoice_tree
|
41
|
+
NEW ir.ui.view: l10n_es_edi_verifactu.view_l10n_es_edi_verifactu_document_form
|
42
|
+
NEW ir.ui.view: l10n_es_edi_verifactu.view_move_form_inherit_l10n_es_edi_verifactu
|
43
|
+
NEW ir.ui.view: l10n_es_edi_verifactu.view_move_tree
|
44
|
+
NEW ir.ui.view: l10n_es_edi_verifactu.view_tax_form_inherit_l10n_es_edi_verifactu
|
odoo/addons/openupgrade_scripts/scripts/l10n_es_edi_verifactu_pos/18.0.1.0/upgrade_analysis.txt
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
---Models in module 'l10n_es_edi_verifactu_pos'---
|
2
|
+
---Fields in module 'l10n_es_edi_verifactu_pos'---
|
3
|
+
l10n_es_edi_verifactu_pos / l10n_es_edi_verifactu.document / pos_order_id (many2one) : NEW relation: pos.order
|
4
|
+
l10n_es_edi_verifactu_pos / pos.order / l10n_es_edi_verifactu_document_ids (one2many): NEW relation: l10n_es_edi_verifactu.document
|
5
|
+
l10n_es_edi_verifactu_pos / pos.order / l10n_es_edi_verifactu_refund_reason (selection): NEW selection_keys: ['R1', 'R2', 'R3', 'R4', 'R5']
|
6
|
+
l10n_es_edi_verifactu_pos / pos.order / l10n_es_edi_verifactu_state (selection): NEW selection_keys: ['accepted', 'cancelled', 'registered_with_errors', 'rejected'], isfunction: function, stored
|
7
|
+
---XML records in module 'l10n_es_edi_verifactu_pos'---
|
8
|
+
NEW ir.model.access: l10n_es_edi_verifactu_pos.access_l10n_es_edi_verifactu_document
|
9
|
+
NEW ir.ui.view: l10n_es_edi_verifactu_pos.view_pos_order_filter
|
10
|
+
NEW ir.ui.view: l10n_es_edi_verifactu_pos.view_pos_order_form_inherit_l10n_es_pos_verifactu
|
11
|
+
NEW ir.ui.view: l10n_es_edi_verifactu_pos.view_pos_order_tree
|