[FIX] hr_timesheet : fix timesheet visibility on portal

If a portal user was a customer but not a follower of a project
he didn't have access to the timesheets linked to the project.

Task-2299286

closes odoo/odoo#59252

X-original-commit: 13fc0ab18eb1e1d4ba47b7a1e66cd5079d692d8b
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
This commit is contained in:
fw-bot
2020-10-06 11:21:38 +00:00
committed by jdoutreloux
parent 9b0bc31177
commit 06dc4e20e3
2 changed files with 6 additions and 2 deletions
+2 -1
View File
@@ -125,10 +125,11 @@ class AccountAnalyticLine(models.Model):
def _timesheet_get_portal_domain(self):
return ['&',
'|', '|',
'|', '|', '|',
('task_id.project_id.message_partner_ids', 'child_of', [self.env.user.partner_id.commercial_partner_id.id]),
('task_id.message_partner_ids', 'child_of', [self.env.user.partner_id.commercial_partner_id.id]),
('task_id.project_id.allowed_portal_user_ids', 'child_of', [self.env.user.id]),
('task_id.allowed_user_ids', 'in', [self.env.user.id]),
('task_id.project_id.privacy_visibility', '=', 'portal')]
def _timesheet_preprocess(self, vals):
+4 -1
View File
@@ -75,7 +75,9 @@ class SaleOrder(models.Model):
if action.get('context'):
eval_context = self.env['ir.actions.actions']._get_eval_context()
eval_context.update({'active_id': task_projects.id})
action['context'] = safe_eval(action['context'], eval_context)
action_context = safe_eval(action['context'], eval_context)
action_context.update(eval_context)
action['context'] = action_context
else:
action = self.env["ir.actions.actions"]._for_xml_id("project.action_view_task")
action['context'] = {} # erase default context to avoid default filter
@@ -202,6 +204,7 @@ class SaleOrderLine(models.Model):
# duplicating a project doesn't set the SO on sub-tasks
project.tasks.filtered(lambda task: task.parent_id != False).write({
'sale_line_id': self.id,
'sale_order_id': self.order_id,
})
else:
project = self.env['project.project'].create(values)