# -*- coding: utf-8 -*- from odoo import models, fields, api, _ class ResConfigSettings(models.TransientModel): _inherit = 'res.config.settings' # Meta Commerce Settings meta_app_id = fields.Char(related='company_id.meta_app_id', readonly=False) meta_app_secret = fields.Char(related='company_id.meta_app_secret', readonly=False) meta_access_token = fields.Char(related='company_id.meta_access_token', readonly=False) meta_business_account_id = fields.Char(related='company_id.meta_business_account_id', readonly=False) meta_catalog_id = fields.Char(related='company_id.meta_catalog_id', readonly=False) meta_facebook_page_id = fields.Char(related='company_id.meta_facebook_page_id', readonly=False) meta_instagram_account_id = fields.Char(related='company_id.meta_instagram_account_id', readonly=False) meta_sync_enabled = fields.Boolean(related='company_id.meta_sync_enabled', readonly=False) meta_auto_sync_on_write = fields.Boolean(related='company_id.meta_auto_sync_on_write', readonly=False) meta_connection_status = fields.Selection(related='company_id.meta_connection_status') meta_last_test_error = fields.Text(related='company_id.meta_last_test_error') # WhatsApp Settings whatsapp_phone_number_id = fields.Char(related='company_id.whatsapp_phone_number_id', readonly=False) whatsapp_business_account_id = fields.Char(related='company_id.whatsapp_business_account_id', readonly=False) whatsapp_access_token = fields.Char(related='company_id.whatsapp_access_token', readonly=False) whatsapp_verify_token = fields.Char(related='company_id.whatsapp_verify_token', readonly=False) whatsapp_enabled = fields.Boolean(related='company_id.whatsapp_enabled', readonly=False) whatsapp_business_phone_number = fields.Char(related='company_id.whatsapp_business_phone_number', readonly=False) whatsapp_button_product_page = fields.Boolean(related='company_id.whatsapp_button_product_page', readonly=False) whatsapp_button_floating = fields.Boolean(related='company_id.whatsapp_button_floating', readonly=False) whatsapp_button_footer = fields.Boolean(related='company_id.whatsapp_button_footer', readonly=False) whatsapp_prefilled_message = fields.Text(related='company_id.whatsapp_prefilled_message', readonly=False) whatsapp_connection_status = fields.Selection(related='company_id.whatsapp_connection_status') whatsapp_last_test_error = fields.Text(related='company_id.whatsapp_last_test_error') whatsapp_webhook_verified = fields.Boolean(related='company_id.whatsapp_webhook_verified') whatsapp_webhook_url = fields.Char(string='WhatsApp Webhook URL', compute='_compute_whatsapp_webhook_url') @api.depends('company_id') def _compute_whatsapp_webhook_url(self): base_url = self.env['ir.config_parameter'].sudo().get_param('web.base.url', '') for rec in self: rec.whatsapp_webhook_url = f"{base_url}/social/whatsapp/webhook" def action_test_meta_connection(self): self.ensure_one() client = self.env['social.meta.catalog'] return client.test_connection(self.company_id) def action_test_whatsapp_connection(self): self.ensure_one() client = self.env['social.whatsapp.api'] return client.test_connection(self.company_id) def action_sync_all_meta_products(self): self.ensure_one() return self.env['social.meta.sync.queue'].action_sync_all_published_products(self.company_id)