55 lines
3.4 KiB
Python

# -*- 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)