[IMP] maintenance_server_data: add unique constraint rule on some equipement fields

This commit is contained in:
Stéphan Sainléger
2026-06-30 16:17:04 +02:00
parent 4581b3d019
commit ae5977ef81

View File

@@ -4,6 +4,12 @@ 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_ssh_target', 'UNIQUE(ssh_target)', 'Main Domain Name must be unique.'),
]
server_ip = fields.Char("Server Ip Address")
ssh_target = fields.Char("SSH Target", )
distribution_id = fields.Many2one("os.distribution", string="Distribution")
@@ -18,6 +24,18 @@ class MaintenanceEquipment(models.Model):
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 "ssh_target" not in default:
default["ssh_target"] = 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"):