Initial commit: Odoo 18.0-20251222 extra-addons
This commit is contained in:
44
maintenance_project/models/project_milestone.py
Normal file
44
maintenance_project/models/project_milestone.py
Normal file
@@ -0,0 +1,44 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user