Skip to content

Commit 3476356

Browse files
committed
[IMP] hr_skills : manager are able to see his subordinates's skill's history
With this commit, even if you don't have right in Employee application, you are able to see your subordinates's skill's history. This improvment will help manager to have a better idea of his subordinates's improvment. closes odoo#158525 Task: 3792519 Signed-off-by: Bertrand Dossogne (bedo) <[email protected]>
1 parent 3bdd7fd commit 3476356

File tree

3 files changed

+32
-1
lines changed

3 files changed

+32
-1
lines changed

addons/hr_skills/security/hr_skills_security.xml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,20 @@
5151
<field name="groups" eval="[(4,ref('base.group_user'))]"/>
5252
</record>
5353

54+
<record id="hr_employee_skill_log_hr_user_rule" model="ir.rule">
55+
<field name="name">Employee Skill History: HR user : read all</field>
56+
<field name="model_id" ref="model_hr_employee_skill_log"/>
57+
<field name="domain_force">[(1, '=', 1)]</field>
58+
<field name="groups" eval="[(4, ref('hr.group_hr_user'))]"/>
59+
</record>
60+
61+
<record id="hr_employee_skill_log_manager_rule" model="ir.rule">
62+
<field name="name">Employee Skill History: employee's manager : read all</field>
63+
<field name="model_id" ref="model_hr_employee_skill_log"/>
64+
<field name="domain_force">[('employee_id.id', 'child_of', user.employee_ids.ids)]</field>
65+
<field name="groups" eval="[(4, ref('base.group_user'))]"/>
66+
</record>
67+
5468
<record id="hr_employee_skill_report_multicompany" model="ir.rule">
5569
<field name="name">Employee Skill Report: Multi-Company Rule</field>
5670
<field name="model_id" ref="model_hr_employee_skill_report"/>

addons/hr_skills/security/ir.model.access.csv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,5 @@ access_hr_employee_skill,hr.employee.skill,model_hr_employee_skill,hr.group_hr_u
1313
access_hr_employee_skill_employee,hr.employee.skill,model_hr_employee_skill,base.group_user,1,1,1,1
1414
access_hr_employee_skill_report,hr.employee.skill.report,model_hr_employee_skill_report,hr.group_hr_user,1,0,0,0
1515
access_hr_employee_skill_log,hr.employee.skill.log,model_hr_employee_skill_log,hr.group_hr_user,1,1,1,0
16+
access_hr_employee_skill_log_manager,hr.employee.skill.log,model_hr_employee_skill_log,base.group_user,1,0,0,0
1617
access_hr_employee_cv_wizard,access_hr_employee_cv_wizard,hr_skills.model_hr_employee_cv_wizard,base.group_user,1,1,1,0

addons/hr_skills/static/src/fields/skills_one2many/skills_one2many.js

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
} from "@web/views/fields/relational_utils";
88
import { registry } from "@web/core/registry";
99
import { _t } from "@web/core/l10n/translation";
10+
import { user } from "@web/core/user";
1011
import { CommonSkillsListRenderer } from "../../views/skills_list_renderer";
1112
import { useService } from '@web/core/utils/hooks';
1213
import { onWillStart } from "@odoo/owl";
@@ -22,6 +23,13 @@ export class SkillsListRenderer extends CommonSkillsListRenderer {
2223
onWillStart(async () => {
2324
const res = await this.orm.searchCount('hr.skill', []);
2425
this.anySkills = res > 0;
26+
[this.user] = await this.orm.read("res.users", [user.userId], ["employee_ids"]);
27+
this.IsHrUser = await user.hasGroup("hr.group_hr_user");
28+
this.userSubordinates = (await this.orm.searchRead(
29+
"hr.employee",
30+
[["id", "child_of", this.user.employee_ids]],
31+
["id"]
32+
)).map((record) => record["id"]);
2533
});
2634
}
2735

@@ -62,7 +70,15 @@ export class SkillsListRenderer extends CommonSkillsListRenderer {
6270
}
6371

6472
get showTimeline() {
65-
return !this.props.list.context.no_timeline;
73+
return this.SkillsRight && !this.props.list.context.no_timeline;
74+
}
75+
76+
get SkillsRight() {
77+
let isSubordinate = false;
78+
if (this.env.model.root.data.employee_id) {
79+
isSubordinate = this.userSubordinates.includes(this.env.model.root.data.employee_id[0]);
80+
}
81+
return this.IsHrUser || isSubordinate;
6682
}
6783
}
6884

0 commit comments

Comments
 (0)