Compare commits

...

2 Commits

Author SHA1 Message Date
Tykayn f4ac8fcd22 long report md structure 2021-09-10 15:14:55 +02:00
Tykayn 8c180f2e47 working categorisation 2021-09-10 15:02:40 +02:00
3 changed files with 177 additions and 165 deletions

View File

@ -1,9 +1,9 @@
html, body { html, body {
font: 14px "Lucida Grande", Helvetica, Arial, sans-serif; font: 14px "Lucida Grande", Helvetica, Arial, sans-serif;
background: #111; background: #dddddd;
color: #fff; color: #111;
height: 100vh; min-height: 100vh;
} }
body { body {
padding: 50px; padding: 50px;

View File

@ -17,6 +17,7 @@ let jsonAllData = {
stats: {}, stats: {},
projects: {}, projects: {},
tags: {}, tags: {},
weeklyDevReport: ''
} }
/* GET home page. */ /* GET home page. */
/** /**
@ -70,7 +71,6 @@ router.get('/', async function (req, res, next) {
title: "Conversion de GTG tâches", title: "Conversion de GTG tâches",
json: jsonAllData, json: jsonAllData,
markdown: markdownExportData, markdown: markdownExportData,
weeklyDevReport,
getPercent, getPercent,
computeBgColorOnProportionOfOpenTasks, computeBgColorOnProportionOfOpenTasks,
getPercentOfOpenTasks getPercentOfOpenTasks
@ -95,14 +95,15 @@ function computeData(jsonConvertedData) {
// trouver le nombre de tâches ayant un tag en particulier // trouver le nombre de tâches ayant un tag en particulier
// et rajouter ce nombre à chaque tag, dans countTasks : N // et rajouter ce nombre à chaque tag, dans countTasks : N
// let counterOfTasks = jsonConvertedData.tasklist let counterOfTasks = gtgData.tasklist[0].task
// compter les tâches // compter les tâches
// console.log('counterOfTasks',counterOfTasks); // console.log('counterOfTasks',counterOfTasks);
jsonAllData.all = gtgData
jsonAllData.stats = { jsonAllData.stats = {
// tasksCount : counterOfTasks.length, tasksCount : counterOfTasks.length,
tasksCount: 0, // tasksCount: 0,
tasksClosed: 0, tasksClosed: 0,
tasksOpen: 0, tasksOpen: 0,
maxTasksCountPerTag: 0, maxTasksCountPerTag: 0,
@ -112,6 +113,7 @@ function computeData(jsonConvertedData) {
listOpenMonthly: [], listOpenMonthly: [],
listClosed: [], listClosed: [],
listClosedWeekly: [], listClosedWeekly: [],
tasksListIsDismissByTitle: [],
listDevWeeklyClosed: [], listDevWeeklyClosed: [],
listDevWeeklyOpen: [], listDevWeeklyOpen: [],
listClosedMonthly: [], listClosedMonthly: [],
@ -164,46 +166,48 @@ function computeData(jsonConvertedData) {
for (let tag of jsonAllData.stats.listTags) { for (let tag of jsonAllData.stats.listTags) {
// console.log('tag', tag) // console.log('tag', tag)
// jsonAllData.tags.tagstore.tag.map(elem => { jsonAllData.stats.listTags.map(elem => {
// // console.log('elem', elem) // console.log('elem', elem)
// if (elem['$'].name == tag) { if (elem['$'].name == tag) {
// if (!elem.tasks) { if (!elem.tasks) {
// elem.tasks = 0 elem.tasks = 0
// } }
// if (!elem.tasksListById) { if (!elem.tasksListById) {
// elem.tasksListById = [] elem.tasksListById = []
// } }
// if (!elem.tasksListByTitle) { if (!elem.tasksListByTitle) {
// elem.tasksListByTitle = [] elem.tasksListByTitle = []
// } }
// if (!elem.tasksListIsActiveByTitle) { if (!elem.tasksListIsActiveByTitle) {
// elem.tasksListIsActiveByTitle = [] elem.tasksListIsActiveByTitle = []
// } }
// if (!elem.tasksListIsDoneByTitle) { if (!elem.tasksListIsDoneByTitle) {
// elem.tasksListIsDoneByTitle = [] elem.tasksListIsDoneByTitle = []
// } }
// elem.tasks++ elem.tasks++
// elem.tasksListById.push(taskItem['$'].id) elem.tasksListById.push(taskItem['$'].id)
// elem.tasksListByTitle.push(taskItem.title) elem.tasksListByTitle.push(taskItem.title)
// if (taskItem['$'].status == "Active") { if (taskItem['$'].status == "Active") {
// elem.tasksListIsActiveByTitle.push(taskItem.title) elem.tasksListIsActiveByTitle.push(taskItem.title)
// }
// } if (taskItem['$'].status == "Done") {
// if (taskItem['$'].status == "Done") { elem.tasksListIsDoneByTitle.push(taskItem.title)
// elem.tasksListIsDoneByTitle.push(taskItem.title) }
// } if (taskItem['$'].status == "Dismiss") {
// } elem.tasksListIsDismissByTitle.push(taskItem.title)
// if (elem.tasks > gtgData.stats.maxTasksCountPerTag) { }
// jsonAllData.stats.maxTasksCountPerTag = elem.tasks }
// } if (elem.tasks > jsonAllData.stats.maxTasksCountPerTag) {
// }) jsonAllData.stats.maxTasksCountPerTag = elem.tasks
}
})
} }
} }
// sort tags by name // sort tags by name
console.log('stats', jsonAllData.stats); console.log('stats', jsonAllData);
return jsonAllData.stats return jsonAllData
} }
@ -255,119 +259,123 @@ function computeBgColorOnProportionOfOpenTasks(someProportionNumber) {
let datenow = new Date(); let datenow = new Date();
let markdownExportData = '' let markdownExportData = ''
let weeklyDevReport = '' let dataTagsMd = ''
function exportToMarkdown(res) { function exportToMarkdown(res) {
let weeklyDevReport = ''
console.log('jsonAllData.stats', jsonAllData.stats); console.log('jsonAllData.stats', jsonAllData.stats);
markdownExportData = `# Export de Tâches GTG \n date: ` + datenow.toLocaleString() markdownExportData = `# Export de Tâches GTG \n date: ` + datenow.toLocaleString()
// // fichier de rapport des tâches fermées durant les 7 derniers jours // fichier de rapport des tâches fermées durant les 7 derniers jours
// weeklyDevReport = `\n# Rapport hebdomadaire de dev `; weeklyDevReport = `\n# Rapport hebdomadaire de dev `;
// weeklyDevReport += `\n## 1/ Actions passées ou en cours weeklyDevReport += `\n## 1/ Actions passées ou en cours
// \n ` \n `
// weeklyDevReport += `\r\n## ${jsonAllData.stats.listDevWeeklyClosed.length} ont été fermées weeklyDevReport += `\r\n## ${jsonAllData.stats.listDevWeeklyClosed.length} ont été fermées
// \n___`; \n___`;
// jsonAllData.stats.listDevWeeklyClosed.map(elem => { jsonAllData.stats.listDevWeeklyClosed.map(elem => {
// weeklyDevReport += `\n| ${elem['$'].tags} | ${elem.title}|`; weeklyDevReport += `\n| ${elem['$'].tags} | ${elem.title}|`;
// }) })
// weeklyDevReport += ` weeklyDevReport += `
// \n___ \n___
// \n \n
// \n## 2/ Actions à venir \n## 2/ Actions à venir
// \n ` \n `
// weeklyDevReport += `\r\n## ${jsonAllData.stats.listDevWeeklyOpen.length} ont été ouvertes weeklyDevReport += `\r\n## ${jsonAllData.stats.listDevWeeklyOpen.length} ont été ouvertes
// \n___`; \n___`;
// jsonAllData.stats.listDevWeeklyOpen.map(elem => { jsonAllData.stats.listDevWeeklyOpen.map(elem => {
// // weeklyDevReport += `\n| ${elem['$'].tags} | ${elem.title}|`; // weeklyDevReport += `\n| ${elem['$'].tags} | ${elem.title}|`;
// weeklyDevReport += `\n| ${elem.title}|`; weeklyDevReport += `\n| ${elem.title}|`;
// }) })
// weeklyDevReport += ` weeklyDevReport += `
// \n___ \n___
// \n \n
// \n## 3/ Points de blocage / points en retard corrigés cette semaine \n## 3/ Points de blocage / points en retard corrigés cette semaine
// \n \n
// \n## 4/ Points de blocage existants / points en retard à traiter \n## 4/ Points de blocage existants / points en retard à traiter
// \n \n
// \n## 5/ Points forts de la semaine \n## 5/ Points forts de la semaine
// \n \n
// \n## 6/ Points de vigilance de la semaine \n## 6/ Points de vigilance de la semaine
// \n \n
// \n## 7/ Points forts de la réunion \n## 7/ Points forts de la réunion
// \n \n
// \n## 8/ Points de vigilance de la réunion `; \n## 8/ Points de vigilance de la réunion `;
//
// markdownExportData += `\n ${weeklyDevReport}`;
// markdownExportData += `\n---`;
// markdownExportData += `\n `;
// markdownExportData += `\n# Rapport des tâches durant les 7 derniers jours `;
// markdownExportData += `\n `;
// markdownExportData += `\n## ${jsonAllData.stats.listClosedWeekly.length} ont été fermées `;
// markdownExportData += `\n `;
// jsonAllData.stats.listClosedWeekly.map(elem => {
// markdownExportData += `\n * ${elem.title}`;
// })
// markdownExportData += `\n## ${jsonAllData.stats.listOpenWeekly.length} ont été ouvertes `;
// markdownExportData += `\n `;
// jsonAllData.stats.listOpenWeekly.map(elem => {
// markdownExportData += `\n * ${elem.title}`;
// })
// markdownExportData += `\n--- `;
// // fichier de rapport des tâches fermées durant les 31 derniers jours
// markdownExportData += `\n# Rapport des autres tâches durant le mois `;
// markdownExportData += `\n `;
// markdownExportData += `\n## ${jsonAllData.stats.listClosedMonthly.length} ont été fermées `;
// markdownExportData += `\n `;
// jsonAllData.stats.listClosedMonthly.map(elem => {
// markdownExportData += `\n * ${elem.title}`;
// })
// markdownExportData += `\n## ${jsonAllData.stats.listOpenMonthly.length} ont été ouvertes `;
// markdownExportData += `\n `;
// jsonAllData.stats.listOpenMonthly.map(elem => {
// markdownExportData += `\n * ${elem.title}`;
// })
//
// markdownExportData += `\n--- `;
// // stats de fermeture des tâches
// markdownExportData += `\n# Stats de fermeture des tâches `;
// markdownExportData += `\n `;
// markdownExportData += `\n--- `;
// markdownExportData += `\n `;
// markdownExportData += `\n# Export de toutes les ${jsonAllData.stats.listOpen.length} tâches ouvertes GTG \n `;
// markdownExportData += `\n `;
// jsonAllData.stats.listOpen.map(elem => { markdownExportData += `\n ${weeklyDevReport}`;
// dataTagsMd += `\n## ${elem.title} `; markdownExportData += `\n---`;
// dataTagsMd += `\n statut : ${elem['$'].status} `; markdownExportData += `\n `;
// dataTagsMd += `\n créé le : ${elem.addeddate} `; markdownExportData += `\n# Rapport des tâches durant les 7 derniers jours `;
// dataTagsMd += `\n modifié le : ${elem.modified} `; markdownExportData += `\n `;
// dataTagsMd += `\n prévu pour : ${elem.duedate | ''} `; markdownExportData += `\n## ${jsonAllData.stats.listClosedWeekly.length} ont été fermées `;
// dataTagsMd += `\n ${elem.content} `; markdownExportData += `\n `;
// }) jsonAllData.stats.listClosedWeekly.map(elem => {
// markdownExportData += `\n--- `; markdownExportData += `\n * ${elem.title}`;
// markdownExportData += `\n `; })
// markdownExportData += `\n# Export de toutes les ${jsonAllData.stats.listClosed.length} tâches fermées GTG \n `; markdownExportData += `\n## ${jsonAllData.stats.listOpenWeekly.length} ont été ouvertes `;
// markdownExportData += `\n `; markdownExportData += `\n `;
// jsonAllData.stats.listOpenWeekly.map(elem => {
// jsonAllData.stats.listClosed.map(elem=>{ markdownExportData += `\n * ${elem.title}`;
// dataTagsMd += `\n * ${elem.title} `; })
// }) markdownExportData += `\n--- `;
// fichier de rapport des tâches fermées durant les 31 derniers jours
markdownExportData += `\n# Rapport des autres tâches durant le mois `;
markdownExportData += `\n `;
markdownExportData += `\n## ${jsonAllData.stats.listClosedMonthly.length} ont été fermées `;
markdownExportData += `\n `;
jsonAllData.stats.listClosedMonthly.map(elem => {
markdownExportData += `\n * ${elem.title}`;
})
markdownExportData += `\n## ${jsonAllData.stats.listOpenMonthly.length} ont été ouvertes `;
markdownExportData += `\n `;
jsonAllData.stats.listOpenMonthly.map(elem => {
markdownExportData += `\n * ${elem.title}`;
})
// markdownExportData += `\n `; markdownExportData += `\n--- `;
// markdownExportData += `\n# Export de Tags GTG \n `; // stats de fermeture des tâches
// markdownExportData += `\n `; markdownExportData += `\n# Stats de fermeture des tâches `;
// markdownExportData += `\n `; markdownExportData += `\n `;
markdownExportData += `\n--- `;
markdownExportData += `\n `;
markdownExportData += `\n# Export de toutes les ${jsonAllData.stats.listOpen.length} tâches ouvertes GTG \n `;
markdownExportData += `\n `;
jsonAllData.stats.listOpen.map(elem => {
dataTagsMd += `\n## ${elem.title} `;
dataTagsMd += `\n statut : ${elem['$'].status} `;
dataTagsMd += `\n créé le : ${elem.addeddate} `;
dataTagsMd += `\n modifié le : ${elem.modified} `;
dataTagsMd += `\n prévu pour : ${elem.duedate | ''} `;
dataTagsMd += `\n ${elem.content} `;
})
markdownExportData += `\n--- `;
markdownExportData += `\n `;
markdownExportData += `\n# Export de toutes les ${jsonAllData.stats.listClosed.length} tâches fermées GTG \n `;
markdownExportData += `\n `;
jsonAllData.stats.listClosed.map(elem=>{
dataTagsMd += `\n * ${elem.title} `;
})
markdownExportData += `\n `;
markdownExportData += `\n# Export de Tags GTG \n `;
markdownExportData += `\n `;
markdownExportData += `\n `;
let sortedTagsByTitle = _.sortBy(jsonAllData.stats.listTags, [(o) => {
o["$"].name
}])
sortedTagsByTitle.map(elem => {
markdownExportData += `\n * ${elem['$'].name} , ${elem.tasks | 0}`;
})
markdownExportData += `\n `;
markdownExportData += `\n rapport généré avec gtg2nodejs par tykayn - contact@cipherbliss.com `;
jsonAllData.weeklyDevReport = weeklyDevReport;
// let sortedTagsByTitle = _.sortBy(jsonAllData.tags.tagstore.tag, [(o) => {
// o["$"].name
// }])
//
// sortedTagsByTitle.map(elem => {
// markdownExportData += `\n * ${elem['$'].name} , ${elem.tasks | 0}`;
// })
//
// markdownExportData += `\n `;
// markdownExportData += `\n rapport généré avec gtg2nodejs par tykayn - contact@cipherbliss.com `;
// write file to disk // write file to disk
fs.writeFile(`output/export_hebdo.md`, markdownExportData, `utf8`, (err) => { fs.writeFile(`output/export_hebdo.md`, markdownExportData, `utf8`, (err) => {

View File

@ -4,20 +4,24 @@ block content
h1= title h1= title
p Welcome to #{title} p Welcome to #{title}
section.tasks section.tasks
h2 #{json.tasks.project.task.length} Tâches h2 #{json.stats.tasksCount} Tâches
ul.stats ul.stats
li #{json.stats.listOpen.length} ouvertes li #{json.stats.listOpen.length} ouvertes
li #{json.stats.listOpenWeekly.length} ouvertes cette semaine li #{json.stats.listOpenWeekly.length} ouvertes cette semaine
li #{json.stats.listOpenMonthly.length} ouvertes ce mois-ci li #{json.stats.listOpenMonthly.length} ouvertes ce mois-ci
li #{json.stats.listClosed.length} fermées li #{json.stats.listClosed.length} fermées
li #{json.stats.tasksListIsDismissByTitle.length} dismissed
li #{json.stats.listClosedWeekly.length} fermées cette semaine li #{json.stats.listClosedWeekly.length} fermées cette semaine
li #{json.stats.listClosedMonthly.length} fermées ce mois-ci li #{json.stats.listClosedMonthly.length} fermées ce mois-ci
section.markdown section.markdown
h2 Rapport de dev de la semaine h2 Rapport de dev de la semaine
article(language="md")= weeklyDevReport article(language="md")= weeklyDevReport
section.tags section.tags
h2 #{json.tags.tagstore.tag.length} Tags h2 #{json.stats.listTags.length} Tags
p maximum de #{json.stats.maxTasksCountPerTag} tâches pour un tag. p maximum de #{json.stats.maxTasksCountPerTag} tâches pour un tag.
h2 Liste de rapport hebdo
.report= json.weeklyDevReport
h2 Tags
ul.tags ul.tags
li.head li.head
span.name nom span.name nom
@ -27,20 +31,20 @@ block content
span.tasks finies span.tasks finies
span.tasks actives span.tasks actives
span.tasks actives % span.tasks actives %
each t in json.tags.tagstore.tag each tagItem in json.stats.listTags
li li
span.name(class= {emphasis: t.tasks == json.stats.maxTasksCountPerTag})= t['$'].name span.name(class= {emphasis: tagItem.subtasks == json.stats.maxTasksCountPerTag})= tagItem['$'].name
span.color= t['$'].color span.color= tagItem['$'].color
span.parent= t['$'].parent span.parent= tagItem['$'].parent
if t.tasksListIsDoneByTitle //- if t.tasksListIsDoneByTitle
span.text-right(class=computeBgColorOnProportionOfOpenTasks(getPercent(t.tasks, json.stats.maxTasksCountPerTag)))= t.tasks //- span.text-right(class=computeBgColorOnProportionOfOpenTasks(getPercent(t.tasks, json.stats.maxTasksCountPerTag)))= t.tasks
if t.tasksListIsDoneByTitle //- if t.tasksListIsDoneByTitle
span.text-right.tasks= t.tasksListIsDoneByTitle.length //- span.text-right.tasks= t.tasksListIsDoneByTitle.length
if t.tasksListIsActiveByTitle //- if t.tasksListIsActiveByTitle
span.text-right.tasks #{t.tasksListIsActiveByTitle.length} //- span.text-right.tasks #{t.tasksListIsActiveByTitle.length}
span.text-right.tasks(class=computeBgColorOnProportionOfOpenTasks(getPercent(t.tasksListIsActiveByTitle.length, t.tasks))) #{getPercent(t.tasksListIsActiveByTitle.length, t.tasks)} % //- span.text-right.tasks(class=computeBgColorOnProportionOfOpenTasks(getPercent(t.tasksListIsActiveByTitle.length, t.tasks))) #{getPercent(t.tasksListIsActiveByTitle.length, t.tasks)} %
span.text-right.tasks #{getPercent(t.tasksListIsActiveByTitle.length,json.stats.listOpen.length )} % //- span.text-right.tasks #{getPercent(t.tasksListIsActiveByTitle.length,json.stats.listOpen.length )} %
button.text-right.toggle voir //- button.text-right.toggle voir
ul //- ul
each activetask in t.tasksListIsActiveByTitle //- each activetask in t.tasksListIsActiveByTitle
li.task_item= activetask //- li.task_item= activetask