diff options
| author | Thibault Delavallée <tde@odoo.com> | 2017-01-20 12:47:07 +0100 |
|---|---|---|
| committer | Thibault Delavallée <tde@odoo.com> | 2017-02-27 14:04:48 +0100 |
| commit | 9d092c77c95429abeb1528053a77dda262be6f79 (patch) | |
| tree | c233578be85d355ffe3b7b0f7ffb3f499cc933ba | |
| parent | 583b9d0088cab248e0bdb2010f55d9cd24c3b9d0 (diff) | |
[REF] hr: remove inherit from employee on resource and use resource mixin
| -rw-r--r-- | addons/hr/data/hr_demo.xml | 1 | ||||
| -rw-r--r-- | addons/hr/models/hr.py | 15 | ||||
| -rw-r--r-- | addons/hr/views/hr_views.xml | 2 | ||||
| -rw-r--r-- | addons/hr_attendance/models/hr_attendance.py | 10 | ||||
| -rw-r--r-- | addons/hr_holidays/models/hr_holidays.py | 2 | ||||
| -rw-r--r-- | addons/hr_payroll/data/hr_payroll_demo.xml | 2 |
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"/> |
