From c5ed0343c605ae56cffe17602299b08276aee14b Mon Sep 17 00:00:00 2001 From: Tykayn Date: Tue, 2 Mar 2021 12:09:05 +0100 Subject: [PATCH] stats par semaine --- output/export_tags.md | 6 +++--- routes/index.js | 38 ++++++++++++++++++++++++++++++++------ views/index.jade | 2 ++ 3 files changed, 37 insertions(+), 9 deletions(-) diff --git a/output/export_tags.md b/output/export_tags.md index 1e0a180..8d50945 100644 --- a/output/export_tags.md +++ b/output/export_tags.md @@ -1,10 +1,10 @@ # Export de Tâches GTG - date: 02/03/2021 à 11:56:59 + date: 02/03/2021 à 12:08:24 # Rapport des tâches durant les 7 derniers jours -## ont été fermées +## 29 ont été fermées -## ont été ouvertes +## 68 ont été ouvertes --- # Stats de fermeture des tâches diff --git a/routes/index.js b/routes/index.js index 4fdb928..fa40074 100644 --- a/routes/index.js +++ b/routes/index.js @@ -74,20 +74,41 @@ function computeData(jsonAllData) { maxTasksCountPerTag: 0, listOpen : [], listOpenWeekly : [], + listOpenMonthly : [], listClosed : [], listClosedWeekly : [], + listClosedMonthly : [], } + let now = new Date(); for (let t of jsonAllData.tasks.project.task) { // console.log('t', t) let tags = t["$"].tags.split(',') // count open and closed tasks - if(t['$'].status == 'Active'){ - jsonAllData.stats.listOpen.push(t) + let dateOfTask = new Date() - }else if(t['$'].status == 'Done'){ - jsonAllData.stats.listClosed.push(t) + if (t['$'].status == 'Active') { + jsonAllData.stats.listOpen.push(t) + let addeddate = new Date(t.addeddate) + let daysDiff = getNumberOfDaysDiffTwoDates(addeddate, now); + + if (daysDiff <= 7) { + jsonAllData.stats.listOpenWeekly.push(t) + } else if (daysDiff >= 7 & daysDiff <= 31) { + jsonAllData.stats.listOpenMonthly.push(t) + } + + } else if (t['$'].status == 'Done') { + jsonAllData.stats.listClosed.push(t) + let donedate = new Date(t.donedate) + let daysDiff = getNumberOfDaysDiffTwoDates(donedate, now); + + if (daysDiff <= 7) { + jsonAllData.stats.listClosedWeekly.push(t) + } else if (daysDiff >= 7 & daysDiff <= 31) { + jsonAllData.stats.listClosedMonthly.push(t) + } } @@ -135,6 +156,11 @@ function computeData(jsonAllData) { } +const oneDay = 24 * 60 * 60 * 1000; // hours*minutes*seconds*milliseconds +function getNumberOfDaysDiffTwoDates(firstDate, secondDate) { + return Math.round(Math.abs((firstDate - secondDate) / oneDay)); +} + function convertOneXmlToJson(fileToOpen, res) { fs.readFile(`sources/${fileToOpen}.xml`, "utf-8", function (err, data) { if (err) console.log(err); @@ -183,9 +209,9 @@ function exportToMarkdown(res) { // fichier de rapport des tâches fermées durant les 7 derniers jours dataTagsMd += `\n# Rapport des tâches durant les 7 derniers jours `; dataTagsMd += `\n `; - dataTagsMd += `\n## ${jsonAllData.stats.listClosedWeekly} ont été fermées `; + dataTagsMd += `\n## ${jsonAllData.stats.listClosedWeekly.length} ont été fermées `; dataTagsMd += `\n `; - dataTagsMd += `\n## ${jsonAllData.stats.listOpenWeekly} ont été ouvertes `; + dataTagsMd += `\n## ${jsonAllData.stats.listOpenWeekly.length} ont été ouvertes `; dataTagsMd += `\n `; dataTagsMd += `\n--- `; // fichier de rapport des tâches fermées durant les 31 derniers jours diff --git a/views/index.jade b/views/index.jade index dcb9cae..eed333a 100644 --- a/views/index.jade +++ b/views/index.jade @@ -8,8 +8,10 @@ block content ul.stats li #{json.stats.listOpen.length} ouvertes li #{json.stats.listOpenWeekly.length} ouvertes cette semaine + li #{json.stats.listOpenMonthly.length} ouvertes ce mois-ci li #{json.stats.listClosed.length} fermées li #{json.stats.listClosedWeekly.length} fermées cette semaine + li #{json.stats.listClosedMonthly.length} fermées ce mois-ci section.tags h2 #{json.tags.tagstore.tag.length} Tags p maximum de #{json.stats.maxTasksCountPerTag} tâches pour un tag.