Skip to content

Commit

Permalink
Merge branch 'main' into 687-améliorer-la-saisie-erreurs-et-recommand…
Browse files Browse the repository at this point in the history
…ations
  • Loading branch information
yaaax authored Oct 24, 2024
2 parents 9f3a245 + 12fe8d0 commit 75c5aeb
Show file tree
Hide file tree
Showing 40 changed files with 1,110 additions and 540 deletions.
26 changes: 26 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,32 @@

Tous les changements notables de Ara sont documentés ici avec leur date, leur catégorie (nouvelle fonctionnalité, correction de bug ou autre changement) et leur pull request (PR) associée.

## 18/10/2024

### Autres changements ⚙️

- Ajout de liens de recours dans la déclaration d’accessibilité générée ([#812](https://github.com/DISIC/Ara/pull/812))

## 17/10/2024

### Nouvelles fonctionnalités 🚀

- Modifie la gestion des éléments transverses : l’interrupteur "Sur toutes les pages" est remplacé par l’onglet "Éléments transverses" qui permet d’évaluer les éléments communs à toutes les pages : en-tête, pied de page... ([#758](https://github.com/DISIC/Ara/pull/758))

## 09/10/2024

### Corrections 🐛

- Corrige la mise à jour de l’ordre des pages quand les 2 pages ne sont pas adjacentes ([#809](https://github.com/DISIC/Ara/pull/809))
- Corrige l’application de l'attribut `autocomplete` sur le champ "email" du formulaire de connexion ([#808](https://github.com/DISIC/Ara/pull/808))

## 05/09/2024

### Nouvelles fonctionnalités 🚀

- Ajoute une modale de confirmation lors de la suppression d’une pièce jointe sur un critère "Non conforme" ([#788](https://github.com/DISIC/Ara/pull/788))
- Met automatiquement le focus sur le champs "Erreur et recommandation" lorsque qu’un critère est défini comme "Non conforme" ([#766](https://github.com/DISIC/Ara/pull/766))

## 24/07/2024

### Autres changements ⚙️
Expand Down
46 changes: 46 additions & 0 deletions DOCUMENTATION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Documentation

Ce fichier détaille les règles métiers utilisées au sein du projet.

## Calcul du nombre de critères

Le statut final d’un critère est déterminé en calculant le résultat de l’ensemble des statuts sur chaque page et sur les éléments transverses pour ce critère.

### Critères applicables

Un critère est applicable si :

- il est conforme ou non-conforme sur au moins une page ou sur les éléments transverses.

### Critères non-applicables

Un critère est non-applicable si :

- il est non-applicable sur l’ensemble des pages et sur les éléments transverses testés.

### Critères conformes

Un critère est conforme si :

- il est conforme ou non-applicable sur l’ensemble des pages et sur les éléments transverses testés.
- il est conforme sur au moins une page ou sur les éléments transverses testés.

### Critères non-conformes

Un critère est non-conforme si :

- il est non-conforme sur au moins une page ou sur les éléments transverses.

## Taux de conformité d’un audit

Le taux de conformité d’un audit se fait selon le calcul suivant :

```
Taux de conformité = (Nombre de critères conformes / Nombre de critères applicables) * 100
```

Exemple avec 89 critères applicables et 27 critères conformes :

```
Taux de conformité = (27 / 89) * 100 = 30,34%
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
-- AlterTable
ALTER TABLE "Audit" ADD COLUMN "transverseElementsPageId" INTEGER;

-- Create one transverse elements page for each existing audit and link it
DO $$
DECLARE temprow RECORD;
DECLARE transversePageId "AuditedPage"."id"%TYPE;
BEGIN FOR temprow IN
SELECT * FROM "Audit" WHERE "transverseElementsPageId" IS NULL
LOOP
-- Crée la page élément transverse
INSERT INTO "AuditedPage"("name", "url", "order") VALUES ('Éléments transverses (optionnel)', '', -1) RETURNING "id" INTO transversePageId;
-- Lie la page à l'audit
UPDATE "Audit" SET "transverseElementsPageId" = transversePageId WHERE "id" = "temprow"."id";
END LOOP;
END $$;

-- Make transverseElementsPageId not nullable
ALTER TABLE "Audit" ALTER COLUMN "transverseElementsPageId" SET NOT NULL;

-- CreateIndex
CREATE UNIQUE INDEX "Audit_transverseElementsPageId_key" ON "Audit"("transverseElementsPageId");

-- AddForeignKey
ALTER TABLE "Audit" ADD CONSTRAINT "Audit_transverseElementsPageId_fkey" FOREIGN KEY ("transverseElementsPageId") REFERENCES "AuditedPage"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
12 changes: 10 additions & 2 deletions confiture-rest-api/prisma/schema.prisma
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,10 @@ model Audit {
auditType AuditType
procedureName String
/// @DtoEntityHidden
pages AuditedPage[]
pages AuditedPage[] @relation("UserPages")
// single page for transverse elements
transverseElementsPage AuditedPage @relation("TransversePage", fields: [transverseElementsPageId], references: [id])
transverseElementsPageId Int @unique
auditorName String?
auditorEmail String?
showAuditorEmailInReport Boolean @default(false)
Expand Down Expand Up @@ -111,9 +114,14 @@ model AuditedPage {
name String
url String
audit Audit? @relation(fields: [auditUniqueId], references: [editUniqueId], onDelete: Cascade)
// parent audit when the page is a user made page
audit Audit? @relation(name: "UserPages", fields: [auditUniqueId], references: [editUniqueId], onDelete: Cascade)
auditUniqueId String?
// parent audit when the page is a transverse page
auditTransverse Audit? @relation(name: "TransversePage")
results CriterionResult[]
}

Expand Down
15 changes: 13 additions & 2 deletions confiture-rest-api/src/audits/audit-export.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,11 @@ export class AuditExportService {
const data = [];

// Column headers
data.push(["Critères", ...audit.pages.map((p) => p.name)]);
data.push([
"Critères",
"Éléments transverses",
...audit.pages.map((p) => p.name)
]);

const resultsByCriteria = groupBy(
results,
Expand All @@ -50,14 +54,21 @@ export class AuditExportService {
// Tests results
criteria.forEach((c) => {
const criterionKey = c.topic + "." + c.criterium;

const transverseStatus =
CRITERIUM_STATUS[
resultsByCriteria[criterionKey].find(
(r) => r.pageId === audit.transverseElementsPageId
).status
];
const criteriumStatuses = audit.pages.map(
(p) =>
CRITERIUM_STATUS[
resultsByCriteria[criterionKey].find((r) => r.pageId === p.id)
.status
]
);
data.push([criterionKey, ...criteriumStatuses]);
data.push([criterionKey, transverseStatus, ...criteriumStatuses]);
});

// compile data to CSV buffer
Expand Down
Loading

0 comments on commit 75c5aeb

Please sign in to comment.