Ir al contenido

View Multicompany Country Filter

Filtro de país L10n: view_multicompany_country_filter
Limpieza dinámica de la interfaz de usuario para la localización
Limpie sus formularios de Odoo ocultando automáticamente los campos irrelevantes para su país. Imprescindible para configuraciones multipaís.
0.00 0.00
S/ 0.00

  • Versión
Términos y condiciones
Grantía de devolución de 30 días
Envío: 2-3 días hábiles
Technical Library & UI UX

L10n Country Filter

Dynamic Localization UI Cleaner. Optimice sus formularios de Odoo ocultando automáticamente campos irrelevantes según el país de la compañía activa. Indispensable para entornos multi-compañía globales.

¿Qué estamos resolviendo?

Multi-Country Clutter

En entornos multi-compañía (ej. Perú + USA), los usuarios suelen ver campos irrelevantes como 'Ubigeo' o 'RUC' mientras operan en USA. Esto causa confusión y errores en el ingreso de datos.

Context-Aware Hiding

Este módulo detecta de forma inteligente el país de la compañía actual y oculta dinámicamente los campos que no pertenecen allí. Sus formularios se mantienen limpios y 100% relevantes al contexto legal.

Guía de Implementación Técnica

Este es un módulo de librería técnica. Para usarlo, herede el Mixin e implemente la lógica en el método _get_view.

from odoo import models, api

class ResPartner(models.Model):
    _inherit = ['res.partner', 'l10n.country.filter.mixin'] # Mixin Obligatorio

    @api.model
    def _get_view(self, view_id=None, view_type='form', **options):
        arch, view = super()._get_view(view_id, view_type, **options)
        peru = self.env.ref('base.pe', raise_if_not_found=False)
        if not peru: return arch, view

        # Aplica el filtro: oculta tags si el país NO es Perú
        arch, view = self._tags_invisible_per_country(
            arch, view, view_type,
            tags=['l10n_pe_vat_code', ('group', 'l10n_pe_group_vat')],
            countries=[peru]
        )
        return arch, view

CRÍTICO: La herencia de l10n.country.filter.mixin es obligatoria para manejar correctamente el caché de vistas por compañía (company_id) en Odoo 19.

Enterprise Validation Plan

TEST 01Contexto Multi-Compañía:

Al cambiar de Compañía A (Perú) a Compañía B (USA), los campos restringidos deben desaparecer instantáneamente del formulario sin necesidad de refrescar la página manualmente.

TEST 02Integridad de Listas (Tree):

En vistas de lista, la cabecera de la columna restringida debe ocultarse usando column_invisible, evitando espacios en blanco innecesarios en la interfaz.

TEST 03Fiabilidad de Caché:

Verificación de que el caché de Odoo no "filtre" campos entre compañías debido a una clave de caché compartida. Cada compañía mantiene su propia arquitectura de vista.

FAQ & Troubleshooting

¿Los campos no se ocultan. Qué sucede?

Verifique que el país de la compañía actual esté configurado en Ajustes > Compañías. Si el país coincide con la lista permitida en el código, el campo permanecerá visible.

¿Funciona con Odoo Studio?

No. Esta es una utilidad a nivel de código Python (Controller/Model). Odoo Studio aplica cambios estáticos al XML, mientras que este módulo invoca lógica dinámica antes de servir la vista.

¿Es compatible con Multi-Website?

Sí. La lógica está ligada al company_id del usuario en sesión, lo que lo hace seguro para operaciones de backend en configuraciones multi-sitio.

Commercial & Sales

Asesoría Técnica
WHATSAPP+1 828 672 6150
Solicitar Soporte
LEADSleads@ganemo.com

Ganemo Developer Support

¿Necesita ayuda para implementar esta lógica en modelos complejos o soporte para la migración de vistas a Odoo 19?

TICKETayuda@ganemo.com

Especificaciones

Versión 18.0, 19.0