Gérer les listes de tâches au sein des projets - créer, modifier, supprimer et interroger des listes


Vue d'ensemble

Les listes dans Blue sont des conteneurs pour organiser les tâches au sein d'un projet. Chaque liste peut contenir plusieurs tâches et aide à structurer le travail en groupes logiques. Les listes prennent en charge le positionnement, le verrouillage et le contrôle d'accès basé sur les rôles.

Concepts clés

  • Chaque projet peut avoir jusqu'à 50 listes
  • Les listes sont ordonnées par position (croissante)
  • Les listes peuvent être verrouillées pour empêcher les modifications
  • Les listes respectent les autorisations au niveau du projet et basées sur les rôles
  • Les listes supprimées sont déplacées vers la corbeille (suppression douce)

Requêtes

Obtenir une seule liste

Récupérer une liste de tâches spécifique par ID.

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

Obtenir toutes les listes dans un projet

Récupérer toutes les listes de tâches pour un projet spécifique.

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

Requête avancée de liste

Interroger des listes avec filtrage, tri et pagination.

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
      }
    }
  }
}

Mutations

Créer une liste

Créer une nouvelle liste de tâches dans un projet.

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

Exemple :

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

Modifier une liste

Mettre à jour les propriétés d'une liste de tâches existante.

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

Exemple :

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

Supprimer une liste

Supprimer une liste de tâches (déplace vers la corbeille).

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

Exemple :

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

Marquer la liste comme terminée/non terminée

Marquer toutes les tâches dans une liste comme terminées ou non terminées.

# 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)
}

Types d'entrée

CreateTodoListInput

Paramètre Type Requis Description
projectId String! ✅ Oui L'ID du projet où la liste sera créée
title String! ✅ Oui Le nom de la liste
position Float! ✅ Oui La position de la liste (pour le tri)

EditTodoListInput

Paramètre Type Requis Description
todoListId String! ✅ Oui L'ID de la liste à modifier
title String Non Nouveau titre pour la liste
position Float Non Nouvelle position pour la liste
isLocked Boolean Non Si la liste doit être verrouillée

DeleteTodoListInput

Paramètre Type Requis Description
projectId String! ✅ Oui L'ID du projet (pour vérification)
todoListId String! ✅ Oui L'ID de la liste à supprimer

TodoListsFilterInput

Paramètre Type Requis Description
companyIds [String!]! ✅ Oui Filtrer par IDs d'entreprise
projectIds [String!] Non Filtrer par IDs de projet spécifiques
ids [String!] Non Filtrer par IDs de liste spécifiques
titles [String!] Non Filtrer par titres de liste
search String Non Rechercher des listes par titre

TodoListsSort Values

Valeur Description
title_ASC Trier par titre croissant
title_DESC Trier par titre décroissant
createdAt_ASC Trier par date de création croissante
createdAt_DESC Trier par date de création décroissante
updatedAt_ASC Trier par date de mise à jour croissante
updatedAt_DESC Trier par date de mise à jour décroissante
position_ASC Trier par position croissante (par défaut)
position_DESC Trier par position décroissante

Types de réponse

TodoList Type

Champ Type Description
id ID! Identifiant unique
uid String! Identifiant convivial
position Float! Position de la liste pour le tri
title String! Nom de la liste
isDisabled Boolean! Si la liste est désactivée
isLocked Boolean Si la liste est verrouillée
createdAt DateTime! Horodatage de création
updatedAt DateTime! Horodatage de la dernière mise à jour
activity Activity Journal d'activité associé
createdBy User Utilisateur qui a créé la liste
project Project! Projet parent
todos [Todo!]! Tâches dans cette liste
todosCount Int! Nombre de tâches

TodoListsPagination Type

Champ Type Description
items [TodoList!]! Tableau de listes de tâches
pageInfo PageInfo! Informations de pagination

Permissions requises

Permissions de requête

Opération Permission requise
todoList Must be authenticated
todoLists Must be authenticated and in company
todoListQueries.todoLists Must be authenticated and in company

Permissions de mutation

Opération Rôles autorisés au niveau du projet
createTodoList OWNER, ADMIN, MEMBER
editTodoList OWNER, ADMIN, MEMBER, CLIENT
deleteTodoList OWNER, ADMIN, MEMBER
markTodoListAsDone OWNER, ADMIN, MEMBER
markTodoListAsUndone OWNER, ADMIN, MEMBER

Remarque : Les utilisateurs avec le rôle CLIENT peuvent modifier les listes mais ne peuvent pas les créer ou les supprimer. Les utilisateurs avec les rôles VIEW_ONLY ou COMMENT_ONLY ne peuvent pas créer, modifier ou supprimer des listes.

Réponses d'erreur

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"
    }
  }]
}

Erreur de maximum de listes

{
  "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"
    }
  }]
}

Notes importantes

  • Limite de liste : Chaque projet peut avoir un maximum de 50 listes
  • Suppression douce : Les listes supprimées sont déplacées vers la corbeille et peuvent potentiellement être récupérées
  • Gestion de la position : Lors de la création de listes, assurez-vous que les positions ne se chevauchent pas. Utilisez des valeurs incrémentales (1.0, 2.0, 3.0) pour permettre l'insertion entre les listes
  • Accès basé sur les rôles : Les listes peuvent être cachées de certains rôles en utilisant les permissions ProjectUserRoleTodoList
  • Webhooks : La création, les mises à jour et la suppression de listes déclenchent des webhooks si configurés
  • Suivi des activités : Toutes les opérations sur les listes sont enregistrées dans le flux d'activité
  • Mises à jour en temps réel : Les modifications de liste sont publiées via des abonnements pour des mises à jour en temps réel

Opérations connexes

  • Utilisez todos pour interroger les tâches au sein d'une liste
  • Utilisez createTodo pour ajouter des tâches à une liste
  • Utilisez moveTodo pour déplacer des tâches entre les listes
  • Abonnez-vous aux changements de liste en utilisant subscribeToTodoList

Assistant IA

Les réponses sont générées par l'IA et peuvent contenir des erreurs.

Comment puis-je vous aider ?

Posez-moi toutes vos questions sur Blue ou cette documentation.

Entrez pour envoyer • Maj+Entrée pour une nouvelle ligne • ⌘I pour ouvrir