From 95cc10a8de4299c346cef22408d044d2045ebf9e Mon Sep 17 00:00:00 2001 From: Bastien COIGNOUX Date: Mon, 14 Jul 2025 19:10:55 +0200 Subject: [PATCH] assign_dont_work --- svar-gantt-app/data.db | Bin 20480 -> 20480 bytes svar-gantt-app/scripts/init-db.js | 3 +- .../src/routes/api/tasks/+server.ts | 35 ++++++++--- svar-gantt-app/src/routes/gantt/+page.svelte | 58 +++++++++++------- svar-gantt-app/src/routes/import/+page.svelte | 8 ++- tickets.csv | 14 ++--- 6 files changed, 77 insertions(+), 41 deletions(-) diff --git a/svar-gantt-app/data.db b/svar-gantt-app/data.db index 652f09897fffac43f6bf1dfa3914dd4d0f0d2b31..57014f2e59ca2d394222b11519a0201dcce47df9 100644 GIT binary patch delta 419 zcmZozz}T>Wae}lUD+2=q2*UvLL>*&MRtCK;Azq*m3ojD`-&MY5-jBRYn-vB6c$gb= zSSAbbzGGyb{GV5hk!7+N-)Tt=Ms{&=amE(?lEkE()RM&F>|!v%H2D|bE$_tQ;>`5C z)Rd5Xg%H<>5FIWBAjnCqs*KOcPfW?oOIL96_xEvi^iyzgb#n~$2~jWrD$xX4&&HR* zz`virmfw``7vFZi44@N2_;`HTxEVYZ6*)OY8B{0lmot}eODxIEO;m6S@(=ZOWaVbi zRa9hT1W7W=Yokb7vT!rV!X(Y*l~E+!n7J9uVUnrx1}KsaOmJhBCohoK77xzM&Cdh6 zJkmADo)IF)Apf6YJO9+L(fKmZ5;0U!VbfB+Bx0zd!=0D)&s;8=~uGo=#ydEAutRIFoTJk|Sn zccMy~rf9>tj_B2nSnrCcTW>T)G$*5rDMSuMMjNfJ_?Fl~Tb+%~dZ&lp7JI0^(`|3G z$OxNatGj4B$p~~x)D_?9qE?%nJIy8)C;E7xsD6qpku980gsd2ov8L=PssW!bK z$#j>Fg-AS;$*{+t*yXBf32NypkLq^k7s5o)yCO|jlW z*Tn1fon{x65h@nZ!|%RC^;_eqiIl!#5w|zvXY4OtM7Sv|@{jl*pY_)e<_7{m00;m9 zAOHk_01yBIKmZ5;0U%%zxDrb-8~J=Pd5%elnmidRWCwijd(!=Uwqyt8~I8mPRE=QT3_0Pkt9r21?(q%kwUKt(B;irM3SL3BNJIU*rM@5C8%| z00;m9AOHk_01yBIKmZ5;0U+=k5;zwMm)N=2Qp_Y9&al?*--ucJ{}_4XFZ?Xrh3Egz z;Vp)gfdCKy0zd!=00AHX1b_e#00J*C0eJpzz0&YMJ^$zaWL`~=7~yx}C*d1G6-40z z|2O|Df5PA45BVE>g?}kM;_h=N+#PPp^|&{k^UuplD_)_FES_%2mk>f00e*l z5C8%|00;nq|3=`#evB!cJs-bL-bo%wsL^TfY|8j{tyEbrS??vk`GAhUV8)p2+4IR3 z#xlBwZ`+<~)%GkHep-cUx}R32+M%r_X2x{pU6}Z3Ycy``r`4#Y`Dv?E8~JG~R8#%5 zWn0S~*o=~MjGX#&w}N!aAg2WBlmj7*$UR8Rjqk9?4FlpUlt*q5q*Eq29Hdh&IXOtD zY;t{D_sNg)DeT3V*T@>$Rz~C><{Ryv*m-h!xJ#%Y1=uJh&-P(}jlyzm* { + const taskTx = db.transaction(({ tasks, links }) => { db.prepare('DELETE FROM tasks').run(); db.prepare('DELETE FROM links').run(); - for (const task of all.tasks) { + for (const task of tasks) { insertTask.run({ ...task, start: typeof task.start === 'object' ? new Date(task.start).toISOString() : task.start, end: typeof task.end === 'object' ? new Date(task.end).toISOString() : task.end, - lazy: task.lazy ? 1 : 0, // ⚠️ SQLite ne supporte pas le type boolean natif + lazy_loading: task.lazy_loading ? 1 : 0 }); } - - for (const link of all.links) { + for (const link of links) { insertLink.run(link); } }); diff --git a/svar-gantt-app/src/routes/gantt/+page.svelte b/svar-gantt-app/src/routes/gantt/+page.svelte index fc46815..6135ccb 100644 --- a/svar-gantt-app/src/routes/gantt/+page.svelte +++ b/svar-gantt-app/src/routes/gantt/+page.svelte @@ -4,40 +4,52 @@ let tasks = []; let links = []; + + // 🗓️ Affichage : mois + jours const scales = [ { unit: 'month', step: 1, format: 'MMMM yyyy' }, { unit: 'day', step: 1, format: 'd' } ]; + // 📋 Options : colonnes personnalisées + const options = { + taskList: { + visible: true, // ✅ Important + columns: [ + { id: 'text', label: 'Nom', value: 'text', width: 200 }, + { id: 'assignedTo', label: 'Assignée à', value: 'assignedTo', width: 150 } + ] + } + }; + + onMount(async () => { - const res = await fetch('/api/tasks'); - if (res.ok) { - const { tasks: loadedTasks, links: loadedLinks } = await res.json(); + const res = await fetch('/api/tasks'); + if (res.ok) { + const { tasks: loadedTasks, links: loadedLinks } = await res.json(); - tasks = loadedTasks.map(task => { - const start = new Date(task.start); - const duration = task.duration || task.estimation || 1; + tasks = loadedTasks.map(task => { + const start = new Date(task.start); + const duration = task.duration || task.estimation || 1; - const end = new Date(start); - end.setDate(start.getDate() + duration); - - return { - ...task, - start: start.toISOString().slice(0, 10), - end: end.toISOString().slice(0, 10), - duration - }; - }); - - links = loadedLinks; - } else { - console.error('Erreur de chargement des données depuis la base.'); - } -}); + const end = new Date(start); + end.setDate(start.getDate() + duration); + return { + ...task, + start: start.toISOString().slice(0, 10), + end: end.toISOString().slice(0, 10), + duration: duration + }; + }); + links = loadedLinks; + } else { + console.error('Erreur de chargement des données depuis la base.'); + } + }); - + diff --git a/svar-gantt-app/src/routes/import/+page.svelte b/svar-gantt-app/src/routes/import/+page.svelte index 38d9cdd..193e5fc 100644 --- a/svar-gantt-app/src/routes/import/+page.svelte +++ b/svar-gantt-app/src/routes/import/+page.svelte @@ -25,13 +25,14 @@ return { id: index + 1, text: entry['Nom Ticket'], - start: start.toISOString().split('T')[0], // ⬅️ Converti en string - end: end.toISOString().split('T')[0], // ⬅️ Converti en string + start: start.toISOString().split('T')[0], + end: end.toISOString().split('T')[0], duration: Number(entry['Estimation (j)']) || 1, progress: Number(entry['RAF']) || 0, type: 'task', parent: null, - lazy: false + assignedTo: entry['assignedTo'] || '', // ✅ Ajout ici + lazy_loading: false // ✅ Correspond à la colonne renommée }; }); @@ -53,6 +54,7 @@ } +

