Skip to content

Commit

Permalink
[8.0.1.2.0] hr_attendance_overtime_request
Browse files Browse the repository at this point in the history
* Add manager_id field on overtime request
* Add department_id field
* Add whole record rule system
  • Loading branch information
andhit-r committed Jun 5, 2018
1 parent 527fb68 commit 31d286f
Show file tree
Hide file tree
Showing 7 changed files with 141 additions and 9 deletions.
5 changes: 4 additions & 1 deletion hr_attendance_overtime_request/__openerp__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{
"name": "Attendance Overtime Request",
"version": "8.0.1.1.0",
"version": "8.0.1.2.0",
"category": "Human Resources",
"website": "https://opensynergy-indonesia.com",
"author": "OpenSynergy Indonesia",
Expand All @@ -14,7 +14,10 @@
],
"data": [
"menu.xml",
"security/ir_module_category_data.xml",
"security/res_groups_data.xml",
"security/ir.model.access.csv",
"security/ir_rule_data.xml",
"data/ir_sequence_data.xml",
"views/hr_overtime_request_views.xml",
"views/hr_overtime_config_setting_views.xml",
Expand Down
29 changes: 23 additions & 6 deletions hr_attendance_overtime_request/models/hr_overtime_request.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,12 +71,7 @@ def _compute_policy(self):
string="Company",
comodel_name="res.company",
default=lambda self: self._default_company_id(),
readonly=True,
states={
"draft": [
("readonly", False),
],
},
readonly=False,
)
employee_id = fields.Many2one(
string="Employee",
Expand All @@ -89,6 +84,16 @@ def _compute_policy(self):
],
},
)
department_id = fields.Many2one(
string="Department",
comodel_name="hr.department",
readonly=False,
)
manager_id = fields.Many2one(
string="Manager",
comodel_name="hr.employee",
readonly=False,
)
date_start = fields.Datetime(
string="Date Start",
required=True,
Expand Down Expand Up @@ -266,3 +271,15 @@ def _check_availability(self):
]
if obj_overtime.search_count(criteria) > 0:
raise UserError(_("Employe already has an overtime request"))

@api.onchange("employee_id")
def onchange_department_id(self):
self.department_id = False
if self.employee_id:
self.department_id = self.employee_id.department_id

@api.onchange("employee_id")
def onchange_manager_id(self):
self.manager_id = False
if self.employee_id:
self.manager_id = self.employee_id.parent_id
4 changes: 2 additions & 2 deletions hr_attendance_overtime_request/security/ir.model.access.csv
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
hr_overtime_request_employee,hr.overtime_request - employee,model_hr_overtime_request,base.group_user,1,1,1,1
hr_overtime_request_all,hr.overtime_request - all,model_hr_overtime_request,,1,0,0,0
hr_overtime_request_employee,hr.overtime_request - employee,model_hr_overtime_request,base.group_user,1,0,0,0
hr_overtime_request_user,hr.overtime_request - overtime user,model_hr_overtime_request,hr_attendance_overtime_request.group_overtime_user,1,1,1,1
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?xml version="1.0"?>
<openerp>
<data>

<record id="module_attendance_overtime" model="ir.module.category">
<field name="name">Overtime Request</field>
</record>

</data>
</openerp>
65 changes: 65 additions & 0 deletions hr_attendance_overtime_request/security/ir_rule_data.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2015 Eficent Business and IT Consulting Services S.L.
Serpent Consulting Services Pvt. Ltd.
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl-3.0) -->
<openerp>
<data noupdate="1">

<record id="ir_rule_overtime_request_user"
model="ir.rule">
<field name="model_id" ref="hr_attendance_overtime_request.model_hr_overtime_request"/>
<field name="domain_force">[
('employee_id.user_id.id','=',user.id),
]</field>
<field name="name">Overtime Request Rule for User</field>
<field name="groups" eval="[(4, ref('group_overtime_user'))]"/>
<field eval="1" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_read"/>
<field eval="1" name="perm_create"/>
</record>

