From b2b36131853033e6f9e638e4e40ae5e92a14fa2e Mon Sep 17 00:00:00 2001 From: "Thomas Lefebvre (thle)" Date: Wed, 30 Aug 2023 10:35:49 +0200 Subject: [PATCH] [FIX] hr: add a name for work permit file Issue: ------ When adding a file to an employee's work permit ("Private Information tab"), the file name is the "value" of the file. This is not meaningful for the user who will download the file. Solution: --------- Use the `filename` attribute to determine the field of `hr.employee` to be used to get the file name. As the original file name doesn't exist in an existing field, we can use a "generic" file name with a non-stored computed field. opw-3458842 closes odoo/odoo#133981 X-original-commit: 2f49ec86fcd8191f92153069ae242c329a5cdf0c Signed-off-by: Sofie Gvaladze (sgv) Signed-off-by: Thomas Lefebvre (thle) --- addons/hr/models/hr_employee.py | 8 ++++++++ addons/hr/views/hr_employee_views.xml | 3 ++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/addons/hr/models/hr_employee.py b/addons/hr/models/hr_employee.py index 50a96da25b2..1926f3b4ea9 100644 --- a/addons/hr/models/hr_employee.py +++ b/addons/hr/models/hr_employee.py @@ -94,6 +94,7 @@ class HrEmployeePrivate(models.Model): 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') additional_note = fields.Text(string='Additional Note', groups="hr.group_hr_user", tracking=True) certificate = fields.Selection([ ('graduate', 'Graduate'), @@ -176,6 +177,13 @@ class HrEmployeePrivate(models.Model): employee[avatar_field] = avatar super(HrEmployeePrivate, self.browse(employee_wo_user_or_image_ids))._compute_avatar(avatar_field, image_field) + @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 action_create_user(self): self.ensure_one() if self.user_id: diff --git a/addons/hr/views/hr_employee_views.xml b/addons/hr/views/hr_employee_views.xml index dccd0295b59..82148005032 100644 --- a/addons/hr/views/hr_employee_views.xml +++ b/addons/hr/views/hr_employee_views.xml @@ -179,7 +179,8 @@ - + +