title: Listas
description: Gestiona listas de tareas dentro de proyectos: crea, edita, elimina y consulta listas

Descripción general

Las listas en Blue son contenedores para organizar tareas dentro de un proyecto. Cada lista puede contener múltiples tareas y ayuda a estructurar el trabajo en grupos lógicos. Las listas admiten posicionamiento, bloqueo y control de acceso basado en roles.

Conceptos clave

  • Cada proyecto puede tener hasta 50 listas
  • Las listas están ordenadas por posición (ascendente)
  • Las listas pueden ser bloqueadas para evitar modificaciones
  • Las listas respetan los permisos a nivel de proyecto y basados en roles
  • Las listas eliminadas se mueven a la papelera (eliminación suave)

Consultas

Obtener una lista única

Recupera una lista de tareas específica por ID.

query GetTodoList($id: String!) {
  todoList(id: $id) {
    id
    uid
    title
    position
    isDisabled
    isLocked
    createdAt
    updatedAt
    project {
      id
      name
    }
    createdBy {
      id
      username
    }
  }
}

Obtener todas las listas en un proyecto

Recupera todas las listas de tareas para un proyecto específico.

query GetProjectLists($projectId: String!) {
  todoLists(projectId: $projectId) {
    id
    uid
    title
    position
    isDisabled
    isLocked
    createdAt
    updatedAt
  }
}

Consulta avanzada de listas

Consulta listas con filtrado, ordenamiento y paginación.

query SearchTodoLists($filter: TodoListsFilterInput!, $sort: [TodoListsSort!], $skip: Int, $take: Int) {
  todoListQueries {
    todoLists(filter: $filter, sort: $sort, skip: $skip, take: $take) {
      items {
        id
        uid
        title
        position
        isDisabled
        isLocked
        createdAt
        updatedAt
        project {
          id
          name
        }
      }
      pageInfo {
        hasNextPage
        hasPreviousPage
        total
      }
    }
  }
}

Mutaciones

Crear una lista

Crea una nueva lista de tareas en un proyecto.

mutation CreateTodoList($input: CreateTodoListInput!) {
  createTodoList(input: $input) {
    id
    uid
    title
    position
    isDisabled
    isLocked
    createdAt
    project {
      id
      name
    }
  }
}

Ejemplo:

mutation {
  createTodoList(input: {
    projectId: "project-123"
    title: "Sprint 1 Tasks"
    position: 1.0
  }) {
    id
    title
  }
}

Editar una lista

Actualiza las propiedades de una lista de tareas existente.

mutation EditTodoList($input: EditTodoListInput!) {
  editTodoList(input: $input) {
    id
    title
    position
    isLocked
    updatedAt
  }
}

Ejemplo:

mutation {
  editTodoList(input: {
    todoListId: "list-123"
    title: "Sprint 1 - In Progress"
    position: 2.0
    isLocked: true
  }) {
    id
    title
    isLocked
  }
}

Eliminar una lista

Elimina una lista de tareas (se mueve a la papelera).

mutation DeleteTodoList($input: DeleteTodoListInput!) {
  deleteTodoList(input: $input) {
    success
  }
}

Ejemplo:

mutation {
  deleteTodoList(input: {
    projectId: "project-123"
    todoListId: "list-123"
  }) {
    success
  }
}

Marcar lista como completada/no completada

Marca todas las tareas en una lista como completadas o no completadas.

# Mark as done
mutation MarkListDone($todoListId: String!, $filter: TodosFilter) {
  markTodoListAsDone(todoListId: $todoListId, filter: $filter)
}

# Mark as undone
mutation MarkListUndone($todoListId: String!, $filter: TodosFilter) {
  markTodoListAsUndone(todoListId: $todoListId, filter: $filter)
}

Tipos de entrada

CreateTodoListInput

Parámetro Tipo Requerido Descripción
projectId String! ✅ Sí El ID del proyecto donde se creará la lista
title String! ✅ Sí El nombre de la lista
position Float! ✅ Sí La posición de la lista (para ordenamiento)

EditTodoListInput

Parámetro Tipo Requerido Descripción
todoListId String! ✅ Sí El ID de la lista a editar
title String No Nuevo título para la lista
position Float No Nueva posición para la lista
isLocked Boolean No Si la lista debe estar bloqueada

DeleteTodoListInput

Parámetro Tipo Requerido Descripción
projectId String! ✅ Sí El ID del proyecto (para verificación)
todoListId String! ✅ Sí El ID de la lista a eliminar

TodoListsFilterInput

