#!/usr/bin/env python3 # -*- coding: utf-8 -*- """Post-instalación de la instancia clinica2_odoo (white-label, sin WACRM). - Brand neutro (skeen.clinic.brand) apuntando a logos genericos servidos por el nginx de la instancia (no SKEEN). - skeen.menu_roles con /wacrm/* en lista vacia: modulo WhatsApp oculto para todos (escenario B: la clinica nueva aun no tiene numero de WhatsApp). - Admin con password distinto a la instancia SKEEN y must_change_password. - Empresa principal renombrada al nombre neutro. """ import json import sys sys.path.insert(0, '/root/skeen-odoo') import odoo from odoo.tools import config config.parse_config([ '-c', '/root/clinica2-odoo.conf', '--no-http', '--log-level', 'error', ]) odoo.service.server.load_server_wide_modules() registry = odoo.registry(config['db_name']) BRAND = { 'nombre': 'Clínica', 'logo_claro': '/brand/logo-blanco.svg', 'logo_oscuro': '/brand/logo-negro.svg', 'pie': 'Sistema de gestión clínica', } ADMIN_PASSWORD = 'Clinica2Admin2026!' with registry.cursor() as cr: env = odoo.api.Environment(cr, odoo.SUPERUSER_ID, {}) ICP = env['ir.config_parameter'].sudo() # 1) Brand neutro ICP.set_param('skeen.clinic.brand', json.dumps(BRAND, ensure_ascii=False)) print('brand:', ICP.get_param('skeen.clinic.brand')) # 2) Ocultar WACRM para todos (lista vacia = ningun rol) roles = json.loads(ICP.get_param('skeen.menu_roles') or '{}') roles['/wacrm/messages'] = [] roles['/wacrm/leads'] = [] ICP.set_param('skeen.menu_roles', json.dumps(roles, ensure_ascii=False)) print('menu_roles wacrm:', roles.get('/wacrm/messages'), roles.get('/wacrm/leads')) # 3) Admin: password propio de la instancia + cambio forzado admin = env['skeen.frontend.user'].sudo().search([('login', '=', 'admin')], limit=1) admin.set_password(ADMIN_PASSWORD) admin.write({'must_change_password': True}) print('admin:', admin.login, 'must_change_password:', admin.must_change_password) # 4) Empresa principal renombrada (el backend Odoo la muestra) company = env['res.company'].sudo().search([], limit=1, order='id') if company: company.write({'name': 'Clínica'}) print('company:', company.name) cr.commit() print('POST-INSTALL OK')