Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,30 @@
# Changelog d'Helios

## [1.8.5](https://github.com/DNUM-SocialGouv/helios/compare/release/1.8.4...release/1.8.5) (TODO)

### Bug Fixes

### Features

- hel-996: Ajout des données concernant les fonds de roulement, les besoins en fonds de roulement et la trésorerie
- hel-997: Ajout du graphique horizontal concernant les fonds de roulement
- hel-998: Ajout du graphique horizontal concernant le besoin en fonds de roulement
- hel-999: Ajout du graphique horizontal concernant la trésorerie
- hel-1004: Ajout d’une page de CGU
- hel-1005: Ajout d’un formulaire de validation des CGU obligatoire
- hel-1007: Ajout des nouvelles informations de budget dans la page de comparaison

## [1.8.4](https://github.com/DNUM-SocialGouv/helios/compare/release/1.8.3...release/1.8.4) (2026-03-20)

### Bug Fixes

- vr-156: Correction du calcul du taux de variation dans la vignette "Effectifs"
- vr-157: Position du libellé en cas de valeur nulle dans le graphique "Entrées et sorties"
- vr-158: Taille des graphiques lorsque graphiques manquants dans un bloc
- vr-159: Affichage de certains graphiques avec des données manquantes

### Features

- vr-146: Modification de la taille des points trimestriels sur les graphiques par filière et catégorie
- vr-150: Wording détail effectifs par filière
- vr-151: Nommage des sorties Excel effectifs par filière
Expand All @@ -25,6 +41,7 @@
### Bug Fixes

### Features

- vr-152: Renommage des colonnes de plusieurs tables

## [1.8.2.1](https://github.com/DNUM-SocialGouv/helios/compare/release/1.8.2...release/1.8.2.1) (2026-03-05)
Expand Down
8 changes: 8 additions & 0 deletions database/dataSource.ts
Original file line number Diff line number Diff line change
Expand Up @@ -100,13 +100,17 @@
import { AjoutTableNoDataQualiteHasMS1772117266351 } from "./migrations/1772117266351-AjoutTableNoDataQualiteHasMS";
import { AjoutHasAuProfilMedicoSocial1772196772012 } from "./migrations/1772196772012-AjoutHasAuProfilMedicoSocial";
import { AjoutFondsRoulementEtTresorerieDansBudgetFinance1772702784578 } from "./migrations/1772702784578-AjoutFondsRoulementEtTresorerieDansBudgetFinance";
import { AjoutProfilFondDeRoulement1773072615839 } from "./migrations/1773072615839-AjoutProfilFondDeRoulement";
import { AjoutProfilBesoinFondDeRoulement1773152515839 } from "./migrations/1773152515839-AjoutProfilBesoinFondDeRoulement";
import { AjoutProfilTresorerie1773223041788 } from "./migrations/1773223041788-AjoutProfilTresorerie";
import { updateProfileTable1796422585498 } from "./migrations/1796422585498-updateProfileTable";
import { AddCreatedByToProfileTable1796792910177 } from "./migrations/1796792910177-AddCreatedByToProfileTable";
import { ModificationValeurProfil1797341938070 } from "./migrations/1797341938070-modificationValeurProfil";
import { AjoutBudgetEtFinanceAProfilETSanitaire1797688226682 } from "./migrations/1797688226682-AjoutBudgetEtFinanceAProfilETSanitaire";
import { AjoutAllocationDeRessourcesToBudgetEtFinance1798688226682 } from "./migrations/1798688226682-AjoutAllocationDeRessourcesToBudgetEtFinance";
import { AjoutDesOccupationsDansLesProfils1799478704013 } from "./migrations/1799478704013-AjoutDesOccupationsDansLesProfils";
import { AjoutLesJourneesUsldDansLesProfils1799501916707 } from "./migrations/1799501916707-AjoutLesJourneesUsldDansLesProfils";
import { AjoutCguDansUtilisateur1774024704472 } from "./migrations/1774024704472-AjoutCguDansUtilisateur";

Check warning on line 113 in database/dataSource.ts

View workflow job for this annotation

GitHub Actions / lint-and-typecheck-typescript

