mirror of
https://github.com/bringout/oca-technical.git
synced 2026-04-23 16:32:03 +02:00
32 lines
1.1 KiB
Python
32 lines
1.1 KiB
Python
# Copyright 2022-2024 Tecnativa - Víctor Martínez
|
|
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
|
|
|
from odoo import api, fields, models
|
|
|
|
|
|
class MaintenanceEquipment(models.Model):
|
|
_inherit = "maintenance.equipment"
|
|
|
|
usage_ids = fields.One2many(
|
|
comodel_name="maintenance.equipment.usage",
|
|
inverse_name="equipment_id",
|
|
string="Usages",
|
|
)
|
|
usage_count = fields.Integer(compute="_compute_usage_count")
|
|
in_use = fields.Boolean(compute="_compute_in_use", store=True)
|
|
|
|
@api.depends("usage_ids")
|
|
def _compute_usage_count(self):
|
|
res = self.env["maintenance.equipment.usage"].read_group(
|
|
domain=[("equipment_id", "in", self.ids)],
|
|
fields=["equipment_id"],
|
|
groupby=["equipment_id"],
|
|
)
|
|
res_dict = {x["equipment_id"][0]: x["equipment_id_count"] for x in res}
|
|
for rec in self:
|
|
rec.usage_count = res_dict.get(rec.id, 0)
|
|
|
|
@api.depends("usage_ids", "usage_ids.state")
|
|
def _compute_in_use(self):
|
|
for item in self:
|
|
item.in_use = any(usage.state == "in_use" for usage in item.usage_ids)
|