OdooWiki OCA HUB

Base Time Window

base_time_window folder_open OCA/server-tools open_in_new
Technical Settings Licencia: LGPL-3

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.0

Proporciona 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

base
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-03
Confirmado (verificado en repositorio y rama) Estimado (sin verificar) Sin información

Estado de confirmación: 7 confirmadas, 2 sin información de 9 versiones.

Fuentes · Odoo 13.0

Confirmado el 2026-11-03 en la rama 13.0 de OCA/server-tools.

terminal Instalación y uso

Documentación de OCA · Odoo 19.0

Puede 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.

info

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.