Este módulo proporciona clases base y modelos para gestionar ventanas de tiempo mediante time.window.mixin.
Traducción automática al español (DeepSeek) de la descripción original de OCA, que está en inglés.
auto_awesome Qué hace este módulo
Generado por IA a partir del código · Odoo 19.0Proporciona bloques de construcción reutilizables (una lista de días de la semana y un mixin de franjas horarias) para que otros módulos de Odoo puedan definir horarios de apertura o franjas de disponibilidad con comprobaciones automáticas de solapamiento y validez.
Este es un módulo de base técnica: no añade un menú ni una pantalla propia, pero da a otros módulos las herramientas para describir periodos "de hora a hora en estos días de la semana".
Crea una lista de referencia de días de la semana (de lunes a domingo) que se carga automáticamente y puede ser leída por cualquier usuario interno, pero no modificada desde la interfaz.
También define una plantilla de franja horaria reutilizable que otros modelos pueden heredar. En esos modelos añade tres campos: una hora de inicio, una hora de fin y una lista de días de la semana. Se aplican varias reglas automáticas:
- La hora de fin debe ser posterior a la hora de inicio; de lo contrario, se bloquea el guardado con un mensaje de error.
- Debe seleccionarse al menos un día de la semana.
- Las horas deben mantenerse entre 00 y 23, por lo que una franja no puede superar las 24 horas.
- Cuando un modelo declara un campo de agrupación, el módulo comprueba la base de datos y rechaza guardar una franja que se solape con otra franja en los mismos días de la semana y el mismo grupo.
El nombre del registro que se muestra en las listas se construye automáticamente, por ejemplo "Monday, Tuesday: From 08:00 to 12:00". Las funciones auxiliares convierten las horas decimales almacenadas en horas legibles y pueden calcular la próxima fecha que coincida con un día de la semana dado, que otros módulos utilizan para la programación.
Depende de
Lo necesitan otros módulos
Modelos y campos (2)
- time.weekday · modelo nuevoname
- time.window.mixin · modelo nuevotime_window_end (To), time_window_start (From), time_window_weekday_ids
Texto generado por IA (DeepSeek) al leer el código de la versión 19.0 en GitHub; puede contener errores, así que verifícalo en el código antes de decidir. Ver el código en GitHub
Disponibilidad por versión
Revisado: 2026-11-03Estado de confirmación: 7 confirmadas, 2 sin información de 9 versiones.
Fuentes · Odoo 14.0
Confirmado el 2026-11-03 en la rama 14.0 de OCA/server-tools.
terminal Instalación y uso
Documentación de OCA · Odoo 19.0Puede encontrar una implementación de ejemplo para el mixin en el módulo test_base_time_window.
Como una ventana de tiempo siempre estará vinculada a un modelo relacionado mediante una relación M2o, al definir el nuevo modelo que hereda el mixin, se debe prestar atención a los siguientes puntos para que la comprobación de solapamiento funcione correctamente:
- Definir la propiedad de clase
_overlap_check_field: Esta debe indicar el campo M2o que se utilizará para la comprobación de solapamiento de registros de ventanas de tiempo vinculados a un registro específico del modelo relacionado. - Añadir el campo M2o al modelo relacionado en el
api.constrains:
Por ejemplo:
class PartnerTimeWindow(models.Model):
_name = 'partner.time.window'
_inherit = 'time.window.mixin'
partner_id = fields.Many2one(
res.partner', required=True, index=True, ondelete='cascade'
)
_overlap_check_field = 'partner_id'
@api.constrains('partner_id')
def check_window_no_overlaps(self):
return super().check_window_no_overlaps()Traducción automática al español (DeepSeek) de la documentación original de OCA; los comandos y el código no se traducen. Sin información verificada en OCA: Instalación, Configuración.
Las instrucciones de instalación, el paquete de distribución, las dependencias y los pasos de configuración no se muestran porque todavía no se han verificado en la documentación del módulo para ninguna versión.
Datos importados de GitHub: esta ficha refleja la última revisión del catálogo, no una consulta en directo. Verifica siempre en la documentación del módulo y en staging antes de instalar en producción.