feat: use branch_latitude and branch_longitude on res.company and map them in the API to avoid related fields and geolocalize model conflicts

This commit is contained in:
Suherdy Yacob 2026-06-14 10:36:15 +07:00
parent 4748ace653
commit 3b48e32205
3 changed files with 8 additions and 16 deletions

View File

@ -212,9 +212,12 @@ class AppNotificationController(http.Controller):
try: try:
branches = request.env['res.company'].sudo().search_read( branches = request.env['res.company'].sudo().search_read(
[('parent_id', '!=', False)], [('parent_id', '!=', False)],
['name', 'street', 'city', 'phone', 'partner_latitude', 'partner_longitude'], ['name', 'street', 'city', 'phone', 'branch_latitude', 'branch_longitude'],
limit=50 limit=50
) )
for branch in branches:
branch['partner_latitude'] = branch.pop('branch_latitude', 0.0)
branch['partner_longitude'] = branch.pop('branch_longitude', 0.0)
return {'status': 'success', 'data': branches} return {'status': 'success', 'data': branches}
except Exception as e: except Exception as e:
return {'status': 'error', 'message': str(e)} return {'status': 'error', 'message': str(e)}

View File

@ -4,17 +4,6 @@ from odoo import models, fields
class ResCompany(models.Model): class ResCompany(models.Model):
_inherit = 'res.company' _inherit = 'res.company'
partner_latitude = fields.Float(string="Latitude", compute="_compute_coords", inverse="_inverse_coords", store=False) branch_latitude = fields.Float(string="Latitude")
partner_longitude = fields.Float(string="Longitude", compute="_compute_coords", inverse="_inverse_coords", store=False) branch_longitude = fields.Float(string="Longitude")
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

View File

@ -6,8 +6,8 @@
<field name="inherit_id" ref="base.view_company_form"/> <field name="inherit_id" ref="base.view_company_form"/>
<field name="arch" type="xml"> <field name="arch" type="xml">
<xpath expr="//field[@name='website']" position="after"> <xpath expr="//field[@name='website']" position="after">
<field name="partner_latitude" string="Latitude"/> <field name="branch_latitude" string="Latitude"/>
<field name="partner_longitude" string="Longitude"/> <field name="branch_longitude" string="Longitude"/>
</xpath> </xpath>
</field> </field>
</record> </record>