File tree Expand file tree Collapse file tree 4 files changed +39
-33
lines changed
app/src/plans/fiches/list-all-fiches
backend/src/plans/fiches/list-fiches Expand file tree Collapse file tree 4 files changed +39
-33
lines changed Original file line number Diff line number Diff line change 1
- import { useQuery } from '@tanstack/react-query' ;
2
-
3
1
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' ;
6
6
7
7
/**
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
9
10
*/
10
11
export const useGetFichesTotalCount = ( ) => {
11
12
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 ,
26
18
} ,
27
- } ) ;
19
+ } ;
20
+ const { data : ficheResumes , isLoading } = useListFiches (
21
+ collectiviteId ,
22
+ ficheResumesOptions
23
+ ) ;
28
24
29
25
return {
30
- count : typeof data === 'number' ? data : 0 ,
26
+ count : ficheResumes ?. count ,
27
+ isLoading,
31
28
} ;
32
29
} ;
Original file line number Diff line number Diff line change @@ -40,13 +40,14 @@ export const useGetFiches = (
40
40
collectivite . collectiviteId ,
41
41
ficheResumesOptions
42
42
) ;
43
- const { count : fichesCount } = useGetFichesTotalCount ( ) ;
44
- const hasFiches = fichesCount > 0 ;
43
+ const { count : fichesCount , isLoading : isLoadingCount } =
44
+ useGetFichesTotalCount ( ) ;
45
+ const hasFiches = fichesCount && fichesCount > 0 ;
45
46
const countTotal = ficheResumes ?. count || 0 ;
46
47
47
48
return {
48
49
ficheResumes,
49
- isLoading,
50
+ isLoading : isLoading || isLoadingCount ,
50
51
hasFiches,
51
52
countTotal,
52
53
collectivite,
Original file line number Diff line number Diff line change @@ -71,8 +71,8 @@ const ToutesLesFichesActionContent = () => {
71
71
const fichesNonClasseesCount = useFichesNonClasseesCount ( ) ;
72
72
const fichesClasseesCount = useFichesClasseesCount ( ) ;
73
73
const totalCount =
74
- fichesNonClasseesCount && fichesClasseesCount
75
- ? fichesNonClasseesCount + fichesClasseesCount
74
+ fichesNonClasseesCount || fichesClasseesCount
75
+ ? ( fichesNonClasseesCount || 0 ) + ( fichesClasseesCount || 0 )
76
76
: undefined ;
77
77
const { mutate : createFicheAction } = useCreateFicheAction ( ) ;
78
78
const { filters, ficheType } = useFicheActionFilters ( ) ;
Original file line number Diff line number Diff line change @@ -1254,7 +1254,7 @@ export default class ListFichesService {
1254
1254
if ( filters . noServicePilote ) {
1255
1255
conditions . push ( isNull ( sql `service_tag_ids` ) ) ;
1256
1256
}
1257
- if ( filters . noPlan ) {
1257
+ if ( filters . noPlan === true ) {
1258
1258
if ( ! collectiviteId ) {
1259
1259
conditions . push ( isNull ( sql `plans` ) ) ;
1260
1260
} else {
@@ -1271,16 +1271,24 @@ export default class ListFichesService {
1271
1271
)
1272
1272
) ;
1273
1273
}
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
+ }
1274
1286
}
1287
+
1288
+ // TODO: make it work for shared collectivite, not simple
1275
1289
if ( filters . doesBelongToSeveralPlans ) {
1276
1290
conditions . push ( gt ( sql `array_length(plan_ids, 1)` , 1 ) ) ;
1277
1291
}
1278
- if ( filters . noPlan === false ) {
1279
- conditions . push ( isNotNull ( sql `plans` ) ) ;
1280
- }
1281
- if ( filters . noPlan === true ) {
1282
- conditions . push ( isNull ( sql `plans` ) ) ;
1283
- }
1284
1292
1285
1293
const piloteConditions : ( SQLWrapper | SQL | undefined ) [ ] = [ ] ;
1286
1294
if ( filters . noPilote ) {
You can’t perform that action at this time.
0 commit comments