Importer un fichier CSV

diff --git a/tickets.csv b/tickets.csv index a03b822..72c706b 100644 --- a/tickets.csv +++ b/tickets.csv @@ -1,7 +1,7 @@ -ID Ticket,Nom Ticket,Estimation (j),Sprint,Statut,RAF -T-001,Authentification,5,Sprint 1,Terminé,0 -T-002,Page d’accueil,3,Sprint 1,En cours,2 -T-003,Système de recherche,4,Sprint 2,À faire,4 -T-005,Sprint 3,3,Sprint 1,En cours,2 -T-004,Configuration BO,4,Sprint 2,À faire,4 -T-006,Endpoint à configurer sur api,1,Sprint 2,À faire,1 \ No newline at end of file +ID Ticket,Nom Ticket,Estimation (j),Sprint,Statut,RAF,assignedTo +T-001,Authentification,5,Sprint 1,Terminé,0,Simon BOYER +T-002,Page d’accueil,3,Sprint 1,En cours,2,Simon BOYER +T-003,Système de recherche,4,Sprint 2,À faire,4,Fatima BROUM +T-005,Sprint 3,3,Sprint 1,En cours,2,Fatima BROUM +T-004,Configuration BO,4,Sprint 2,À faire,4,Fatima BROUM +T-006,Endpoint à configurer sur api,1,Sprint 2,À faire,1,Fatima BROUM \ No newline at end of file