diff --git a/.vs/ProjectSettings.json b/.vs/ProjectSettings.json new file mode 100644 index 0000000..f8b4888 --- /dev/null +++ b/.vs/ProjectSettings.json @@ -0,0 +1,3 @@ +{ + "CurrentProjectSetting": null +} \ No newline at end of file diff --git a/.vs/RGC/CopilotIndices/17.14.1577.30250/CodeChunks.db b/.vs/RGC/CopilotIndices/17.14.1577.30250/CodeChunks.db new file mode 100644 index 0000000..3e14a5a Binary files /dev/null and b/.vs/RGC/CopilotIndices/17.14.1577.30250/CodeChunks.db differ diff --git a/.vs/RGC/CopilotIndices/17.14.1577.30250/CodeChunks.db-shm b/.vs/RGC/CopilotIndices/17.14.1577.30250/CodeChunks.db-shm new file mode 100644 index 0000000..9b7ec2a Binary files /dev/null and b/.vs/RGC/CopilotIndices/17.14.1577.30250/CodeChunks.db-shm differ diff --git a/.vs/RGC/CopilotIndices/17.14.1577.30250/CodeChunks.db-wal b/.vs/RGC/CopilotIndices/17.14.1577.30250/CodeChunks.db-wal new file mode 100644 index 0000000..cdda5d5 Binary files /dev/null and b/.vs/RGC/CopilotIndices/17.14.1577.30250/CodeChunks.db-wal differ diff --git a/.vs/RGC/CopilotIndices/17.14.1577.30250/SemanticSymbols.db b/.vs/RGC/CopilotIndices/17.14.1577.30250/SemanticSymbols.db new file mode 100644 index 0000000..92cf262 Binary files /dev/null and b/.vs/RGC/CopilotIndices/17.14.1577.30250/SemanticSymbols.db differ diff --git a/.vs/RGC/CopilotIndices/17.14.1577.30250/SemanticSymbols.db-shm b/.vs/RGC/CopilotIndices/17.14.1577.30250/SemanticSymbols.db-shm new file mode 100644 index 0000000..3f49034 Binary files /dev/null and b/.vs/RGC/CopilotIndices/17.14.1577.30250/SemanticSymbols.db-shm differ diff --git a/.vs/RGC/CopilotIndices/17.14.1577.30250/SemanticSymbols.db-wal b/.vs/RGC/CopilotIndices/17.14.1577.30250/SemanticSymbols.db-wal new file mode 100644 index 0000000..d9e4866 Binary files /dev/null and b/.vs/RGC/CopilotIndices/17.14.1577.30250/SemanticSymbols.db-wal differ diff --git a/.vs/RGC/v17/.wsuo b/.vs/RGC/v17/.wsuo index 66b44f7..cdb06f4 100644 Binary files a/.vs/RGC/v17/.wsuo and b/.vs/RGC/v17/.wsuo differ diff --git a/.vs/RGC/v17/DocumentLayout.backup.json b/.vs/RGC/v17/DocumentLayout.backup.json new file mode 100644 index 0000000..14f170b --- /dev/null +++ b/.vs/RGC/v17/DocumentLayout.backup.json @@ -0,0 +1,59 @@ +{ + "Version": 1, + "WorkspaceRootPath": "C:\\Users\\oimer\\source\\repos\\RGC\\", + "Documents": [], + "DocumentGroupContainers": [ + { + "Orientation": 0, + "VerticalTabListWidth": 256, + "DocumentGroups": [ + { + "DockedWidth": 200, + "SelectedChildIndex": -1, + "Children": [ + { + "$type": "Bookmark", + "Name": "ST:128:0:{1fc202d4-d401-403c-9834-5b218574bb67}" + }, + { + "$type": "Bookmark", + "Name": "ST:129:0:{1fc202d4-d401-403c-9834-5b218574bb67}" + }, + { + "$type": "Bookmark", + "Name": "ST:148:0:{1fc202d4-d401-403c-9834-5b218574bb67}" + }, + { + "$type": "Bookmark", + "Name": "ST:149:0:{1fc202d4-d401-403c-9834-5b218574bb67}" + }, + { + "$type": "Bookmark", + "Name": "ST:150:0:{1fc202d4-d401-403c-9834-5b218574bb67}" + }, + { + "$type": "Bookmark", + "Name": "ST:128:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}" + }, + { + "$type": "Bookmark", + "Name": "ST:129:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}" + }, + { + "$type": "Bookmark", + "Name": "ST:130:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}" + }, + { + "$type": "Bookmark", + "Name": "ST:130:0:{1fc202d4-d401-403c-9834-5b218574bb67}" + }, + { + "$type": "Bookmark", + "Name": "ST:131:0:{1fc202d4-d401-403c-9834-5b218574bb67}" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/.vs/RGC/v17/DocumentLayout.json b/.vs/RGC/v17/DocumentLayout.json index 14f170b..7fd02b7 100644 --- a/.vs/RGC/v17/DocumentLayout.json +++ b/.vs/RGC/v17/DocumentLayout.json @@ -50,6 +50,10 @@ { "$type": "Bookmark", "Name": "ST:131:0:{1fc202d4-d401-403c-9834-5b218574bb67}" + }, + { + "$type": "Bookmark", + "Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}" } ] } diff --git a/.vs/VSWorkspaceState.json b/.vs/VSWorkspaceState.json index 7f0a04f..bfe6639 100644 --- a/.vs/VSWorkspaceState.json +++ b/.vs/VSWorkspaceState.json @@ -1,7 +1,8 @@ { "ExpandedNodes": [ - "" + "", + "\\SuiviREForamteur", + "\\SuiviREForamteur\\suivireforamteur" ], - "SelectedNode": "\\C:\\Users\\oimer\\Source\\Repos\\RGC", "PreviewInSolutionExplorer": false } \ No newline at end of file diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite index e4dc093..4779d64 100644 Binary files a/.vs/slnx.sqlite and b/.vs/slnx.sqlite differ diff --git a/SuiviREForamteur/suivireforamteur/src/HistoriquePage.tsx b/SuiviREForamteur/suivireforamteur/src/HistoriquePage.tsx index a43fb2d..6902210 100644 --- a/SuiviREForamteur/suivireforamteur/src/HistoriquePage.tsx +++ b/SuiviREForamteur/suivireforamteur/src/HistoriquePage.tsx @@ -1316,24 +1316,18 @@ const HistoriquePage: React.FC = ({ }, [records, filter, campusFilter, promoFilter, studentFilter]); const dynamicStatusCounts = useMemo(() => { + // OUI = les deux sont OUI const oui = preFilteredRecords.filter(r => r.autoEvaluation === 'OUI' && r.evaluationTuteur === 'OUI' ).length; + // PARTIEL = les deux sont PARTIEL const partiel = preFilteredRecords.filter(r => - r.autoEvaluation === 'PARTIEL' || r.evaluationTuteur === 'PARTIEL' + r.autoEvaluation === 'PARTIEL' && r.evaluationTuteur === 'PARTIEL' ).length; - const non = preFilteredRecords.filter(r => { - const autoEvalNotOui = r.autoEvaluation !== 'OUI'; - const tuteurNotOui = r.evaluationTuteur !== 'OUI'; - const hasNonOrEmpty = - r.autoEvaluation === 'NON' || !r.autoEvaluation || - r.evaluationTuteur === 'NON' || !r.evaluationTuteur; - - return autoEvalNotOui && tuteurNotOui && hasNonOrEmpty && - r.autoEvaluation !== 'PARTIEL' && r.evaluationTuteur !== 'PARTIEL'; - }).length; + // NON = tout le reste (combinaisons mixtes, NON, vide, etc.) + const non = preFilteredRecords.length - oui - partiel; return { tous: preFilteredRecords.length, @@ -1352,17 +1346,15 @@ const HistoriquePage: React.FC = ({ } if (statusFilter === 'PARTIEL') { - return r.autoEvaluation === 'PARTIEL' || r.evaluationTuteur === 'PARTIEL'; + // PARTIEL = les deux sont PARTIEL + return r.autoEvaluation === 'PARTIEL' && r.evaluationTuteur === 'PARTIEL'; } if (statusFilter === 'NON') { - const autoEvalNotOui = r.autoEvaluation !== 'OUI'; - const tuteurNotOui = r.evaluationTuteur !== 'OUI'; - const hasNonOrEmpty = - r.autoEvaluation === 'NON' || !r.autoEvaluation || - r.evaluationTuteur === 'NON' || !r.evaluationTuteur; - - return autoEvalNotOui && tuteurNotOui && hasNonOrEmpty; + // NON = tout ce qui n'est ni OUI/OUI ni PARTIEL/PARTIEL + const isOui = r.autoEvaluation === 'OUI' && r.evaluationTuteur === 'OUI'; + const isPartiel = r.autoEvaluation === 'PARTIEL' && r.evaluationTuteur === 'PARTIEL'; + return !isOui && !isPartiel; } return true;