Odoo 19 · Ingenio Construcciones · Proyectos

Subtareas y dependencias entre tareas

Dos formas de encadenar tareas entre sí: las subtareas, que dividen una tarea grande en partes más chicas, y las dependencias, que hacen que una tarea quede en espera hasta que otra se cierre. Da por sentado los conceptos de tarea, Estado y Prioridad de «Conceptos básicos de Proyectos»; acá se profundiza el porqué el Estado cambia solo cuando hay una dependencia de por medio.

1

Una subtarea es una tarea más, con un padre

No hay un objeto nuevo: es el mismo project.task de siempre, apuntando a otra tarea en vez de solo al proyecto.

Cuando una tarea es grande conviene partirla en pedazos manejables sin perder el hilo de que todos pertenecen a la misma cosa. Para eso están las subtareas: una tarea común, con su propio Estado, su propia Prioridad y sus propios asignados, que además cuelga de otra tarea a través del campo Tarea principal.

Se crean desde adentro de la tarea que va a ser el padre, pestaña Subtareas: ahí aparece un listado editable donde se agrega una línea por subtarea, igual que se cargan líneas en cualquier otra lista de Odoo. También se puede llegar a ellas por el botón inteligente Subtareas de la cabecera, que muestra el conteo cerradas / totales y el porcentaje de avance.

Dos cosas se heredan solas de la tarea padre al crear la subtarea: el Proyecto y el Cliente. El resto —asignados, etiquetas, fecha límite— se completa aparte, porque una subtarea no tiene por qué compartir esos datos con su padre.

🖼️
Captura pendiente
Ficha de una tarea dentro de un proyecto (Proyectos > abrir una obra > abrir una tarea), con la pestaña Subtareas abierta y dos o tres subtareas ya cargadas en la lista. Tienen que quedar visibles las columnas Estado, nombre de la tarea, Persona asignada y Fecha límite. Si el proyecto es de un cliente real, tapar o recortar el nombre del cliente en el encabezado.
🖼️
Captura pendiente
La misma tarea, esta vez con el foco en la fila de botones inteligentes de arriba de la ficha: tiene que verse el botón Subtareas con su contador en formato «cerradas / totales» y el porcentaje entre paréntesis.
2

Por qué una tarea privada no puede tener subtareas

Tres reglas que Odoo hace cumplir solo, sin que nadie las configure.

Una tarea privada es la que no cuelga de ningún proyecto —el campo Proyecto queda vacío, con el candado 🔒 que ya se vio en «Conceptos básicos de Proyectos»—. Con subtareas eso no puede pasar nunca en ninguno de los dos sentidos, y Odoo lo protege con reglas de base de datos que se disparan al guardar, no con un mensaje de validación tibio:

SituaciónMensaje que tira Odoo
Poner una Tarea principal en una tarea que no tiene proyecto«Una tarea privada no puede tener una tarea principal.»
Vaciar el Proyecto de una tarea que ya tiene subtareas cargadas«Esta tarea tiene subtareas y no puede ser privada.»
Poner una Tarea principal en una tarea recurrente«No puede convertir esta tarea en una subtarea porque es recurrente.»

La lógica es la misma en los tres casos: una subtarea necesita un proyecto real detrás —el mismo que tiene el padre, salvo que se la mueva a mano a otro— y una tarea recurrente genera copias de sí misma periódicamente (ver «Objetivos y tareas recurrentes»), algo que no tiene sentido combinar con ser la parte de otra tarea. La pestaña Subtareas, de hecho, ni siquiera aparece en la ficha de una tarea privada: no hace falta llegar al error para notar la restricción.

🖼️
Captura pendiente
Una tarea que ya tiene subtareas cargadas, con el campo Proyecto recién vaciado a mano y el mensaje de error de Odoo en pantalla: «Esta tarea tiene subtareas y no puede ser privada.». Si el proyecto usado es de un cliente real, elegir uno de prueba para esta captura puntual.
3

Las horas de las subtareas, sumadas en el padre

Solo si la app Partes de horas está instalada. El detalle completo es otro manual.

Cuando la app Partes de horas está activa en el proyecto, la ficha de la tarea padre no solo muestra sus propias horas: al lado del campo Horas asignadas aparece, entre paréntesis, cuánto de esas horas corresponde a las subtareas. Un detalle de traducción real que vale la pena conocer para no confundirlo con un error: esa aclaración queda parcialmente en inglés en la pantalla en español —«(incl. … on Sub-tasks)»—, porque Odoo no llegó a traducir esa frase puntual.

Lo mismo pasa con el tiempo ya cargado: existe un campo Tiempo utilizado en subtareas que suma las horas de todas las subtareas (y las subtareas de las subtareas). Cómo se cargan esas horas, qué es la unidad de medida y cómo se lee el resto de la pestaña de horas es tema del manual «Registro de horas en las tareas»; acá alcanza con saber que ese número existe y de dónde sale.

4

Activar las dependencias entre tareas

A diferencia de las subtareas, esto viene apagado: hay que prenderlo por proyecto.

