Skip to content

Commit 70d58f3

Browse files
committed
fix(fiches): affiche les fiches partagees meme si aucune fiche de la collectivite
1 parent 11a77ad commit 70d58f3

File tree

4 files changed

+39
-33
lines changed

4 files changed

+39
-33
lines changed
Lines changed: 18 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,29 @@
1-
import { useQuery } from '@tanstack/react-query';
2-
31
import { useCollectiviteId } from '@/api/collectivites';
4-
import { ficheActionCount } from '@/api/plan-actions/fiche-resumes.list';
5-
import { useSupabase } from '@/api/utils/supabase/use-supabase';
2+
import {
3+
GetFichesOptions,
4+
useListFiches,
5+
} from '@/app/plans/fiches/list-all-fiches/data/use-list-fiches';
66

77
/**
8-
* @deprecated Basé sur supabase donc ne doit pas être utilisé
8+
* TODO: not really optimized, because we are still fetching the fiche with another sql query
9+
* We should have another trpc endpoint
910
*/
1011
export const useGetFichesTotalCount = () => {
1112
const collectiviteId = useCollectiviteId();
12-
const supabase = useSupabase();
13-
14-
const { data } = useQuery({
15-
queryKey: ['fiche_action_count', collectiviteId],
16-
17-
queryFn: async () => {
18-
if (!collectiviteId) {
19-
throw new Error('Aucune collectivité associée');
20-
}
21-
22-
return await ficheActionCount({
23-
dbClient: supabase,
24-
collectiviteId,
25-
});
13+
const ficheResumesOptions: GetFichesOptions = {
14+
filters: {},
15+
queryOptions: {
16+
page: 1,
17+
limit: 1,
2618
},
27-
});
19+
};
20+
const { data: ficheResumes, isLoading } = useListFiches(
21+
collectiviteId,
22+
ficheResumesOptions
23+
);
2824

2925
return {
30-
count: typeof data === 'number' ? data : 0,
26+
count: ficheResumes?.count,
27+
isLoading,
3128
};
3229
};

apps/app/src/plans/fiches/list-all-fiches/data/use-get-fiches.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,14 @@ export const useGetFiches = (
4040
collectivite.collectiviteId,
4141
ficheResumesOptions
4242
);
43-
const { count: fichesCount } = useGetFichesTotalCount();
44-
const hasFiches = fichesCount > 0;
43+
const { count: fichesCount, isLoading: isLoadingCount } =
44+
useGetFichesTotalCount();
45+
const hasFiches = fichesCount && fichesCount > 0;
4546
const countTotal = ficheResumes?.count || 0;
4647

4748
return {
4849
ficheResumes,
49-
isLoading,
50+
isLoading: isLoading || isLoadingCount,
5051
hasFiches,
5152
countTotal,
5253
collectivite,

apps/app/src/plans/fiches/list-all-fiches/toutes-les-fiches.view.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ const ToutesLesFichesActionContent = () => {
7171
const fichesNonClasseesCount = useFichesNonClasseesCount();
7272
const fichesClasseesCount = useFichesClasseesCount();
7373
const totalCount =
74-
fichesNonClasseesCount && fichesClasseesCount
75-
? fichesNonClasseesCount + fichesClasseesCount
74+
fichesNonClasseesCount || fichesClasseesCount
75+
? (fichesNonClasseesCount || 0) + (fichesClasseesCount || 0)
7676
: undefined;
7777
const { mutate: createFicheAction } = useCreateFicheAction();
7878
const { filters, ficheType } = useFicheActionFilters();

apps/backend/src/plans/fiches/list-fiches/list-fiches.service.ts

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1254,7 +1254,7 @@ export default class ListFichesService {
12541254
if (filters.noServicePilote) {
12551255
conditions.push(isNull(sql`service_tag_ids`));
12561256
}
1257-
if (filters.noPlan) {
1257+
if (filters.noPlan === true) {
12581258
if (!collectiviteId) {
12591259
conditions.push(isNull(sql`plans`));
12601260
} else {
@@ -1271,16 +1271,24 @@ export default class ListFichesService {
12711271
)
12721272
);
12731273
}
1274+
} else if (filters.noPlan === false) {
1275+
if (!collectiviteId) {
1276+
conditions.push(isNotNull(sql`plans`));
1277+
} else {
1278+
const collectiviteIdSqlNumberArray = `{${collectiviteId}}`;
1279+
conditions.push(
1280+
arrayOverlaps(
1281+
sql`axes_collectivite_ids`,
1282+
sql`${collectiviteIdSqlNumberArray}`
1283+
)
1284+
);
1285+
}
12741286
}
1287+
1288+
// TODO: make it work for shared collectivite, not simple
12751289
if (filters.doesBelongToSeveralPlans) {
12761290
conditions.push(gt(sql`array_length(plan_ids, 1)`, 1));
12771291
}
1278-
if (filters.noPlan === false) {
1279-
conditions.push(isNotNull(sql`plans`));
1280-
}
1281-
if (filters.noPlan === true) {
1282-
conditions.push(isNull(sql`plans`));
1283-
}
12841292

12851293
const piloteConditions: (SQLWrapper | SQL | undefined)[] = [];
12861294
if (filters.noPilote) {

0 commit comments

Comments
 (0)