diff --git a/addons/hr/models/hr_employee.py b/addons/hr/models/hr_employee.py index 4c6f4cbf43082f..2da6a5f0d87ec1 100644 --- a/addons/hr/models/hr_employee.py +++ b/addons/hr/models/hr_employee.py @@ -222,13 +222,9 @@ def _lang_get(self): } """ - permit_no = fields.Char('Work Permit No', groups="hr.group_hr_user", tracking=True) visa_no = fields.Char('Visa No', groups="hr.group_hr_user", tracking=True) visa_expire = fields.Date('Visa Expiration Date', groups="hr.group_hr_user", tracking=True) - work_permit_expiration_date = fields.Date('Work Permit Expiration Date', groups="hr.group_hr_user", tracking=True) has_work_permit = fields.Binary(string="Work Permit", groups="hr.group_hr_user") - work_permit_scheduled_activity = fields.Boolean(default=False, groups="hr.group_hr_user") - work_permit_name = fields.Char('work_permit_name', compute='_compute_work_permit_name', groups="hr.group_hr_user") certificate = fields.Selection(selection='_get_certificate_selection', string='Certificate Level', groups="hr.group_hr_user", tracking=True) study_field = fields.Char("Field of Study", groups="hr.group_hr_user", tracking=True) emergency_contact = fields.Char(groups="hr.group_hr_user", tracking=True) @@ -649,8 +645,7 @@ def _compute_split_legal_name(self): @api.depends('current_version_id') @api.depends_context('version_id') def _compute_version_id(self): - context_version_id = self.env.context.get('version_id', False) - context_version = self.env['hr.version'].browse(context_version_id).exists() if context_version_id else self.env['hr.version'] + context_version = self.env['hr.version'].browse(self.env.context.get('version_id', False)) for employee in self: if context_version.employee_id == self: @@ -1197,13 +1192,6 @@ def _compute_birthday_public_display_string(self): else: employee.birthday_public_display_string = "hidden" - @api.depends('name', 'permit_no') - def _compute_work_permit_name(self): - for employee in self: - name = employee.name.replace(' ', '_') + '_' if employee.name else '' - permit_no = '_' + employee.permit_no if employee.permit_no else '' - employee.work_permit_name = "%swork_permit%s" % (name, permit_no) - def _get_partner_count_depends(self): return ['user_id'] diff --git a/addons/hr/models/hr_version.py b/addons/hr/models/hr_version.py index 9e2b824741da36..f064d51f7b606e 100644 --- a/addons/hr/models/hr_version.py +++ b/addons/hr/models/hr_version.py @@ -88,6 +88,11 @@ def _get_hr_responsible_domain(self): ('other', 'Other'), ], groups="hr.group_hr_user", tracking=1, help="This is the legal sex as recognized by the state, used for official and statutory purposes.") + permit_no = fields.Char('Work Permit No', groups="hr.group_hr_user") + work_permit_expiration_date = fields.Date('Work Permit Expiration Date', groups="hr.group_hr_user") + work_permit_scheduled_activity = fields.Boolean(default=False, groups="hr.group_hr_user") + work_permit_name = fields.Char('work_permit_name', compute='_compute_work_permit_name', groups="hr.group_hr_user") + private_street = fields.Char(string="Private Street", groups="hr.group_hr_user", tracking=1) private_street2 = fields.Char(string="Private Street2", groups="hr.group_hr_user", tracking=1) private_city = fields.Char(string="Private City", groups="hr.group_hr_user", tracking=1) @@ -243,6 +248,13 @@ def _compute_allowed_country_state_ids(self): for version in versions_without_countries: version.allowed_country_state_ids = states + @api.depends('employee_id.name', 'permit_no') + def _compute_work_permit_name(self): + for version in self: + emp_name = version.employee_id.name.replace(' ', '_') + '_' if version.employee_id and version.employee_id.name else '' + permit_no = '_' + version.permit_no if version.permit_no else '' + version.work_permit_name = f"{emp_name}work_permit{permit_no}" + @api.constrains('employee_id', 'contract_date_start', 'contract_date_end') def _check_dates(self): version_read_group = self.env['hr.version'].sudo()._read_group( diff --git a/addons/hr/static/src/components/button_new_contract/button_new_contract.xml b/addons/hr/static/src/components/button_new_contract/button_new_contract.xml index c3109a1bfee67c..8ba725c044d98e 100644 --- a/addons/hr/static/src/components/button_new_contract/button_new_contract.xml +++ b/addons/hr/static/src/components/button_new_contract/button_new_contract.xml @@ -3,7 +3,7 @@ + t-ref="this.datetimePickerTargetRef" t-if="this.props.record.resId">New Contract diff --git a/addons/hr/tests/test_hr_version.py b/addons/hr/tests/test_hr_version.py index 2e6c241a4a615e..26190aa4d07201 100644 --- a/addons/hr/tests/test_hr_version.py +++ b/addons/hr/tests/test_hr_version.py @@ -523,27 +523,6 @@ def test_multi_edit_other_and_contract_date_sync(self): self.assertEqual(version.job_id.id, jobB.id) self.assertEqual(version.contract_date_end, date(2020, 9, 30)) - def test_delete_version(self): - employee = self.env['hr.employee'].create({ - 'name': 'John Doe', - 'date_version': '2020-01-01', - }) - v1 = employee.version_id - v2 = employee.create_version({ - 'date_version': '2021-01-01', - }) - v3 = employee.create_version({ - 'date_version': '2022-01-01', - }) - self.assertEqual(employee.current_version_id, v3) - - v3.unlink() - self.assertEqual(employee.current_version_id, v2) - v1.unlink() - self.assertEqual(employee.current_version_id, v2) - with self.assertRaises(ValidationError): - v2.unlink() - def test_multi_edit_multi_employees_no_contract(self): """ Test the multi-edit when there is one version per employee, without contract diff --git a/addons/hr/views/hr_employee_views.xml b/addons/hr/views/hr_employee_views.xml index 6bc745d2a06895..69fda10997f59c 100644 --- a/addons/hr/views/hr_employee_views.xml +++ b/addons/hr/views/hr_employee_views.xml @@ -383,7 +383,7 @@ to - +