From 8c32e99f2fdc2439c15f8394b3d8e8ec8fadb5aa Mon Sep 17 00:00:00 2001 From: Quentin Mondot Date: Thu, 4 Sep 2025 17:24:30 +0200 Subject: [PATCH] [IMP] project_task_billable_hours : display billable_remaining_hours instead of remaining_hours in project kanban view --- project_task_billable_hours/__manifest__.py | 3 ++- .../models/__init__.py | 1 + .../models/billable_time.py | 16 ++++++++++++++++ .../views/project_views.xml | 19 +++++++++++++++++++ 4 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 project_task_billable_hours/models/__init__.py create mode 100644 project_task_billable_hours/models/billable_time.py create mode 100644 project_task_billable_hours/views/project_views.xml 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 + + + + + + +
+ +
+
+
+
+