Skip to content

Commit 791bde9

Browse files
committed
[MIG] hr_recruitment_skills
1 parent 4537090 commit 791bde9

4 files changed

Lines changed: 147 additions & 1 deletion

File tree

docsource/modules180-190.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ Module coverage 18.0 -> 19.0
202202
+---------------------------------------------------+----------------------+-------------------------------------------------+
203203
| hr_recruitment |Done | |
204204
+---------------------------------------------------+----------------------+-------------------------------------------------+
205-
| hr_recruitment_skills | | |
205+
| hr_recruitment_skills |Done | |
206206
+---------------------------------------------------+----------------------+-------------------------------------------------+
207207
| hr_recruitment_sms |Nothing to do | |
208208
+---------------------------------------------------+----------------------+-------------------------------------------------+
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Copyright 2026 Hunki Enterprises BV
2+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
3+
4+
from openupgradelib import openupgrade
5+
6+
7+
@openupgrade.migrate()
8+
def migrate(env, version):
9+
openupgrade.load_data(
10+
env,
11+
"hr_recruitment_skills",
12+
"19.0.1.0/noupdate_changes.xml",
13+
)
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
# Copyright 2026 Hunki Enterprises BV
2+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
3+
4+
from openupgradelib import openupgrade, openupgrade_tools
5+
6+
copy_columns = {
7+
"hr_candidate_skill": [
8+
("candidate_id", None, None),
9+
("create_date", "valid_from", "date"),
10+
],
11+
}
12+
13+
renamed_fields = [
14+
("hr.applicant.skill", "hr_applicant_skill", "candidate_id", "applicant_id")
15+
]
16+
17+
renamed_models = [
18+
("hr.candidate.skill", "hr.applicant.skill"),
19+
]
20+
21+
renamed_tables = [
22+
("hr_candidate_skill", "hr_applicant_skill"),
23+
]
24+
25+
26+
def hr_applicant_skill(env):
27+
"""
28+
Set hr.applicant.skill#applicant_id (renamed candidate_id) from hr_applicant
29+
"""
30+
openupgrade.lift_constraints(env.cr, "hr_applicant_skill", "applicant_id")
31+
openupgrade.logged_query(
32+
env.cr,
33+
"""
34+
UPDATE hr_applicant_skill
35+
SET applicant_id=hr_applicant.id
36+
FROM hr_applicant
37+
WHERE hr_applicant.candidate_id=hr_applicant_skill.applicant_id
38+
""",
39+
)
40+
41+
42+
def hr_applicant_skill_ids(env):
43+
"""
44+
Pre-create and fill hr.applicant#skill_ids
45+
"""
46+
openupgrade.logged_query(
47+
env.cr,
48+
"""
49+
CREATE TABLE hr_applicant_hr_skill_rel (
50+
hr_applicant_id INTEGER NOT NULL,
51+
hr_skill_id INTEGER NOT NULL,
52+
PRIMARY KEY(hr_applicant_id, hr_skill_id)
53+
);
54+
COMMENT ON TABLE hr_applicant_hr_skill_rel IS
55+
'RELATION BETWEEN hr_applicant AND hr_skill';
56+
CREATE INDEX ON hr_applicant_hr_skill_rel
57+
(hr_skill_id, hr_applicant_id);
58+
""",
59+
)
60+
openupgrade.logged_query(
61+
env.cr,
62+
"""
63+
INSERT INTO hr_applicant_hr_skill_rel (hr_applicant_id, hr_skill_id)
64+
SELECT applicant_id, skill_id FROM hr_applicant_skill
65+
""",
66+
)
67+
68+
69+
@openupgrade.migrate()
70+
def migrate(env, version):
71+
openupgrade.copy_columns(env.cr, copy_columns)
72+
openupgrade.rename_models(env.cr, renamed_models)
73+
if openupgrade_tools.table_exists(env.cr, "hr_applicant_skill"):
74+
# if the database has been migrated from v17, this table can exist already
75+
renamed_tables[0:0] = [("hr_applicant_skill", None)]
76+
openupgrade.rename_tables(env.cr, renamed_tables)
77+
openupgrade.rename_fields(env, renamed_fields)
78+
hr_applicant_skill(env)
79+
hr_applicant_skill_ids(env)
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
---Models in module 'hr_recruitment_skills'---
2+
obsolete model hr.candidate.skill (renamed to hr.applicant.skill)
3+
new model hr.applicant.skill (renamed from hr.candidate.skill)
4+
# DONE: renamed in pre-migration
5+
6+
---Fields in module 'hr_recruitment_skills'---
7+
hr_recruitment_skills / hr.applicant / applicant_skill_ids (one2many): NEW relation: hr.applicant.skill
8+
# DONE: inverse of hr.applicant.skill#applicant_id
9+
10+
hr_recruitment_skills / hr.applicant / current_applicant_skill_ids (one2many): NEW relation: hr.applicant.skill, hasdefault: compute, stored: False
11+
# NOTHING TO DO: not stored
12+
13+
hr_recruitment_skills / hr.applicant / skill_ids (many2many) : is now stored
14+
hr_recruitment_skills / hr.applicant / skill_ids (many2many) : not related anymore
15+
hr_recruitment_skills / hr.applicant / skill_ids (many2many) : now a function
16+
hr_recruitment_skills / hr.applicant / skill_ids (many2many) : table is now 'hr_applicant_hr_skill_rel' ('False')
17+
# DONE: created and filled table in pre-migration
18+
19+
hr_recruitment_skills / hr.applicant.skill / applicant_id (many2one) : NEW relation: hr.applicant, required
20+
# DONE: renamed and adjusted in pre-migration
21+
22+
hr_recruitment_skills / hr.applicant.skill / display_warning_message (boolean): NEW
23+
# NOTHING TO DO: UI field, probably shouldn't be stored in the first palce
24+
25+
hr_recruitment_skills / hr.applicant.skill / valid_from (date) : NEW hasdefault: default
26+
# DONE: set to create_date as v18 doesn't have a concept of apllicant skill validity
27+
28+
hr_recruitment_skills / hr.applicant.skill / valid_to (date) : NEW
29+
# NOTHING TO DO
30+
31+
hr_recruitment_skills / hr.candidate / candidate_skill_ids (one2many): DEL relation: hr.candidate.skill
32+
hr_recruitment_skills / hr.candidate / skill_ids (many2many) : DEL relation: hr.skill
33+
hr_recruitment_skills / hr.candidate.skill / _order : _order is now 'skill_type_id, skill_level_id desc' ('skill_level_id')
34+
hr_recruitment_skills / hr.candidate.skill / candidate_id (many2one) : DEL relation: hr.candidate, required
35+
# NOTHING TO DO: obsolete models
36+
37+
hr_recruitment_skills / hr.job / skill_ids (many2many) : module is now 'hr_skills' ('hr_recruitment_skills')
38+
# NOTHING TO DO: handled in hr_skills
39+
40+
---XML records in module 'hr_recruitment_skills'---
41+
NEW ir.actions.act_window: hr_recruitment_skills.action_find_matching_job
42+
NEW ir.model.access: hr_recruitment_skills.access_hr_applicant_skill_interviewer
43+
NEW ir.model.access: hr_recruitment_skills.access_hr_job_skill_recruitment_user
44+
DEL ir.model.access: hr_recruitment_skills.access_hr_candidate_skill_interviewer
45+
DEL ir.model.constraint: hr_recruitment_skills.constraint_hr_candidate_skill__unique_skill
46+
NEW ir.ui.view: hr_recruitment_skills.crm_case_tree_view_inherit_hr_recruitment_skills
47+
NEW ir.ui.view: hr_recruitment_skills.crm_case_tree_view_job
48+
NEW ir.ui.view: hr_recruitment_skills.hr_job_list_inherit_hr_recruitment_skills
49+
NEW ir.ui.view: hr_recruitment_skills.view_hr_job_form
50+
DEL ir.ui.view: hr_recruitment_skills.hr_candidate_view_form
51+
DEL ir.ui.view: hr_recruitment_skills.hr_candidate_view_search
52+
DEL ir.ui.view: hr_recruitment_skills.hr_candidate_view_tree
53+
DEL ir.ui.view: hr_recruitment_skills.hr_job_form_inherit_hr_recruitment_skills
54+
# NOTHING TO DO

0 commit comments

Comments
 (0)