55 lines
3.4 KiB
Python
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)
|