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() {
|
||||
const db = await getDb();
|
||||
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) {
|
||||
@@ -667,33 +667,40 @@ export async function getMesSolutionsGroupees(userId: number, sonumRole: string)
|
||||
const map = new Map<number, {
|
||||
solutionId: number;
|
||||
solutionNom: string;
|
||||
editeurId: number | null;
|
||||
editeurNom: string;
|
||||
blocFonctionnelId: number | null;
|
||||
blocFonctionnelNom: string | null;
|
||||
nbEtablissements: number;
|
||||
etablissements: { id: number; nom: string; region: string | null; etatDeploiement: string }[];
|
||||
}>();
|
||||
|
||||
for (const row of rows) {
|
||||
if (!map.has(row.solutionId)) {
|
||||
map.set(row.solutionId, {
|
||||
solutionId: row.solutionId,
|
||||
solutionNom: row.solutionNom ?? "",
|
||||
editeurId: null,
|
||||
editeurNom: row.editeurNom ?? "",
|
||||
blocFonctionnelId: null,
|
||||
blocFonctionnelNom: row.blocFonctionnelNom ?? null,
|
||||
nbEtablissements: 0,
|
||||
etablissements: [],
|
||||
});
|
||||
}
|
||||
map.get(row.solutionId)!.etablissements.push({
|
||||
const entry = map.get(row.solutionId)!;
|
||||
if (row.etablissementId) {
|
||||
entry.etablissements.push({
|
||||
id: row.etablissementId,
|
||||
nom: row.etablissementNom ?? "",
|
||||
region: row.etablissementRegion ?? null,
|
||||
etatDeploiement: row.etatDeploiement ?? "",
|
||||
});
|
||||
entry.nbEtablissements = entry.etablissements.length;
|
||||
}
|
||||
}
|
||||
|
||||
return Array.from(map.values());
|
||||
}
|
||||
|
||||
/**
|
||||
/***
|
||||
* Retourne toutes les solutions du référentiel avec les établissements équipés (vue globale).
|
||||
* Accessible à tous les utilisateurs connectés.
|
||||
*/
|
||||
@@ -705,7 +712,9 @@ export async function getToutesLesSolutionsGroupees() {
|
||||
.select({
|
||||
solutionId: solutions.id,
|
||||
solutionNom: solutions.nom,
|
||||
editeurId: solutions.editeurId,
|
||||
editeurNom: editeurs.nom,
|
||||
blocFonctionnelId: solutions.blocFonctionnelId,
|
||||
blocFonctionnelNom: blocsFonctionnels.nom,
|
||||
etablissementId: etablissements.id,
|
||||
etablissementNom: etablissements.nom,
|
||||
@@ -718,22 +727,24 @@ export async function getToutesLesSolutionsGroupees() {
|
||||
.leftJoin(logicielsEtablissements, eq(logicielsEtablissements.solutionId, solutions.id))
|
||||
.leftJoin(etablissements, eq(logicielsEtablissements.etablissementId, etablissements.id))
|
||||
.orderBy(solutions.nom, etablissements.nom);
|
||||
|
||||
const map = new Map<number, {
|
||||
solutionId: number;
|
||||
solutionNom: string;
|
||||
editeurId: number | null;
|
||||
editeurNom: string;
|
||||
blocFonctionnelId: number | null;
|
||||
blocFonctionnelNom: string | null;
|
||||
nbEtablissements: number;
|
||||
etablissements: { id: number; nom: string; region: string | null; etatDeploiement: string }[];
|
||||
}>();
|
||||
|
||||
for (const row of rows) {
|
||||
if (!map.has(row.solutionId)) {
|
||||
map.set(row.solutionId, {
|
||||
solutionId: row.solutionId,
|
||||
solutionNom: row.solutionNom ?? "",
|
||||
editeurId: row.editeurId ?? null,
|
||||
editeurNom: row.editeurNom ?? "",
|
||||
blocFonctionnelId: row.blocFonctionnelId ?? null,
|
||||
blocFonctionnelNom: row.blocFonctionnelNom ?? null,
|
||||
nbEtablissements: 0,
|
||||
etablissements: [],
|
||||
|
||||
Reference in New Issue
Block a user