diff --git a/app.territoiresentransitions.react/src/app/pages/collectivite/Trajectoire/ComparezLaTrajectoire.tsx b/app.territoiresentransitions.react/src/app/pages/collectivite/Trajectoire/ComparezLaTrajectoire.tsx index 8bb5aec09f..199473efc9 100644 --- a/app.territoiresentransitions.react/src/app/pages/collectivite/Trajectoire/ComparezLaTrajectoire.tsx +++ b/app.territoiresentransitions.react/src/app/pages/collectivite/Trajectoire/ComparezLaTrajectoire.tsx @@ -1,24 +1,42 @@ import { makeCollectiviteIndicateursUrl } from '@/app/app/paths'; import { Button, Card } from '@/ui'; +interface ComparezLaTrajectoireProps { + collectiviteId: number; + identifiantReferentiel: string; + readonly?: boolean; +} + /** Affiche l'encadré "Comparez la trajectoire SNBC à vos objectifs et vos résultats" */ export const ComparezLaTrajectoire = ({ collectiviteId, identifiantReferentiel, -}: { - collectiviteId: number; - identifiantReferentiel: string; -}) => { + readonly = false, +}: ComparezLaTrajectoireProps) => { return (
Comparez la trajectoire SNBC à vos objectifs et vos résultats
-

- Pour cela, il faut d'abord{' '} - compléter vos objectifs et vos résultats dans vos Indicateurs. - Vous avez le choix d'appliquer les données disponibles en open - data, ou bien de renseigner vos propres données. -

+ {readonly ? ( +

+ Pour cela, il faut d'abord{' '} + + faire compléter vos objectifs et vos résultats dans vos Indicateurs + par un utilisateur en Edition ou Admin sur le profil de cette + collectivité + + . L'utilisateur pourra appliquer les données disponibles en open + data, ou bien renseigner ses propres données. +

+ ) : ( +

+ Pour cela, il faut d'abord{' '} + compléter vos objectifs et vos résultats dans vos Indicateurs. + Vous avez le choix d'appliquer les données disponibles en open + data, ou bien de renseigner vos propres données. +

+ )} + } /> diff --git a/app.territoiresentransitions.react/src/app/pages/collectivite/Trajectoire/Trajectoire.tsx b/app.territoiresentransitions.react/src/app/pages/collectivite/Trajectoire/Trajectoire.tsx index db0b81ef3a..8edb7d778e 100644 --- a/app.territoiresentransitions.react/src/app/pages/collectivite/Trajectoire/Trajectoire.tsx +++ b/app.territoiresentransitions.react/src/app/pages/collectivite/Trajectoire/Trajectoire.tsx @@ -3,6 +3,7 @@ import SpinnerLoader from '@/app/ui/shared/SpinnerLoader'; import { Alert, Button, Card, Modal, TrackPageView } from '@/ui'; import { useEffect } from 'react'; import { useQueryClient } from 'react-query'; +import { useCurrentCollectivite } from '../../../../core-logic/hooks/useCurrentCollectivite'; import { CommuneNonSupportee } from './CommuneNonSupportee'; import { HELPDESK_URL } from './constants'; import { ReactComponent as DbErrorPicto } from './db-error.svg'; @@ -63,23 +64,45 @@ const TrajectoireContent = (props: { * ne sont pas disponibles. */ const DonneesNonDispo = () => { + const collectivite = useCurrentCollectivite(); + return (

Données disponibles insuffisantes pour le calcul

-

- Nous ne disposons pas encore des données suffisantes pour permettre le - calcul automatique de la trajectoire SNBC territorialisée de votre - collectivité. Vous pouvez néanmoins lancer un calcul en complétant les - données disponibles en open data avec vos propres données. Vous pourrez - ainsi visualiser facilement votre trajectoire SNBC territorialisée et la - comparer aux objectifs fixés et résultats observés. -

+ {collectivite?.readonly ? ( +

+ Nous ne disposons pas encore des données suffisantes pour permettre le + calcul automatique de la trajectoire SNBC territorialisé de votre + collectivité.{' '} + + Un utilisateur en Edition ou Admin sur le profil de cette + collectivité + {' '} + peut néanmoins lancer un calcul en complétant les données disponibles + en open data avec celles disponibles au sein de la collectivité. Vous + pourrez ensuite visualiser facilement votre trajectoire SNBC + territorialisée et la comparer aux objectifs fixés et résultats + observés. +

+ ) : ( +

+ Nous ne disposons pas encore des données suffisantes pour permettre le + calcul automatique de la trajectoire SNBC territorialisée de votre + collectivité. Vous pouvez néanmoins lancer un calcul en complétant les + données disponibles en open data avec vos propres données. Vous + pourrez ainsi visualiser facilement votre trajectoire SNBC + territorialisée et la comparer aux objectifs fixés et résultats + observés. +

+ )} } > - +
); diff --git a/app.territoiresentransitions.react/src/app/pages/collectivite/Trajectoire/TrajectoireCalculee.tsx b/app.territoiresentransitions.react/src/app/pages/collectivite/Trajectoire/TrajectoireCalculee.tsx index 39367fb458..e3906dc4cf 100644 --- a/app.territoiresentransitions.react/src/app/pages/collectivite/Trajectoire/TrajectoireCalculee.tsx +++ b/app.territoiresentransitions.react/src/app/pages/collectivite/Trajectoire/TrajectoireCalculee.tsx @@ -134,7 +134,14 @@ export const TrajectoireCalculee = () => { { /** Avertissement "Données partiellement disponibles" */ !secteur && donneesSectoriellesIncompletes && ( - + ) } { @@ -187,7 +194,12 @@ export const TrajectoireCalculee = () => { secteur && !valeursSecteur && ( ) } @@ -201,6 +213,7 @@ export const TrajectoireCalculee = () => { )} {secteur && } diff --git a/backend/src/auth/authorizations/permission.models.ts b/backend/src/auth/authorizations/permission.models.ts index 2145c887c0..f208f300c8 100644 --- a/backend/src/auth/authorizations/permission.models.ts +++ b/backend/src/auth/authorizations/permission.models.ts @@ -17,12 +17,14 @@ export const Permission: Record = { PermissionOperation.INDICATEURS_VISITE, PermissionOperation.INDICATEURS_LECTURE, PermissionOperation.INDICATEURS_TRAJECTOIRES_LECTURE, + PermissionOperation.INDICATEURS_TRAJECTOIRES_EDITION, ], [Role.ADEME]: [ PermissionOperation.COLLECTIVITES_VISITE, PermissionOperation.PLANS_FICHES_VISITE, PermissionOperation.INDICATEURS_VISITE, PermissionOperation.INDICATEURS_TRAJECTOIRES_LECTURE, + PermissionOperation.INDICATEURS_TRAJECTOIRES_EDITION, ], [Role.LECTURE]: [ PermissionOperation.COLLECTIVITES_VISITE, @@ -33,6 +35,7 @@ export const Permission: Record = { PermissionOperation.INDICATEURS_VISITE, PermissionOperation.INDICATEURS_LECTURE, PermissionOperation.INDICATEURS_TRAJECTOIRES_LECTURE, + PermissionOperation.INDICATEURS_TRAJECTOIRES_EDITION, ], [Role.EDITION]: [ PermissionOperation.COLLECTIVITES_VISITE,