Una dependencia es distinta de una subtarea: no es «una parte de», es «no puedo empezar hasta que». Para usarlas hay que activar primero, en cada proyecto, el ajuste Dependencias de las tareas —desde Proyecto > Configuración > Ajustes, igual que Objetivos o Tareas recurrentes—, con la ayuda «Determine el orden de ejecución de las tareas». Mientras ese ajuste esté apagado, ni la pestaña de dependencias ni el botón de tareas bloqueadas aparecen en ninguna tarea del proyecto.

Igual que las subtareas, las dependencias solo funcionan entre tareas que pertenecen a un proyecto: una tarea privada no puede figurar como bloqueante ni como bloqueada, porque el ajuste que las habilita vive en el proyecto y una tarea privada no tiene proyecto.

🖼️
Captura pendiente
Pantalla de ajustes del proyecto (Proyecto > Configuración > Ajustes), con el switch Dependencias de las tareas activado y su texto de ayuda «Determine el orden de ejecución de las tareas» visible debajo.
5

«Bloqueado por» y «Tareas dependientes»

Dos caras del mismo vínculo, cada una en un lugar distinto de la ficha.

Con el ajuste activado, la ficha de la tarea suma la pestaña Bloqueado por: ahí se agregan las tareas que tienen que cerrarse antes de que esta pueda seguir. Es una lista igual a la de Subtareas: se busca la tarea y se agrega, sin límite de cantidad.

La otra dirección no tiene una pestaña propia: aparece como el botón inteligente Tareas bloqueadas en la cabecera, con el conteo de cuántas tareas dependen de esta. Al tocarlo se abre un listado titulado Tareas dependientes con todas ellas. Es información de solo lectura desde ahí: para desvincular una dependencia hay que entrar a la tarea bloqueada y sacarla de su pestaña Bloqueado por.

Dónde se veQué muestra
Pestaña Bloqueado porLas tareas de las que esta tarea depende. Se edita desde acá.
Botón Tareas bloqueadasCuántas tareas dependen de esta. Abre el listado «Tareas dependientes», de solo lectura.
🖼️
Captura pendiente
Ficha de una tarea con la pestaña Bloqueado por abierta, con al menos una tarea agregada en la lista, mostrando su columna Estado y su nombre.
🖼️
Captura pendiente
La tarea que bloquea a la anterior, con el botón inteligente Tareas bloqueadas visible en su cabecera mostrando un contador mayor a cero.
6

Por qué el Estado pasa solo a «En espera»

No lo pone nadie a mano, y tampoco se puede sacar a mano mientras siga bloqueada.

En «Conceptos básicos de Proyectos» quedó dicho que el Estado En espera significa «bloqueada por otra tarea que todavía no se cerró». Acá va el porqué exacto: el campo Estado, por dentro, es un campo calculado que se recalcula solo cada vez que cambia la Etapa de la tarea o el Estado de cualquiera de las tareas de su pestaña Bloqueado por.

La regla que aplica ese cálculo es simple: si al menos una de las tareas bloqueantes sigue en un estado abierto (no está Hecha ni Cancelada), esta tarea pasa a En espera sin preguntar, sin importar en qué Etapa esté. En el momento en que la última tarea bloqueante se cierra, el mismo cálculo la devuelve sola a En progreso.

Y mientras siga bloqueada, tampoco se la puede sacar de En espera a mano: si alguien intenta poner otro estado abierto —Aprobada, Cambios solicitados— con una tarea bloqueante todavía viva, Odoo lo revierte a En espera al guardar. La única salida real es cerrar lo que bloquea, o cerrar la tarea misma (Hecha o Cancelada, que sí se permiten aunque siga técnicamente bloqueada).

Dos protecciones contra círculos, no unaSubtareas y dependencias tienen cada una su propia protección contra vueltas en redondo, y conviene no confundirlas. En el árbol de subtareas, Odoo impide elegir como Tarea principal una tarea que ya es descendiente de esta, y si de todos modos se arma una jerarquía recursiva corta con «Error. No se puede crear una jerarquía recursiva de tareas.». En Bloqueado por, la protección es otra: dos tareas no pueden bloquearse mutuamente, ni en cadena ni de forma directa, y el intento corta con «Dos tareas no pueden depender la una de la otra.».
🖼️
Captura pendiente
Tarjeta o ficha de una tarea con el Estado en En espera visible (el punto de color o la etiqueta de estado), junto con su pestaña Bloqueado por mostrando la tarea bloqueante todavía en un estado abierto (no Hecha ni Cancelada).
🖼️
Captura pendiente
El mensaje de error de Odoo al intentar agregar, en la pestaña Bloqueado por de una tarea, otra tarea que ya depende de la primera: «Dos tareas no pueden depender la una de la otra.».
Ningún dato de este manual toca la localización argentina Ni l10n_ar ni l10n_ar_withholding tocan el modelo de tareas: subtareas y dependencias funcionan exactamente igual en una base con la localización argentina instalada que en cualquier otra. Lo único que cambia entre bases es si la app Partes de horas está instalada, y eso es independiente del país.