mirror of
https://github.com/bringout/oca-technical.git
synced 2026-04-22 14:32:06 +02:00
Initial commit: OCA Technical packages (595 packages)
This commit is contained in:
commit
2cc02aac6e
24950 changed files with 2318079 additions and 0 deletions
|
|
@ -0,0 +1 @@
|
|||
from . import maintenance_team
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
# Copyright 2019 Creu Blanca
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
from odoo import api, fields, models
|
||||
|
||||
|
||||
class MaintenanceTeam(models.Model):
|
||||
|
||||
_parent_name = "parent_id"
|
||||
_parent_store = True
|
||||
_parent_order = "name"
|
||||
_inherit = "maintenance.team"
|
||||
|
||||
parent_id = fields.Many2one("maintenance.team", ondelete="restrict")
|
||||
parent_path = fields.Char(index=True, unaccent=False)
|
||||
|
||||
request_ids = fields.Many2many(
|
||||
"maintenance.request",
|
||||
compute="_compute_request_ids",
|
||||
)
|
||||
|
||||
todo_request_ids = fields.One2many(compute="_compute_new_todo_requests")
|
||||
todo_request_count = fields.Integer(compute="_compute_new_todo_requests")
|
||||
todo_request_count_date = fields.Integer(compute="_compute_new_todo_requests")
|
||||
todo_request_count_high_priority = fields.Integer(
|
||||
compute="_compute_new_todo_requests"
|
||||
)
|
||||
todo_request_count_block = fields.Integer(compute="_compute_new_todo_requests")
|
||||
todo_request_count_unscheduled = fields.Integer(
|
||||
compute="_compute_new_todo_requests"
|
||||
)
|
||||
|
||||
def _compute_request_ids(self):
|
||||
for record in self:
|
||||
record.request_ids = self.env["maintenance.request"].search(
|
||||
record._get_request_domains()
|
||||
)
|
||||
|
||||
def _get_request_domains(self):
|
||||
return [("maintenance_team_id", "child_of", self.id)]
|
||||
|
||||
@api.depends()
|
||||
def _compute_new_todo_requests(self):
|
||||
"""This is the only way to remove the api depends fields. This is necessary
|
||||
because request_ids is now a computed field
|
||||
"""
|
||||
self._compute_todo_requests()
|
||||
|
||||
def _compute_todo_requests(self):
|
||||
"""This function improves the computation and simplifies the data"""
|
||||
request_obj = self.env["maintenance.request"]
|
||||
for record in self:
|
||||
domain = record._get_request_domains() + [("stage_id.done", "=", False)]
|
||||
record.todo_request_ids = request_obj.search(domain)
|
||||
record.todo_request_count = request_obj.search_count(domain)
|
||||
record.todo_request_count_date = request_obj.search_count(
|
||||
domain + [("schedule_date", "!=", False)]
|
||||
)
|
||||
record.todo_request_count_high_priority = request_obj.search_count(
|
||||
domain + [("priority", "=", "3")]
|
||||
)
|
||||
record.todo_request_count_block = request_obj.search_count(
|
||||
domain + [("kanban_state", "=", "blocked")]
|
||||
)
|
||||
record.todo_request_count_unscheduled = request_obj.search_count(
|
||||
domain + [("schedule_date", "=", False)]
|
||||
)
|
||||
Loading…
Add table
Add a link
Reference in a new issue