diff --git a/sub_project/models/sub_project.py b/sub_project/models/sub_project.py index 18b8c91..ae52b6d 100755 --- a/sub_project/models/sub_project.py +++ b/sub_project/models/sub_project.py @@ -9,6 +9,25 @@ class SubProject(models.Model): sub_project = fields.Many2many('project.project', 'project_subproject_rel', 'project_id', 'id', domain="[('is_sub_project', '=', True),('parent_project', '=', False)]", string='Sub Project') parent_project = fields.Many2one('project.project', domain="[('is_sub_project', '=', False)]", string='Parent Project') + total_timesheet_time_sub_project = fields.Integer(compute='_compute_total_timesheet_time_sub_project') + + @api.depends('timesheet_ids') + def _compute_total_timesheet_time_sub_project(self): + for project in self: + total_time = 0.0 + value = project.timesheet_ids.search([('sub_project', '!=', False)]) + for timesheet in value: + total_time += timesheet.unit_amount * timesheet.product_uom_id.factor_inv + # Now convert to the proper unit of measure set in the settings + total_time *= project.timesheet_encode_uom_id.factor + #project.total_timesheet_time_sub_project = int(round(total_time)) + project.total_timesheet_time_sub_project = total_time + + def action_view_custom_sub_project(self): + action = self.env["ir.actions.actions"]._for_xml_id("hr_timesheet.timesheet_action_all") + action['domain'] = [('sub_project', '=', self.id)] + action['context'] = {'search_default_sub_project': self.id} + return action # @api.onchange('parent_project', 'sub_project') # def onchange_parent_project_sub_project(self): diff --git a/sub_project/views/sub_project.xml b/sub_project/views/sub_project.xml index 497e85d..20db701 100755 --- a/sub_project/views/sub_project.xml +++ b/sub_project/views/sub_project.xml @@ -8,6 +8,45 @@ + +
+ +
@@ -15,8 +54,9 @@ - +