Files
Odoo-18.0-20251222/maintenance_project/models/project_milestone.py
tocmo0nlord adbe430761
Some checks failed
pre-commit / pre-commit (push) Has been cancelled
tests / Detect unreleased dependencies (push) Has been cancelled
tests / test with OCB (push) Has been cancelled
tests / test with Odoo (push) Has been cancelled
Initial commit: Odoo 18.0-20251222 extra-addons
2026-03-13 20:43:25 +00:00

45 lines
1.5 KiB
Python

# Copyright 2025 Dixmit
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import api, fields, models
class ProjectMilestone(models.Model):
_inherit = "project.milestone"
maintenance_request_ids = fields.One2many(
comodel_name="maintenance.request",
inverse_name="milestone_id",
string="Maintenance Requests",
)
maintenance_request_count = fields.Integer(
compute="_compute_maintenance_request_count",
string="Maintenance Requests Count",
)
@api.depends("maintenance_request_ids")
def _compute_maintenance_request_count(self):
for milestone in self:
milestone.maintenance_request_count = len(milestone.maintenance_request_ids)
def action_view_maintenance_request(self):
self.ensure_one()
action = self.env["ir.actions.act_window"]._for_xml_id(
"maintenance_project.action_view_maintenance_request_for_milestone"
)
action["context"] = {
"default_project_id": self.project_id.id,
"default_milestone_id": self.id,
}
if self.maintenance_request_count == 1:
action["view_mode"] = "form"
action["res_id"] = self.maintenance_request_ids.id
if "views" in action:
action["views"] = [
(view_id, view_type)
for view_id, view_type in action["views"]
if view_type == "form"
]
return action