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.
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ón | Mensaje 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.
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.
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.
«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 ve | Qué muestra |
|---|---|
| Pestaña Bloqueado por | Las tareas de las que esta tarea depende. Se edita desde acá. |
| Botón Tareas bloqueadas | Cuántas tareas dependen de esta. Abre el listado «Tareas dependientes», de solo lectura. |
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).
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.