- Todos los productos
- View Multicompany Country Filter
- Todos los productos
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.
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
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.
En vistas de lista, la cabecera de la columna restringida debe ocultarse usando column_invisible, evitando espacios en blanco innecesarios en la interfaz.
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 6150Solicitar Soporte
LEADSleads@ganemo.comGanemo 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.comL10n 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.
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
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.
En vistas de lista, la cabecera de la columna restringida debe ocultarse usando column_invisible, evitando espacios en blanco innecesarios en la interfaz.
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 6150Solicitar Soporte
LEADSleads@ganemo.comGanemo 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.comEspecificaciones
| Versión | 18.0, 19.0 |