[IMP] sale_timesheet: group task by Sales Order
From task stat button from SO form view, it is relevant to see the task of the SO only. So, we add a filter to do so. AS the kanban task use a read_group, it is required to store the sale_order_id field on task.
This commit is contained in:
@@ -73,6 +73,7 @@ class ProjectTask(models.Model):
|
||||
return sale_line_id
|
||||
|
||||
sale_line_id = fields.Many2one('sale.order.line', 'Sales Order Item', default=_default_sale_line_id, domain="[('is_service', '=', True), ('order_partner_id', '=', partner_id), ('is_expense', '=', False)]")
|
||||
sale_order_id = fields.Many2one('sale.order', 'Sales Order', related='sale_line_id.order_id', store=True, readonly=True)
|
||||
|
||||
@api.onchange('project_id')
|
||||
def _onchange_project(self):
|
||||
|
||||
@@ -72,11 +72,15 @@ class SaleOrder(models.Model):
|
||||
action['context'] = safe_eval(action['context'], eval_context)
|
||||
else:
|
||||
action = self.env.ref('project.action_view_task').read()[0]
|
||||
action['context'] = {} # erase default context to avoid default filter
|
||||
if len(self.tasks_ids) > 1: # cross project kanban task
|
||||
action['views'] = [[False, 'kanban'], [list_view_id, 'tree'], [form_view_id, 'form'], [False, 'graph'], [False, 'calendar'], [False, 'pivot'], [False, 'graph']]
|
||||
elif len(self.tasks_ids) == 1: # single task -> form view
|
||||
action['views'] = [(form_view_id, 'form')]
|
||||
action['res_id'] = self.tasks_ids.id
|
||||
# filter on the task of the current SO
|
||||
action.setdefault('context', {})
|
||||
action['context'].update({'search_default_sale_order_id': self.id})
|
||||
return action
|
||||
|
||||
@api.multi
|
||||
|
||||
@@ -46,6 +46,18 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="project_task_view_search" model="ir.ui.view">
|
||||
<field name="name">project.task.search.inherit</field>
|
||||
<field name="model">project.task</field>
|
||||
<field name="inherit_id" ref="project.view_task_search_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='stage_id']" position="after">
|
||||
<field name="sale_line_id"/>
|
||||
<field name="sale_order_id"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="project_task_view_form_inherit_sale_timesheet" model="ir.ui.view">
|
||||
<field name="name">project.task.form.inherit.timesheet</field>
|
||||
<field name="model">project.task</field>
|
||||
|
||||
Reference in New Issue
Block a user