summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThibault Delavallée <tde@odoo.com>2017-01-20 12:47:07 +0100
committerThibault Delavallée <tde@odoo.com>2017-02-27 14:04:48 +0100
commit9d092c77c95429abeb1528053a77dda262be6f79 (patch)
treec233578be85d355ffe3b7b0f7ffb3f499cc933ba
parent583b9d0088cab248e0bdb2010f55d9cd24c3b9d0 (diff)
[REF] hr: remove inherit from employee on resource and use resource mixin
-rw-r--r--addons/hr/data/hr_demo.xml1
-rw-r--r--addons/hr/models/hr.py15
-rw-r--r--addons/hr/views/hr_views.xml2
-rw-r--r--addons/hr_attendance/models/hr_attendance.py10
-rw-r--r--addons/hr_holidays/models/hr_holidays.py2
-rw-r--r--addons/hr_payroll/data/hr_payroll_demo.xml2
6 files changed, 14 insertions, 18 deletions
diff --git a/addons/hr/data/hr_demo.xml b/addons/hr/data/hr_demo.xml
index 7eaf504d9e9..2f9c607d35f 100644
--- a/addons/hr/data/hr_demo.xml
+++ b/addons/hr/data/hr_demo.xml
@@ -137,7 +137,6 @@ If you have development competencies, we can propose you specific traineeships</
<record id="employee_root" model="hr.employee">
<field name="name">Pieter Parker</field>
- <field name="calendar_id" ref="resource.resource_calendar_std"/>
<field name="work_location">Building 1, Second Floor</field>
<field name="work_phone">+3281813700</field>
<field name="work_email">pieter@openerp.com</field>
diff --git a/addons/hr/models/hr.py b/addons/hr/models/hr.py
index 29640df0444..bf325452bfb 100644
--- a/addons/hr/models/hr.py
+++ b/addons/hr/models/hr.py
@@ -93,12 +93,10 @@ class Job(models.Model):
class Employee(models.Model):
-
_name = "hr.employee"
_description = "Employee"
- _order = 'name_related'
- _inherits = {'resource.resource': "resource_id"}
- _inherit = ['mail.thread']
+ _order = 'name'
+ _inherit = ['mail.thread', 'resource.mixin']
_mail_post_access = 'read'
@@ -107,8 +105,11 @@ class Employee(models.Model):
image_path = get_module_resource('hr', 'static/src/img', 'default_image.png')
return tools.image_resize_image_big(open(image_path, 'rb').read().encode('base64'))
- # we need a related field in order to be able to sort the employee by name
- name_related = fields.Char(related='resource_id.name', string="Resource Name", readonly=True, store=True)
+ # resource
+ name = fields.Char(related='resource_id.name', store=True, oldname='name_related')
+ user_id = fields.Many2one('res.users', 'User', related='resource_id.user_id')
+ active = fields.Boolean('Active', related='resource_id.active', default=True, store=True)
+
country_id = fields.Many2one('res.country', string='Nationality (Country)')
birthday = fields.Date('Date of Birth')
ssnid = fields.Char('SSN No', help='Social Security Number')
@@ -138,8 +139,6 @@ class Employee(models.Model):
parent_id = fields.Many2one('hr.employee', string='Manager')
category_ids = fields.Many2many('hr.employee.category', 'employee_category_rel', 'emp_id', 'category_id', string='Tags')
child_ids = fields.One2many('hr.employee', 'parent_id', string='Subordinates')
- resource_id = fields.Many2one('resource.resource', string='Resource',
- ondelete='cascade', required=True, auto_join=True)
coach_id = fields.Many2one('hr.employee', string='Coach')
job_id = fields.Many2one('hr.job', string='Job Title')
passport_id = fields.Char('Passport No')
diff --git a/addons/hr/views/hr_views.xml b/addons/hr/views/hr_views.xml
index 7c50ccc1553..60c5af9d8ac 100644
--- a/addons/hr/views/hr_views.xml
+++ b/addons/hr/views/hr_views.xml
@@ -69,7 +69,7 @@
<field name="job_id"/>
<field name="parent_id"/>
<field name="coach_id"/>
- <field name="calendar_id"/>
+ <field name="resource_calendar_id"/>
</group>
</group>
<field name="notes" placeholder="Other Information ..." colspan="4"/>
diff --git a/addons/hr_attendance/models/hr_attendance.py b/addons/hr_attendance/models/hr_attendance.py
index f078b6037fd..9ad4ef499e7 100644
--- a/addons/hr_attendance/models/hr_attendance.py
+++ b/addons/hr_attendance/models/hr_attendance.py
@@ -27,12 +27,12 @@ class HrAttendance(models.Model):
for attendance in self:
if not attendance.check_out:
result.append((self.id, _("%(empl_name)s from %(check_in)s") % {
- 'empl_name': self.employee_id.name_related,
+ 'empl_name': self.employee_id.name,
'check_in': fields.Datetime.to_string(fields.Datetime.context_timestamp(self, fields.Datetime.from_string(self.check_in))),
}))
else:
result.append((self.id, _("%(empl_name)s from %(check_in)s to %(check_out)s") % {
- 'empl_name': self.employee_id.name_related,
+ 'empl_name': self.employee_id.name,
'check_in': fields.Datetime.to_string(fields.Datetime.context_timestamp(self, fields.Datetime.from_string(self.check_in))),
'check_out': fields.Datetime.to_string(fields.Datetime.context_timestamp(self, fields.Datetime.from_string(self.check_out))),
}))
@@ -70,7 +70,7 @@ class HrAttendance(models.Model):
], order='check_in desc', limit=1)
if last_attendance_before_check_in and last_attendance_before_check_in.check_out and last_attendance_before_check_in.check_out >= attendance.check_in:
raise exceptions.ValidationError(_("Cannot create new attendance record for %(empl_name)s, the employee was already checked in on %(datetime)s") % {
- 'empl_name': attendance.employee_id.name_related,
+ 'empl_name': attendance.employee_id.name,
'datetime': fields.Datetime.to_string(fields.Datetime.context_timestamp(self, fields.Datetime.from_string(attendance.check_in))),
})
@@ -83,7 +83,7 @@ class HrAttendance(models.Model):
])
if no_check_out_attendances:
raise exceptions.ValidationError(_("Cannot create new attendance record for %(empl_name)s, the employee hasn't checked out since %(datetime)s") % {
- 'empl_name': attendance.employee_id.name_related,
+ 'empl_name': attendance.employee_id.name,
'datetime': fields.Datetime.to_string(fields.Datetime.context_timestamp(self, fields.Datetime.from_string(no_check_out_attendances.check_in))),
})
else:
@@ -96,7 +96,7 @@ class HrAttendance(models.Model):
], order='check_in desc', limit=1)
if last_attendance_before_check_out and last_attendance_before_check_in != last_attendance_before_check_out:
raise exceptions.ValidationError(_("Cannot create new attendance record for %(empl_name)s, the employee was already checked in on %(datetime)s") % {
- 'empl_name': attendance.employee_id.name_related,
+ 'empl_name': attendance.employee_id.name,
'datetime': fields.Datetime.to_string(fields.Datetime.context_timestamp(self, fields.Datetime.from_string(last_attendance_before_check_out.check_in))),
})
diff --git a/addons/hr_holidays/models/hr_holidays.py b/addons/hr_holidays/models/hr_holidays.py
index 84a37f09c9a..b39068cb866 100644
--- a/addons/hr_holidays/models/hr_holidays.py
+++ b/addons/hr_holidays/models/hr_holidays.py
@@ -391,7 +391,7 @@ class Holidays(models.Model):
'holiday_id': leave.id,
'date_to': leave.date_to,
'resource_id': leave.employee_id.resource_id.id,
- 'calendar_id': leave.employee_id.resource_id.calendar_id.id
+ 'calendar_id': leave.employee_id.resource_calendar_id.id
})
return True
diff --git a/addons/hr_payroll/data/hr_payroll_demo.xml b/addons/hr_payroll/data/hr_payroll_demo.xml
index 8abbf155d6e..e025ed9faec 100644
--- a/addons/hr_payroll/data/hr_payroll_demo.xml
+++ b/addons/hr_payroll/data/hr_payroll_demo.xml
@@ -127,11 +127,9 @@
<record id="hr_employee_payroll" model="hr.employee">
<field eval="0" name="manager"/>
- <field eval="100" name="time_efficiency"/>
<field name="company_id" ref="base.main_company"/>
<field eval="1" name="active"/>
<field name="name">Roger Scott</field>
- <field name="resource_type">user</field>
<field name="work_location">Building 1, Second Floor</field>
<field name="work_phone">+3282823500</field>
<field name="image" type="base64" file="hr_payroll/static/img/hr_employee_payroll-image.jpg"/>