diff --git a/models/ecozimut_mixin.py b/models/ecozimut_mixin.py
index c9fe59d3e448374d2dcf121e045e811d301959cf..1cb3642f4a2e4e79775770c08782e8c41958d8cd 100644
--- a/models/ecozimut_mixin.py
+++ b/models/ecozimut_mixin.py
@@ -2,7 +2,7 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html)
-from odoo import fields, models
+from odoo import api, fields, models
class EcozimutMixin(models.AbstractModel):
@@ -107,3 +107,23 @@ class EcozimutMixin(models.AbstractModel):
mission3 = fields.Many2one("ecozimut.mission", string="Missions EcoZimut 3")
mission4 = fields.Many2one("ecozimut.mission", string="Missions EcoZimut 4")
mission5 = fields.Many2one("ecozimut.mission", string="Missions EcoZimut 5")
+
+ @api.model
+ def _get_fields_to_sync(self):
+ mixin_fields = [f for f in self.env["ecozimut.mixin"].fields_get().keys()]
+ fields_noupdate = ["currency_id", "id", "display_name", "__last_update"]
+ fields_to_update = [x for x in mixin_fields if x not in fields_noupdate]
+ return fields_to_update
+
+ def get_mixin_vals_from(self, remote=False):
+ vals = {}
+ if remote:
+ for field in self._get_fields_to_sync():
+ if remote[field]:
+ if self._fields[field].type == "many2one":
+ vals[field] = remote[field].id
+ elif self._fields[field].type in ("one2many", "many2many"):
+ vals[field] = [(6, 0, remote[field].ids)]
+ else:
+ vals[field] = remote[field]
+ return vals