Parámetro Tipo Requerido Descripción
companyIds [String!]! ✅ Sí Filtrar por IDs de empresa
projectIds [String!] No Filtrar por IDs de proyectos específicos
ids [String!] No Filtrar por IDs de listas específicas
titles [String!] No Filtrar por títulos de listas
search String No Buscar listas por título

Valores de ordenamiento de listas de tareas

Valor Descripción
title_ASC Ordenar por título ascendente
title_DESC Ordenar por título descendente
createdAt_ASC Ordenar por fecha de creación ascendente
createdAt_DESC Ordenar por fecha de creación descendente
updatedAt_ASC Ordenar por fecha de actualización ascendente
updatedAt_DESC Ordenar por fecha de actualización descendente
position_ASC Ordenar por posición ascendente (predeterminado)
position_DESC Ordenar por posición descendente

Tipos de respuesta

Tipo TodoList

Campo Tipo Descripción
id ID! Identificador único
uid String! Identificador amigable para el usuario
position Float! Posición de la lista para ordenamiento
title String! Nombre de la lista
isDisabled Boolean! Si la lista está deshabilitada
isLocked Boolean Si la lista está bloqueada
createdAt DateTime! Marca de tiempo de creación
updatedAt DateTime! Marca de tiempo de la última actualización
activity Activity Registro de actividad asociado
createdBy User Usuario que creó la lista
project Project! Proyecto padre
todos [Todo!]! Tareas en esta lista
todosCount Int! Número de tareas

Tipo TodoListsPagination

Campo Tipo Descripción
items [TodoList!]! Array de listas de tareas
pageInfo PageInfo! Información de paginación

Permisos requeridos

Permisos de consulta

Operación Permiso requerido
todoList Must be authenticated
todoLists Must be authenticated and in company
todoListQueries.todoLists Must be authenticated and in company

Permisos de mutación

Operación Roles permitidos a nivel de proyecto
createTodoList OWNER, ADMIN, MEMBER
editTodoList OWNER, ADMIN, MEMBER, CLIENT
deleteTodoList OWNER, ADMIN, MEMBER
markTodoListAsDone OWNER, ADMIN, MEMBER
markTodoListAsUndone OWNER, ADMIN, MEMBER

Nota: Los usuarios con el rol CLIENT pueden editar listas pero no pueden crearlas ni eliminarlas. Los usuarios con roles VIEW_ONLY o COMMENT_ONLY no pueden crear, editar ni eliminar listas.

Respuestas de error

TodoListNotFoundError

{
  "errors": [{
    "message": "Todo list was not found.",
    "extensions": {
      "code": "TODO_LIST_NOT_FOUND"
    }
  }]
}

ProjectNotFoundError

{
  "errors": [{
    "message": "Project was not found.",
    "extensions": {
      "code": "PROJECT_NOT_FOUND"
    }
  }]
}

Error de listas máximas

{
  "errors": [{
    "message": "You have reached the maximum number of todo lists for this project.",
    "extensions": {
      "code": "INTERNAL_SERVER_ERROR"
    }
  }]
}

UnauthorizedError

{
  "errors": [{
    "message": "Unauthorized",
    "extensions": {
      "code": "UNAUTHORIZED"
    }
  }]
}

Notas importantes

  • Límite de listas: Cada proyecto puede tener un máximo de 50 listas
  • Eliminación suave: Las listas eliminadas se mueven a la papelera y pueden ser recuperadas potencialmente
  • Gestión de posiciones: Al crear listas, asegúrate de que las posiciones no entren en conflicto. Usa valores incrementales (1.0, 2.0, 3.0) para permitir la inserción entre listas
  • Acceso basado en roles: Las listas pueden estar ocultas de ciertos roles utilizando permisos de ProjectUserRoleTodoList
  • Webhooks: La creación, actualización y eliminación de listas activan webhooks si están configurados
  • Seguimiento de actividad: Todas las operaciones de listas se registran en el feed de actividad
  • Actualizaciones en tiempo real: Los cambios en las listas se publican a través de suscripciones para actualizaciones en tiempo real

Operaciones relacionadas

  • Usa todos consulta para obtener tareas dentro de una lista
  • Usa createTodo mutación para agregar tareas a una lista
  • Usa moveTodo mutación para mover tareas entre listas
  • Suscríbete a cambios en la lista usando subscribeToTodoList suscripción

Asistente IA

Las respuestas son generadas por IA y pueden contener errores.

¿Cómo puedo ayudarte?

Pregúntame cualquier cosa sobre Blue o esta documentación.

Enter para enviar • Shift+Enter para nueva línea • ⌘I para abrir