<record id="ir_rule_overtime_request_supervisor"
model="ir.rule">
<field name="model_id" ref="hr_attendance_overtime_request.model_hr_overtime_request"/>
<field name="domain_force">[
('manager_id.id','child_of',user.employee_ids[0].id),
]</field>
<field name="name">Overtime Request Rule for Manager</field>
<field name="groups" eval="[(4, ref('group_overtime_supervisor'))]"/>
<field eval="1" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_read"/>
<field eval="1" name="perm_create"/>
</record>

<record id="ir_rule_overtime_request_manager"
model="ir.rule">
<field name="model_id" ref="hr_attendance_overtime_request.model_hr_overtime_request"/>
<field name="domain_force">[
('department_id.manager_id.id','child_of',user.employee_ids[0].id),
]</field>
<field name="name">Overtime Request Rule for Department</field>
<field name="groups" eval="[(4, ref('group_overtime_department'))]"/>
<field eval="1" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_read"/>
<field eval="1" name="perm_create"/>
</record>

<record id="ir_rule_overtime_request_company"
model="ir.rule">
<field name="model_id" ref="hr_attendance_overtime_request.model_hr_overtime_request"/>
<field name="domain_force">[
('company_id.id','child_of',user.company_id.id),
]</field>
<field name="name">Overtime Request Rule for Company</field>
<field name="groups" eval="[(4, ref('group_overtime_company'))]"/>
<field eval="1" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_read"/>
<field eval="1" name="perm_create"/>
</record>

</data>
</openerp>
31 changes: 31 additions & 0 deletions hr_attendance_overtime_request/security/res_groups_data.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<?xml version="1.0"?>
<openerp>
<data>

<record id="group_overtime_user" model="res.groups">
<field name="name">User</field>
<field name="category_id" ref="hr_attendance_overtime_request.module_attendance_overtime"/>
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
</record>

<record id="group_overtime_supervisor" model="res.groups">
<field name="name">Supervisor</field>
<field name="category_id" ref="hr_attendance_overtime_request.module_attendance_overtime"/>
<field name="implied_ids" eval="[(4, ref('group_overtime_user'))]"/>
</record>

<record id="group_overtime_department" model="res.groups">
<field name="name">Department</field>
<field name="category_id" ref="hr_attendance_overtime_request.module_attendance_overtime"/>
<field name="implied_ids" eval="[(4, ref('group_overtime_supervisor'))]"/>
</record>

<record id="group_overtime_company" model="res.groups">
<field name="name">Company</field>
<field name="category_id" ref="hr_attendance_overtime_request.module_attendance_overtime"/>
<field name="implied_ids" eval="[(4, ref('group_overtime_department'))]"/>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
</record>

</data>
</openerp>
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@
<group name="group_1_1" colspan="1" col="2">
<field name="company_id" groups="base.group_multi_company"/>
<field name="employee_id"/>
<field name="department_id" groups="base.group_system"/>
<field name="manager_id" groups="base.group_system"/>
</group>
<group name="group_1_2" colspan="1" col="2">
<field name="date_start"/>
Expand Down Expand Up @@ -63,6 +65,8 @@
<field name="name"/>
<field name="company_id" groups="base.group_multi_company"/>
<field name="employee_id"/>
<field name="department_id" groups="base.group_system"/>
<field name="manager_id" groups="base.group_system"/>
<field name="date_start"/>
<field name="date_end"/>
<field name="overtime_hour" widget="float_time"/>
Expand All @@ -79,6 +83,8 @@
<field name="name"/>
<field name="company_id" groups="base.group_multi_company"/>
<field name="employee_id"/>
<field name="department_id" groups="base.group_system"/>
<field name="manager_id" groups="base.group_system"/>
<field name="date_start"/>
<field name="date_end"/>
<field name="state"/>
Expand Down

0 comments on commit 31d286f

Please sign in to comment.