From 4748ace653083f3902df8a7e8636daaead50f04b Mon Sep 17 00:00:00 2001 From: Suherdy Yacob Date: Sun, 14 Jun 2026 10:33:33 +0700 Subject: [PATCH] refactor: use non-stored computed fields with inverse handlers for company coordinates to prevent DB schema conflicts --- models/res_company.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/models/res_company.py b/models/res_company.py index d8758dc..7229d0a 100644 --- a/models/res_company.py +++ b/models/res_company.py @@ -4,5 +4,17 @@ from odoo import models, fields class ResCompany(models.Model): _inherit = 'res.company' - partner_latitude = fields.Float(string="Latitude") - partner_longitude = fields.Float(string="Longitude") + partner_latitude = fields.Float(string="Latitude", compute="_compute_coords", inverse="_inverse_coords", store=False) + partner_longitude = fields.Float(string="Longitude", compute="_compute_coords", inverse="_inverse_coords", store=False) + + def _compute_coords(self): + for company in self: + company.partner_latitude = getattr(company.partner_id, 'partner_latitude', 0.0) + company.partner_longitude = getattr(company.partner_id, 'partner_longitude', 0.0) + + def _inverse_coords(self): + for company in self: + if hasattr(company.partner_id, 'partner_latitude'): + company.partner_id.partner_latitude = company.partner_latitude + if hasattr(company.partner_id, 'partner_longitude'): + company.partner_id.partner_longitude = company.partner_longitude