Checkpoint: Correction de deux bugs : (1) getToutesLesSolutionsGroupees retourne maintenant editeurId et blocFonctionnelId pour pré-remplir le Dialog de modification ; (2) getBlocsFonctionnels ne filtre plus sur estValide=true, tous les blocs fonctionnels sont désormais visibles dans les selects.
This commit is contained in:
27
server/db.ts
27
server/db.ts
@@ -99,7 +99,7 @@ export async function createEditeur(nom: string, estValide = false) {
|
|||||||
export async function getBlocsFonctionnels() {
|
export async function getBlocsFonctionnels() {
|
||||||
const db = await getDb();
|
const db = await getDb();
|
||||||
if (!db) return [];
|
if (!db) return [];
|
||||||
return db.select().from(blocsFonctionnels).where(eq(blocsFonctionnels.estValide, true)).orderBy(blocsFonctionnels.nom);
|
return db.select().from(blocsFonctionnels).orderBy(blocsFonctionnels.nom);
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function createBlocFonctionnel(nom: string, estValide = false) {
|
export async function createBlocFonctionnel(nom: string, estValide = false) {
|
||||||
@@ -667,33 +667,40 @@ export async function getMesSolutionsGroupees(userId: number, sonumRole: string)
|
|||||||
const map = new Map<number, {
|
const map = new Map<number, {
|
||||||
solutionId: number;
|
solutionId: number;
|
||||||
solutionNom: string;
|
solutionNom: string;
|
||||||
|
editeurId: number | null;
|
||||||
editeurNom: string;
|
editeurNom: string;
|
||||||
|
blocFonctionnelId: number | null;
|
||||||
blocFonctionnelNom: string | null;
|
blocFonctionnelNom: string | null;
|
||||||
|
nbEtablissements: number;
|
||||||
etablissements: { id: number; nom: string; region: string | null; etatDeploiement: string }[];
|
etablissements: { id: number; nom: string; region: string | null; etatDeploiement: string }[];
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
for (const row of rows) {
|
for (const row of rows) {
|
||||||
if (!map.has(row.solutionId)) {
|
if (!map.has(row.solutionId)) {
|
||||||
map.set(row.solutionId, {
|
map.set(row.solutionId, {
|
||||||
solutionId: row.solutionId,
|
solutionId: row.solutionId,
|
||||||
solutionNom: row.solutionNom ?? "",
|
solutionNom: row.solutionNom ?? "",
|
||||||
|
editeurId: null,
|
||||||
editeurNom: row.editeurNom ?? "",
|
editeurNom: row.editeurNom ?? "",
|
||||||
|
blocFonctionnelId: null,
|
||||||
blocFonctionnelNom: row.blocFonctionnelNom ?? null,
|
blocFonctionnelNom: row.blocFonctionnelNom ?? null,
|
||||||
|
nbEtablissements: 0,
|
||||||
etablissements: [],
|
etablissements: [],
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
map.get(row.solutionId)!.etablissements.push({
|
const entry = map.get(row.solutionId)!;
|
||||||
|
if (row.etablissementId) {
|
||||||
|
entry.etablissements.push({
|
||||||
id: row.etablissementId,
|
id: row.etablissementId,
|
||||||
nom: row.etablissementNom ?? "",
|
nom: row.etablissementNom ?? "",
|
||||||
region: row.etablissementRegion ?? null,
|
region: row.etablissementRegion ?? null,
|
||||||
etatDeploiement: row.etatDeploiement ?? "",
|
etatDeploiement: row.etatDeploiement ?? "",
|
||||||
});
|
});
|
||||||
|
entry.nbEtablissements = entry.etablissements.length;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return Array.from(map.values());
|
return Array.from(map.values());
|
||||||
}
|
}
|
||||||
|
/***
|
||||||
/**
|
|
||||||
* Retourne toutes les solutions du référentiel avec les établissements équipés (vue globale).
|
* Retourne toutes les solutions du référentiel avec les établissements équipés (vue globale).
|
||||||
* Accessible à tous les utilisateurs connectés.
|
* Accessible à tous les utilisateurs connectés.
|
||||||
*/
|
*/
|
||||||
@@ -705,7 +712,9 @@ export async function getToutesLesSolutionsGroupees() {
|
|||||||
.select({
|
.select({
|
||||||
solutionId: solutions.id,
|
solutionId: solutions.id,
|
||||||
solutionNom: solutions.nom,
|
solutionNom: solutions.nom,
|
||||||
|
editeurId: solutions.editeurId,
|
||||||
editeurNom: editeurs.nom,
|
editeurNom: editeurs.nom,
|
||||||
|
blocFonctionnelId: solutions.blocFonctionnelId,
|
||||||
blocFonctionnelNom: blocsFonctionnels.nom,
|
blocFonctionnelNom: blocsFonctionnels.nom,
|
||||||
etablissementId: etablissements.id,
|
etablissementId: etablissements.id,
|
||||||
etablissementNom: etablissements.nom,
|
etablissementNom: etablissements.nom,
|
||||||
@@ -718,22 +727,24 @@ export async function getToutesLesSolutionsGroupees() {
|
|||||||
.leftJoin(logicielsEtablissements, eq(logicielsEtablissements.solutionId, solutions.id))
|
.leftJoin(logicielsEtablissements, eq(logicielsEtablissements.solutionId, solutions.id))
|
||||||
.leftJoin(etablissements, eq(logicielsEtablissements.etablissementId, etablissements.id))
|
.leftJoin(etablissements, eq(logicielsEtablissements.etablissementId, etablissements.id))
|
||||||
.orderBy(solutions.nom, etablissements.nom);
|
.orderBy(solutions.nom, etablissements.nom);
|
||||||
|
|
||||||
const map = new Map<number, {
|
const map = new Map<number, {
|
||||||
solutionId: number;
|
solutionId: number;
|
||||||
solutionNom: string;
|
solutionNom: string;
|
||||||
|
editeurId: number | null;
|
||||||
editeurNom: string;
|
editeurNom: string;
|
||||||
|
blocFonctionnelId: number | null;
|
||||||
blocFonctionnelNom: string | null;
|
blocFonctionnelNom: string | null;
|
||||||
nbEtablissements: number;
|
nbEtablissements: number;
|
||||||
etablissements: { id: number; nom: string; region: string | null; etatDeploiement: string }[];
|
etablissements: { id: number; nom: string; region: string | null; etatDeploiement: string }[];
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
for (const row of rows) {
|
for (const row of rows) {
|
||||||
if (!map.has(row.solutionId)) {
|
if (!map.has(row.solutionId)) {
|
||||||
map.set(row.solutionId, {
|
map.set(row.solutionId, {
|
||||||
solutionId: row.solutionId,
|
solutionId: row.solutionId,
|
||||||
solutionNom: row.solutionNom ?? "",
|
solutionNom: row.solutionNom ?? "",
|
||||||
|
editeurId: row.editeurId ?? null,
|
||||||
editeurNom: row.editeurNom ?? "",
|
editeurNom: row.editeurNom ?? "",
|
||||||
|
blocFonctionnelId: row.blocFonctionnelId ?? null,
|
||||||
blocFonctionnelNom: row.blocFonctionnelNom ?? null,
|
blocFonctionnelNom: row.blocFonctionnelNom ?? null,
|
||||||
nbEtablissements: 0,
|
nbEtablissements: 0,
|
||||||
etablissements: [],
|
etablissements: [],
|
||||||
|
|||||||
Reference in New Issue
Block a user