diff --git a/project_task_billable_hours/__manifest__.py b/project_task_billable_hours/__manifest__.py index c043a61..ed87cc7 100644 --- a/project_task_billable_hours/__manifest__.py +++ b/project_task_billable_hours/__manifest__.py @@ -17,7 +17,8 @@ "project_working_time_task_portal" ], "data": [ - "views/project_task_views.xml", + "views/project_task_views.xml", + "views/project_views.xml" ], "installable": True, "application": False, diff --git a/project_task_billable_hours/models/__init__.py b/project_task_billable_hours/models/__init__.py new file mode 100644 index 0000000..570f75f --- /dev/null +++ b/project_task_billable_hours/models/__init__.py @@ -0,0 +1 @@ +from . import billable_time diff --git a/project_task_billable_hours/models/billable_time.py b/project_task_billable_hours/models/billable_time.py new file mode 100644 index 0000000..7957263 --- /dev/null +++ b/project_task_billable_hours/models/billable_time.py @@ -0,0 +1,16 @@ +from odoo import models, fields, api + +class Project(models.Model): + _inherit = "project.project" + + billable_remaining_hours = fields.Float( + compute="_compute_project_billable_remaining_hours", + string="Billable Remaining Hours", + store=True, + help="Total Billable remaining time (without exclude_from_sale_order timesheet lines)." + ) + + @api.depends("task_ids.billable_remaining_hours") + def _compute_project_billable_remaining_hours(self): + for project in self: + project.billable_remaining_hours = sum(task.billable_remaining_hours for task in project.task_ids) diff --git a/project_task_billable_hours/views/project_views.xml b/project_task_billable_hours/views/project_views.xml new file mode 100644 index 0000000..d101ce2 --- /dev/null +++ b/project_task_billable_hours/views/project_views.xml @@ -0,0 +1,19 @@ + + + + project.working.time.view.project.kanban + project.project + + + + + + +
+ +
+
+
+
+