`./migrations/1774024704472-AjoutCguDansUtilisateur` import should occur before import of `./migrations/1796422585498-updateProfileTable`
import { AjoutVigieRhContrat1738320902145 } from "./migrations/vigie_rh/1738320902145-AjoutVigieRhContrat";
import { AjoutVigieRhProfessionFiliere1738328763147 } from "./migrations/vigie_rh/1738328763147-AjoutVigieRhProfessionFiliere";
import { AjoutVigieRhProfessionGroupe1738328796095 } from "./migrations/vigie_rh/1738328796095-AjoutVigieRhProfessionGroupe";
Expand Down Expand Up @@ -359,6 +363,7 @@
ClefEtrangereListEts1743596937227,
AjoutNombreJourneeUSLDActivitesSanitaires1745321952709,
AjoutLesJourneesUsldDansLesProfils1799501916707,
AjoutCguDansUtilisateur1774024704472,
ReferentielCategoriesFiness1747831401347,
AjoutCategorieRecherche1748009262073,
AjoutLaColonneDomaineAuReferentielCategories1748332500947,
Expand Down Expand Up @@ -398,6 +403,9 @@
AjoutTableNoDataQualiteHasMS1772117266351,
AjoutHasAuProfilMedicoSocial1772196772012,
AjoutFondsRoulementEtTresorerieDansBudgetFinance1772702784578,
AjoutProfilFondDeRoulement1773072615839,
AjoutProfilBesoinFondDeRoulement1773152515839,
AjoutProfilTresorerie1773223041788
],
type: "postgres",
url: environmentVariables.DATABASE_URL,
Expand Down
66 changes: 66 additions & 0 deletions database/migrations/1773072615839-AjoutProfilFondDeRoulement.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
import { MigrationInterface, QueryRunner } from "typeorm";

export class AjoutProfilFondDeRoulement1773072615839 implements MigrationInterface {
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`
UPDATE profil
SET profil_value = jsonb_set(
COALESCE(profil_value, '{}'::jsonb),
'{autreRegion,profilEJ,budgetEtFinance}',
COALESCE(profil_value->'autreRegion'->'profilEJ'->'budgetEtFinance', '{}'::jsonb) || jsonb_build_object(
'fondsDeRoulement', 'no'
),
true
);

UPDATE profil
SET profil_value = jsonb_set(
COALESCE(profil_value, '{}'::jsonb),
'{institution,profilEJ,budgetEtFinance}',
COALESCE(profil_value->'institution'->'profilEJ'->'budgetEtFinance', '{}'::jsonb) || jsonb_build_object(
'fondsDeRoulement', 'no'
),
true
);

UPDATE profil
SET profil_value = jsonb_set(
COALESCE(profil_value, '{}'::jsonb),
'{autreRegion,profilETSanitaire,budgetEtFinance}',
COALESCE(profil_value->'autreRegion'->'profilETSanitaire'->'budgetEtFinance', '{}'::jsonb) || jsonb_build_object(
'fondsDeRoulement', 'no'
),
true
);

UPDATE profil
SET profil_value = jsonb_set(
COALESCE(profil_value, '{}'::jsonb),
'{institution,profilETSanitaire,budgetEtFinance}',
COALESCE(profil_value->'institution'->'profilETSanitaire'->'budgetEtFinance', '{}'::jsonb) || jsonb_build_object(
'fondsDeRoulement', 'no'
),
true
);

`);
}

public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`
UPDATE profil
SET profil_value = profil_value #- '{autreRegion,profilEJ,budgetEtFinance,fondsDeRoulement}';

UPDATE profil
SET profil_value = profil_value #- '{institution,profilEJ,budgetEtFinance,fondsDeRoulement}';

UPDATE profil
SET profil_value = profil_value #- '{autreRegion,profilETSanitaire,budgetEtFinance,fondsDeRoulement}';

UPDATE profil
SET profil_value = profil_value #- '{institution,profilETSanitaire,budgetEtFinance,fondsDeRoulement}';

`);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
import { MigrationInterface, QueryRunner } from "typeorm";

export class AjoutProfilBesoinFondDeRoulement1773152515839 implements MigrationInterface {
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`
UPDATE profil
SET profil_value = jsonb_set(
COALESCE(profil_value, '{}'::jsonb),
'{autreRegion,profilEJ,budgetEtFinance}',
COALESCE(profil_value->'autreRegion'->'profilEJ'->'budgetEtFinance', '{}'::jsonb) || jsonb_build_object(
'besoinFondsDeRoulement', 'no'
),
true
);

UPDATE profil
SET profil_value = jsonb_set(
COALESCE(profil_value, '{}'::jsonb),
'{institution,profilEJ,budgetEtFinance}',
COALESCE(profil_value->'institution'->'profilEJ'->'budgetEtFinance', '{}'::jsonb) || jsonb_build_object(
'besoinFondsDeRoulement', 'no'
),
true
);

UPDATE profil
SET profil_value = jsonb_set(
COALESCE(profil_value, '{}'::jsonb),
'{autreRegion,profilETSanitaire,budgetEtFinance}',
COALESCE(profil_value->'autreRegion'->'profilETSanitaire'->'budgetEtFinance', '{}'::jsonb) || jsonb_build_object(
'besoinFondsDeRoulement', 'no'
),
true
);

UPDATE profil
SET profil_value = jsonb_set(
COALESCE(profil_value, '{}'::jsonb),
'{institution,profilETSanitaire,budgetEtFinance}',
COALESCE(profil_value->'institution'->'profilETSanitaire'->'budgetEtFinance', '{}'::jsonb) || jsonb_build_object(
'besoinFondsDeRoulement', 'no'
),
true
);
`);
}

