[MIG] partner_profiles_gogocarto_export : Migration to 16.0

This commit is contained in:
Boris Gallet
2024-03-06 15:43:34 +01:00
committed by Stéphan Sainléger
parent 70694c19de
commit 142a0342c9
13 changed files with 305 additions and 0 deletions

View File

@@ -0,0 +1,3 @@
from . import res_config_settings
from . import company
from . import res_partner

View File

@@ -0,0 +1,14 @@
from odoo import models, fields
class Company(models.Model):
_inherit = "res.company"
export_gogocarto_public_fields = fields.Many2many(
'ir.model.fields',
relation='ir_model_fields_gogocarto_public',
domain=[
('model_id', '=', 'res.partner'),
('name', 'not in', ['id', 'name', 'partner_longitude', 'partner_latitude'])
]
)

View File

@@ -0,0 +1,23 @@
import logging
from odoo import fields, models
_logger = logging.getLogger(__name__)
class ResConfigSettings(models.TransientModel):
_inherit = 'res.config.settings'
export_gogocarto_public_fields = fields.Many2many(
related='company_id.export_gogocarto_public_fields',
relation='ir.model.fields',
string='GogoCarto Exported Public fields',
readonly=False,
domain=[
('model_id', '=', 'res.partner'),
('name', 'not in', ['name',
'partner_longitude',
'partner_latitude',
'id'])
]
)

View File

@@ -0,0 +1,29 @@
from odoo import models
import logging
class ResPartner(models.Model):
""" Inherits partner, adds Gogocarto public fields in the partner form, and functions"""
_inherit = 'res.partner'
def _get_gogocarto_domain(self, company_id):
# To OVERRIDE in sub_modules to customize the partner selection
res = super(ResPartner, self)._get_gogocarto_domain(company_id)
res.extend([('is_main_profile', '=', True)])
return res
def _get_gogocarto_parser(self, company_id):
parser = super(ResPartner, self)._get_gogocarto_parser(company_id)
public_fields = self._get_export_public_fields(company_id)
public_parser = self._get_generic_parser(public_fields)
parser.append(("public_profile_id", public_parser))
return parser
def _get_export_public_fields(self, company_id):
CompanySudo = self.env['res.company'].sudo().search([('id', '=', company_id)])
default_fields = self.env['ir.model.fields'].sudo().search([
('model_id', '=', 'res.partner'),
('name', 'in', ['id', 'name', 'partner_longitude', 'partner_latitude'])])
company_fields = CompanySudo.export_gogocarto_public_fields
export_fields = default_fields | company_fields
return export_fields