diff --git a/maintenance_server_data/models/maintenance_equipment.py b/maintenance_server_data/models/maintenance_equipment.py index 039d41e..f9435ab 100644 --- a/maintenance_server_data/models/maintenance_equipment.py +++ b/maintenance_server_data/models/maintenance_equipment.py @@ -4,7 +4,14 @@ 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") @@ -17,8 +24,24 @@ 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 "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 diff --git a/maintenance_server_data/views/maintenance_equipment.xml b/maintenance_server_data/views/maintenance_equipment.xml index 5db8574..d9310d9 100644 --- a/maintenance_server_data/views/maintenance_equipment.xml +++ b/maintenance_server_data/views/maintenance_equipment.xml @@ -8,6 +8,7 @@ + @@ -45,6 +46,7 @@ +