public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`
UPDATE profil
SET profil_value = profil_value #- '{autreRegion,profilEJ,budgetEtFinance,besoinFondsDeRoulement}';

UPDATE profil
SET profil_value = profil_value #- '{institution,profilEJ,budgetEtFinance,besoinFondsDeRoulement}';

UPDATE profil
SET profil_value = profil_value #- '{autreRegion,profilETSanitaire,budgetEtFinance,besoinFondsDeRoulement}';

UPDATE profil
SET profil_value = profil_value #- '{institution,profilETSanitaire,budgetEtFinance,besoinFondsDeRoulement}';
`);
}

}
66 changes: 66 additions & 0 deletions database/migrations/1773223041788-AjoutProfilTresorerie.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
import { MigrationInterface, QueryRunner } from "typeorm";

export class AjoutProfilTresorerie1773223041788 implements MigrationInterface {
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`
UPDATE profil
SET profil_value = jsonb_set(
COALESCE(profil_value, '{}'::jsonb),
'{autreRegion,profilEJ,budgetEtFinance}',
COALESCE(profil_value->'autreRegion'->'profilEJ'->'budgetEtFinance', '{}'::jsonb) || jsonb_build_object(
'tresorerie', 'no'
),
true
);

UPDATE profil
SET profil_value = jsonb_set(
COALESCE(profil_value, '{}'::jsonb),
'{institution,profilEJ,budgetEtFinance}',
COALESCE(profil_value->'institution'->'profilEJ'->'budgetEtFinance', '{}'::jsonb) || jsonb_build_object(
'tresorerie', 'no'
),
true
);

UPDATE profil
SET profil_value = jsonb_set(
COALESCE(profil_value, '{}'::jsonb),
'{autreRegion,profilETSanitaire,budgetEtFinance}',
COALESCE(profil_value->'autreRegion'->'profilETSanitaire'->'budgetEtFinance', '{}'::jsonb) || jsonb_build_object(
'tresorerie', 'no'
),
true
);

UPDATE profil
SET profil_value = jsonb_set(
COALESCE(profil_value, '{}'::jsonb),
'{institution,profilETSanitaire,budgetEtFinance}',
COALESCE(profil_value->'institution'->'profilETSanitaire'->'budgetEtFinance', '{}'::jsonb) || jsonb_build_object(
'tresorerie', 'no'
),
true
);

`);
}

public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`
UPDATE profil
SET profil_value = profil_value #- '{autreRegion,profilEJ,budgetEtFinance,tresorerie}';

UPDATE profil
SET profil_value = profil_value #- '{institution,profilEJ,budgetEtFinance,tresorerie}';

UPDATE profil
SET profil_value = profil_value #- '{autreRegion,profilETSanitaire,budgetEtFinance,tresorerie}';

UPDATE profil
SET profil_value = profil_value #- '{institution,profilETSanitaire,budgetEtFinance,tresorerie}';

`);
}

}
18 changes: 18 additions & 0 deletions database/migrations/1774024704472-AjoutCguDansUtilisateur.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import { MigrationInterface, QueryRunner } from "typeorm";

export class AjoutCguDansUtilisateur1774024704472 implements MigrationInterface {

public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`
ALTER TABLE utilisateur
ADD COLUMN ut_cgu BOOLEAN NOT NULL DEFAULT false;
`);
}

public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`
ALTER TABLE utilisateur
DROP COLUMN ut_cgu;
`);
}
}
3 changes: 3 additions & 0 deletions database/models/UtilisateurModel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -71,4 +71,7 @@ export class UtilisateurModel {
public lockUntil!: Date | null;
@Column({ name: "ut_last_pwd_change_date", type: "date" })
public lastPwdChangeDate!: string;

@Column({ name: "ut_cgu", type: "boolean", default: false })
public cgu!: boolean;
}
7 changes: 7 additions & 0 deletions src/backend/infrastructure/controllers/updateCguEndpoint.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { UtilisateursUseCase } from "../../métier/use-cases/UtilisateursUseCase";
import { Dependencies } from "../dependencies";

export async function updateCguEndpoint(dependencies: Dependencies, userCode: string, cguAccepted: boolean): Promise<void> {
const utilisateurUseCase = new UtilisateursUseCase(dependencies.utilisateurLoader);
return await utilisateurUseCase.updateCgu(userCode, cguAccepted);
}
Loading
Loading