Comment créer un tableau de bord Trello pour que les tâches de 5 tableaux soient rassemblées en un?

Problématique

Dans mon travail, j'ai été confronté à la nécessité d'organiser les tâches des employés du service d'analyse dans un guichet unique et de construire un schéma transparent pour évaluer leur charge de travail.





Quelles sont les options?

En comparant divers outils et gestionnaires de tâches, le choix s'est porté sur l'un des acteurs du marché les plus populaires - Trello. Cependant, immédiatement après avoir choisi le programme, un nouvel obstacle est apparu. La version gratuite de cette application ne permettait pas de synchroniser les tableaux de plusieurs employés ensemble sans services tiers, tels que Zapier, où une licence est également requise pour un grand projet.





Quelle est la signification de l'unification?

  1. Allez dans 5 tableaux et regardez chacun séparément, il n'y a tout simplement pas assez de temps et d'efforts.





  2. Si vous ne synchronisez pas les tableaux sur un écran, il sera extrêmement difficile de comparer un employé avec un autre en termes de charge de travail actuelle.





  3. Les employés veulent comprendre la charge de travail de chacun des membres de l'équipe, et pour cela, encore une fois, vous devez en quelque sorte tout rassembler.     





Une telle fonctionnalité de synchronisation est disponible gratuitement chez certains concurrents spécialisés dans les gestionnaires de tâches agiles, mais Trello était juste plus familier, car je l'utilise pour le contrôle personnel des tâches depuis plusieurs années. Ainsi, afin d'introduire un gestionnaire de tâches de commande commun dans le travail du service, un seul problème reste à résoudre:





Comment synchroniser les tableaux de 5 employés dans un tableau de bord sans payer pour une licence dans Trello ou transférer des services comme Zapier?





La solution du problème:

trello R, API , .





:

API https://trello.com/app-key ( Trello )





,





R.    . R    RStudio.





:





  • API Trello — «trelloR»





  • — «lubridate»





  • — «dplyr»   





CRAN install.packages, github install_github:





remotes::install_github("jchrom/trelloR")
install.packages("lubridate", dependencies = TRUE)
install.packages("dplyr ", dependencies = TRUE)
      
      



API :





#         token
setwd("C:\\*********\\R_script\\trello")

#  token
my_token = get_token("my_app", key = "", secret = "",
                     expiration = c( "never"))
      
      



, , , :





trelloadd <- function(delcard = NULL,
                      addcard = NULL,
                      nlista = NULL){
  #          
     
  ishod_tab <- get_list_cards(addcard)
  
  #      
  bid = get_id_board(delcard)
  
  #        
  lid <- get_board_lists(bid)$id[nlista]
  
  #        
  cid<-get_list_cards(lid)
  
  #  ,        
  if (length(cid$id)>0) {
    for (i in 1:length(cid$id)) {
      delete_resource(resource = "card", id = cid$id[i])
    }
  }else{
    print("no-del")
  }
  
  #       
  dateList<- data.frame(dateadd = NA)
  for (i in 1:length(ishod_tab$id)) {
    cardID <- ishod_tab$id[i]
    dateList[i,1] <- strtoi(strtrim(cardID, 8), 16L)
  }
  dateList$dateadd <-as.POSIXct(dateList$dateadd, origin = "1970-01-01")
  
  #           
  if (length(ishod_tab$name)>0) {
    for (i in 1:length(ishod_tab$name)) {
        payload = list(
        idList = lid,
        name = ishod_tab$name[i],
        desc = paste0(ishod_tab$desc[i],"Date Add: " ,dateList$dateadd[i], " 
                       ", floor(as.vector(difftime(today(),dateList$dateadd[i], units='days'))), " "),
        start = ishod_tab$start [i],
        due = ishod_tab$due [i],
        pos = "bottom"
      )
      r <- create_resource("card", body = payload)
    }
  }else{
    print("Ok")
  }
  if (nrow(bind_rows(ishod_tab$labels[]))>0) {
  
    #   ()
    bid = get_id_board(delcard)
    lid <- get_board_lists(bid)$id[nlista]
    cid <-get_list_cards(lid)
    
    #    
    nlab <- which( lapply(ishod_tab$labels, length)!=0 %in% T)
    for (i in nlab) {
      labl <- ishod_tab$labels[[i]]
      for (xi in 1:nrow(labl)) {
        r <-  add_label(cid$id[i], color = ishod_tab$labels[[i]][xi,4],
                        name = ishod_tab$labels[[i]][xi,3] )  
      }
    }
   }else{
    print("no_lable")
  }
}
      
      



:





  • delcard - id





  • addcard - id





  • nlista -





delcard

id , , id





Exemple de lien: https://trello.com/b/*********/general-tasks - où les valeurs ****** seront l'identifiant d'un tableau spécifique
: https://trello.com/b/*********/- - ****** Id

addcard

, delcard , :





get_board_lists("https://trello.com/b/*****/1",
 query = list(customFieldItems = "true")
)
      
      



, R id





.





:





# 1 ####
trelloadd(delcard = "od*****W", 
          addcard = "600**********04",
          nlista = 2)
# 2 ####
trelloadd(delcard = "od*****W", 
          addcard = "5fc4********24",
          nlista = 3)
# 3 ####
trelloadd(delcard = "od*****W", 
          addcard = "5e94*********8ce",
          nlista = 4)
# 4 ####
trelloadd(delcard = "od*****W",
          addcard = "5faa*********c522",
          nlista = 5)
# 5 ####
trelloadd(delcard = "od*****W",
          addcard = "60744*******3394",
          nlista = 6)
# 6 ####
trelloadd(delcard = "od*****W",
          addcard = "5e73******b07",
          nlista = 7)
      
      



, , , , , ( ). .     .





Tableau de bord prêt
Tableau de bord prêt

Finalement:





  1. Nous avons obtenu la synchronisation complète de tous les tableaux de n'importe quel nombre d'employés dans trello





  2. Nous avons résolu le problème afin d'avoir visuellement accès à la date de création de chaque tâche





  3. Nous avons une base pour analyser la productivité des employés sous tous ses aspects, grâce à la possibilité d'ajouter diverses nouvelles améliorations au code, en développant le code basé sur Trello Api, en fonction de la logique métier de votre entreprise et des capacités du langage R.








All Articles