diff --git a/addons/sale_timesheet/models/project.py b/addons/sale_timesheet/models/project.py
index 653dbf38a25..eb5375f28b1 100644
--- a/addons/sale_timesheet/models/project.py
+++ b/addons/sale_timesheet/models/project.py
@@ -286,23 +286,14 @@ class Project(models.Model):
def action_billable_time_button(self):
self.ensure_one()
- action = self.env["ir.actions.actions"]._for_xml_id("hr_timesheet.timesheet_action_all")
+ action = self.env["ir.actions.actions"]._for_xml_id("sale_timesheet.timesheet_action_from_sales_order_item")
action.update({
'context': {
'grid_range': 'week',
'search_default_groupby_timesheet_invoice_type': True,
- 'pivot_row_groupby': ['date:month'],
'default_project_id': self.id,
},
'domain': [('project_id', '=', self.id)],
- 'view_mode': 'tree,kanban,pivot,graph,form',
- 'views': [
- [self.env.ref('hr_timesheet.timesheet_view_tree_user').id, 'tree'],
- [self.env.ref('hr_timesheet.view_kanban_account_analytic_line').id, 'kanban'],
- [self.env.ref('sale_timesheet.view_hr_timesheet_line_pivot_billing_rate').id, 'pivot'],
- [self.env.ref('hr_timesheet.view_hr_timesheet_line_graph_all').id, 'graph'],
- [self.env.ref('hr_timesheet.timesheet_view_form_user').id, 'form'],
- ],
})
return action
@@ -310,10 +301,18 @@ class Project(models.Model):
self.ensure_one()
if section_name in ['billable_fixed', 'billable_time', 'billable_milestones', 'billable_manual', 'non_billable']:
action = self.action_billable_time_button()
- action['name'] = _('Timesheets')
if domain:
action['domain'] = expression.AND([[('project_id', '=', self.id)], domain])
action['context'].update(search_default_groupby_timesheet_invoice_type=False, **self.env.context)
+ pivot_view = False
+ if section_name == 'billable_time':
+ pivot_view = self.env.ref('sale_timesheet.view_hr_timesheet_pivot_view_per_invoice').id
+ else:
+ pivot_view = self.env.ref('sale_timesheet.timesheet_view_pivot_revenue').id
+ action['views'] = [
+ (view_id, view_type) if view_type != 'pivot' else (pivot_view, view_type)
+ for view_id, view_type in action['views']
+ ]
if res_id:
if 'views' in action:
action['views'] = [
@@ -322,8 +321,7 @@ class Project(models.Model):
if view_type == 'form'
] or [False, 'form']
action['view_mode'] = 'form'
- if res_id:
- action['res_id'] = res_id
+ action['res_id'] = res_id
return action
return super().action_profitability_items(section_name, domain, res_id)
diff --git a/addons/sale_timesheet/views/hr_timesheet_views.xml b/addons/sale_timesheet/views/hr_timesheet_views.xml
index b7fb9c91d48..ce675a38a6f 100644
--- a/addons/sale_timesheet/views/hr_timesheet_views.xml
+++ b/addons/sale_timesheet/views/hr_timesheet_views.xml
@@ -59,6 +59,7 @@
+
@@ -68,6 +69,7 @@
account.analytic.line
+
@@ -75,6 +77,18 @@
+
+ account.analytic.line.pivot.per.invoice
+ account.analytic.line
+
+ primary
+
+
+ timesheet_invoice_id
+
+
+
+