55 lines
2.1 KiB
Python
55 lines
2.1 KiB
Python
from odoo import api, fields, models
|
|
|
|
|
|
class MaintenanceEquipment(models.Model):
|
|
_inherit = "maintenance.equipment"
|
|
|
|
_sql_constraints = [
|
|
('unique_name', 'UNIQUE(name)', 'Name must be unique.'),
|
|
('unique_server_ip', 'UNIQUE(server_ip)', 'Server IP must be unique.'),
|
|
('unique_main_domain_name', 'UNIQUE(main_domain_name)', 'Main Domain Name must be unique.'),
|
|
]
|
|
|
|
server_ip = fields.Char("Server Ip Address")
|
|
main_domain_name = fields.Char("Main Domain Name", )
|
|
distribution_id = fields.Many2one("os.distribution", string="Distribution")
|
|
service_ids = fields.One2many("service.instance", "equipment_id", string="Services")
|
|
hosting_city = fields.Char("Hosting City")
|
|
nb_cores = fields.Integer("Nb Cores")
|
|
ram = fields.Integer("RAM (Go)")
|
|
disk_storage = fields.Integer("Disk Storage (Go)")
|
|
backup_activated = fields.Boolean("Backup Activated ?")
|
|
backup_server_id = fields.Many2one("backup.server", string="Backup Server")
|
|
backup_ok = fields.Boolean("Backup OK ?")
|
|
|
|
name_fr = fields.Char("Name (FR)", compute="_compute_name_fr", store=True)
|
|
|
|
def copy_data(self, default=None):
|
|
default = dict(default or {})
|
|
if "server_ip" not in default:
|
|
default["server_ip"] = False
|
|
if "main_domain_name" not in default:
|
|
default["main_domain_name"] = False
|
|
vals_list = super().copy_data(default=default)
|
|
if "name" not in default:
|
|
for equipment, vals in zip(self, vals_list):
|
|
vals["name"] = self.env._("%s (copy)", equipment.name)
|
|
return vals_list
|
|
|
|
@api.depends("name")
|
|
def _compute_name_fr(self):
|
|
if not self.env["res.lang"]._lang_get("fr_FR"):
|
|
for record in self:
|
|
record.name_fr = record.name
|
|
return
|
|
for record in self:
|
|
record.name_fr = record.with_context(lang="fr_FR").name
|
|
|
|
def write(self, vals):
|
|
res = super().write(vals)
|
|
if "active" in vals:
|
|
self.with_context(active_test=False).service_ids.write(
|
|
{"active": vals["active"]}
|
|
)
|
|
return res
|