diff --git a/.kontinuous/env/preprod/values.yaml b/.kontinuous/env/preprod/values.yaml index e74fa8507..9da606fbb 100644 --- a/.kontinuous/env/preprod/values.yaml +++ b/.kontinuous/env/preprod/values.yaml @@ -22,7 +22,7 @@ app: MAILER_SMTP_HOST: maildev MAILER_SMTP_PORT: "1025" MAILER_SMTP_SSL: "False" - EMAIL_LOGIN: "True" +# EMAIL_LOGIN: "True" autoscale: enabled: true resources: diff --git a/packages/app/src/app/(consultation)/index-egapro/recherche/page.tsx b/packages/app/src/app/(consultation)/index-egapro/recherche/page.tsx index c9614aaff..5452f0b12 100644 --- a/packages/app/src/app/(consultation)/index-egapro/recherche/page.tsx +++ b/packages/app/src/app/(consultation)/index-egapro/recherche/page.tsx @@ -1,7 +1,6 @@ /* eslint-disable @typescript-eslint/ban-ts-comment -- server components */ import { fr } from "@codegouvfr/react-dsfr"; import Alert from "@codegouvfr/react-dsfr/Alert"; -import Input from "@codegouvfr/react-dsfr/Input"; import { cx } from "@codegouvfr/react-dsfr/tools/cx"; import { config } from "@common/config"; import { type SearchConsultationDTO } from "@common/core-domain/dtos/helpers/common"; @@ -13,12 +12,10 @@ import { type NextServerPageProps, withSearchParamsValidation } from "@common/ut import { DebugButton } from "@components/utils/debug/DebugButton"; import { Box, Container, DetailedDownload, Grid, GridCol, Heading, Stat, Text } from "@design-system"; import { ClientAnimate } from "@design-system/utils/client/ClientAnimate"; -import { SimpleSubmitForm } from "@design-system/utils/client/SimpleSubmitForm"; import { getStats } from "@services/server/getDeclarationStats"; import { Suspense } from "react"; import { SearchSirenForm } from "../../SearchSirenForm"; -import { AverageIndicatorForm } from "./AverageIndicatorForm"; import { DisplayIndexResults } from "./DisplayIndexResults"; export const dynamic = "force-dynamic"; @@ -60,21 +57,8 @@ const Recherche = withSearchParamsValidation(getDeclarationStatsInputSchema)(asy )} - {isLandingPage ? ( - - - - ) : ( - - )} + + {/* @ts-ignore */} { )} - - - + {/**/} + {/* */} + {/**/} ); diff --git a/packages/app/src/app/(default)/Navigation.tsx b/packages/app/src/app/(default)/Navigation.tsx index 1c921034f..a9f3d56b8 100644 --- a/packages/app/src/app/(default)/Navigation.tsx +++ b/packages/app/src/app/(default)/Navigation.tsx @@ -53,14 +53,44 @@ export const Navigation = () => { }, isActive: segments.includes("declaration") && segments.includes("index-egapro"), }, + { + text: "Consulter l'index", + linkProps: { + href: "/index-egapro/recherche", + }, + isActive: segments.includes("recherche") && segments.includes("index-egapro"), + }, ], }, { text: "Représentation équilibrée", - linkProps: { - href: "/representation-equilibree", - }, isActive: segment === "representation-equilibree", + buttonProps: { + id: "main-navigation-index-link", + }, + menuLinks: [ + { + text: "À propos des écarts", + linkProps: { + href: "/representation-equilibree", + }, + isActive: segments.includes("representation-equilibree") && segments.length === 1, + }, + { + text: "Déclarer les écarts", + linkProps: { + href: "/representation-equilibree/assujetti", + }, + isActive: segments.includes("assujetti") && segments.includes("representation-equilibree"), + }, + { + text: "Consulter les écarts", + linkProps: { + href: "/representation-equilibree/recherche", + }, + isActive: segments.includes("recherche") && segments.includes("representation-equilibree"), + }, + ], }, ...(isStaff ? [ diff --git a/packages/app/src/app/(default)/index-egapro/declaration/commencer/page.tsx b/packages/app/src/app/(default)/index-egapro/declaration/commencer/page.tsx index b6f768c23..ddceea735 100644 --- a/packages/app/src/app/(default)/index-egapro/declaration/commencer/page.tsx +++ b/packages/app/src/app/(default)/index-egapro/declaration/commencer/page.tsx @@ -1,4 +1,4 @@ -import { authConfig, monCompteProProvider } from "@api/core-domain/infra/auth/config"; +import { authConfig } from "@api/core-domain/infra/auth/config"; import { fr } from "@codegouvfr/react-dsfr"; import Alert from "@codegouvfr/react-dsfr/Alert"; import { config } from "@common/config"; @@ -25,7 +25,9 @@ const CommencerPage = async () => { if (!session) return null; const isEmailLogin = config.api.security.auth.isEmailLogin; - const monCompteProHost = monCompteProProvider.issuer; + const monCompteProHost = `https://app${ + config.api.security.moncomptepro.appTest ? "-test" : "" + }.moncomptepro.beta.gouv.fr`; if (!session.user.companies.length && !session.user.staff) { return isEmailLogin ? ( diff --git a/packages/app/src/app/(default)/index-egapro/declaration/confirmation/page.tsx b/packages/app/src/app/(default)/index-egapro/declaration/confirmation/page.tsx index cf13cb435..b1e92b7d5 100644 --- a/packages/app/src/app/(default)/index-egapro/declaration/confirmation/page.tsx +++ b/packages/app/src/app/(default)/index-egapro/declaration/confirmation/page.tsx @@ -231,6 +231,7 @@ const ConfirmationPage = () => { Accéder à mon espace diff --git a/packages/app/src/app/(default)/index-egapro/simulateur/(funnel)/(indicateurs2ou3)/Form.tsx b/packages/app/src/app/(default)/index-egapro/simulateur/(funnel)/(indicateurs2ou3)/Form.tsx index 677f39f72..c5686306a 100644 --- a/packages/app/src/app/(default)/index-egapro/simulateur/(funnel)/(indicateurs2ou3)/Form.tsx +++ b/packages/app/src/app/(default)/index-egapro/simulateur/(funnel)/(indicateurs2ou3)/Form.tsx @@ -1,5 +1,6 @@ "use client"; +import { fr } from "@codegouvfr/react-dsfr"; import Alert from "@codegouvfr/react-dsfr/Alert"; import { type ComputedResult } from "@common/core-domain/computers/AbstractComputer"; import { IndicateurDeuxComputer, type Percentages } from "@common/core-domain/computers/IndicateurDeuxComputer"; @@ -27,6 +28,7 @@ import { Box, CenteredContainer, FormLayout, + Link, } from "@design-system"; import { ClientAnimate } from "@design-system/utils/client/ClientAnimate"; import { zodResolver } from "@hookform/resolvers/zod"; @@ -169,6 +171,61 @@ export const Indic2or3Form = ({ indicateur }: Indic2or3FormProps) => {
+ {indicateur == 2 ? ( + + La notion d’augmentation individuelle correspond à une augmentation individuelle du salaire de base du + salarié concerné y compris celle liée à une promotion. L’indicateur n’est pas calculable: +
+
    +
  • s’il n’a eu aucune augmentation au cours de la période de référence
  • +
  • + si le total des effectifs retenus est inférieur à 40% des effectifs pris en compte pour le calcul + des indicateurs +
  • +
+ Pour en savoir plus sur le calcul de cet indicateur,{" "} + + cliquez ici + +

+ } + /> + ) : ( + + La notion de promotion correspond au passage à un niveau ou coefficient hiérarchique supérieur + l'indicateur n'est pas calculable: +
+
    +
  • s'il n'a eu aucune promotion au cours de la période de référence
  • +
  • + si le total des effectifs retenus est inférieur à 40% des effectifs pris en compte pour le calcul + des indicateurs +
  • +
+ Pour en savoir plus sur le calcul de cet indicateur,{" "} + + cliquez ici + +

+ } + /> + )} {!canCompute ? ( { return ( <> + + La rémunération prend en compte les salaires, bonus, primes collectives, indemnités de congés payés. Elle + est reconstituée en équivalent temps plein sur toute la durée de la période de référence.
+ L'indicateur et l'index ne sont pas calculables si le total des effectifs des groupes (comptant au moins 3 + femmes et 3 hommes) est inférieur à 40% des effectifs totaux.
+ Pour en savoir plus sur le calcul de cet indicateur,{" "} + + cliquez ici + +

+ } + />

Les rémunérations annuelles moyennes des femmes et des hommes doivent être renseignées par catégorie de postes équivalents (soit par CSP, soit par niveau ou coefficient hiérarchique en application de la classification de diff --git a/packages/app/src/app/(default)/index-egapro/simulateur/(funnel)/indicateur2et3/Indicateur2et3Note.tsx b/packages/app/src/app/(default)/index-egapro/simulateur/(funnel)/indicateur2et3/Indicateur2et3Note.tsx index 9562541ac..b1253691e 100644 --- a/packages/app/src/app/(default)/index-egapro/simulateur/(funnel)/indicateur2et3/Indicateur2et3Note.tsx +++ b/packages/app/src/app/(default)/index-egapro/simulateur/(funnel)/indicateur2et3/Indicateur2et3Note.tsx @@ -42,7 +42,7 @@ export const Indicateur2et3Note = ({ computed, isValid, simple, noBorder, detail noBorder={noBorder} note="NC" size="small" - text="L'indicateur écart de taux d'augmentations est non calculable" + text="L'indicateur écart de taux d'augmentations n'est pas calculable" legend="Les effectifs comprennent moins de 5 femmes ou moins de 5 hommes" /> ) : ( diff --git a/packages/app/src/app/(default)/index-egapro/simulateur/(funnel)/indicateur2et3/page.tsx b/packages/app/src/app/(default)/index-egapro/simulateur/(funnel)/indicateur2et3/page.tsx index 49f5ef44c..3e76ef5e3 100644 --- a/packages/app/src/app/(default)/index-egapro/simulateur/(funnel)/indicateur2et3/page.tsx +++ b/packages/app/src/app/(default)/index-egapro/simulateur/(funnel)/indicateur2et3/page.tsx @@ -1,5 +1,6 @@ +import { fr } from "@codegouvfr/react-dsfr"; import Alert from "@codegouvfr/react-dsfr/Alert"; -import { CenteredContainer } from "@design-system"; +import { CenteredContainer, Link } from "@design-system"; import { NAVIGATION } from "../navigation"; import { Indic2and3Form } from "./Form"; @@ -16,6 +17,29 @@ export const metadata = { const Indicateur2et3Page = () => { return ( + + Aide au calcul La notion d’augmentation individuelle correspond à une augmentation individuelle du salaire + de base du salarié concerné y compris celle liée à une promotion. L’indicateur n’est pas calculable: +
+

    +
  • s’il n’a eu aucune augmentation au cours de la période de référence
  • +
  • + si le total des effectifs retenus est inférieur à 40% des effectifs pris en compte pour le calcul des + indicateurs +
  • +
+ Pour en savoir plus sur le calcul de cet indicateur,{" "} + + cliquez ici + +

+ } + />

Renseigner le nombre de femmes et d'hommes ayant été augmentés durant la période de référence. Il s'agit des augmentations individuelles du salaire de base, y compris celles liées à une promotion. diff --git a/packages/app/src/app/(default)/index-egapro/simulateur/(funnel)/indicateur4/page.tsx b/packages/app/src/app/(default)/index-egapro/simulateur/(funnel)/indicateur4/page.tsx index c7e60a143..a370df3c3 100644 --- a/packages/app/src/app/(default)/index-egapro/simulateur/(funnel)/indicateur4/page.tsx +++ b/packages/app/src/app/(default)/index-egapro/simulateur/(funnel)/indicateur4/page.tsx @@ -1,5 +1,5 @@ import Alert from "@codegouvfr/react-dsfr/Alert"; -import { CenteredContainer } from "@design-system"; +import { CenteredContainer, Link } from "@design-system"; import { TITLES } from "../navigation"; import { Indic4Form } from "./Form"; @@ -30,6 +30,20 @@ const Indicateur4Page = () => { congé parental) pendant la période de référence si au moins une augmentation a été faite pendant son congé. La prise en compte de chaque salariée est donc appréciée individuellement et dépend des éventuelles augmentations ayant eu lieu pendant leur congé maternité. +
+ L’indicateur n’est pas calculable:: +
+

    +
  • s’il n’y a eu aucun retour de congé maternité (ou adoption) au cours de la période de référence
  • +
  • s’il n’y a eu aucune augmentation ‘individuelle ou collective) au cours des congés maternité
  • +
+ Pour en savoir plus sur le calcul de cet indicateur,{" "} + + cliquez ici + } /> diff --git a/packages/app/src/app/(default)/index-egapro/simulateur/(funnel)/indicateur5/page.tsx b/packages/app/src/app/(default)/index-egapro/simulateur/(funnel)/indicateur5/page.tsx index 43dabc4ad..c2e98a64f 100644 --- a/packages/app/src/app/(default)/index-egapro/simulateur/(funnel)/indicateur5/page.tsx +++ b/packages/app/src/app/(default)/index-egapro/simulateur/(funnel)/indicateur5/page.tsx @@ -1,4 +1,6 @@ -import { CenteredContainer } from "@design-system"; +import { fr } from "@codegouvfr/react-dsfr"; +import Alert from "@codegouvfr/react-dsfr/Alert"; +import { CenteredContainer, Link } from "@design-system"; import { TITLES } from "../navigation"; import { Indic5Form } from "./Form"; @@ -15,6 +17,25 @@ export const metadata = { const Indicateur5Page = () => { return ( + + Le nombre de salariés du sexe sous-représenté est calculé en comparant le nombre de femmes et le nombre + d’hommes parmi les 10 plus hautes rémunérations. +
+ Pour en savoir plus sur le calcul de cet indicateur,{" "} + + cliquez ici + +

+ } + />

Renseigner le nombre de femmes et d'hommes parmi les 10 plus hautes rémunérations durant la période de référence

diff --git a/packages/app/src/app/(default)/index-egapro/simulateur/(funnel)/navigation.ts b/packages/app/src/app/(default)/index-egapro/simulateur/(funnel)/navigation.ts index 555fd9194..286555cc9 100644 --- a/packages/app/src/app/(default)/index-egapro/simulateur/(funnel)/navigation.ts +++ b/packages/app/src/app/(default)/index-egapro/simulateur/(funnel)/navigation.ts @@ -8,7 +8,7 @@ interface NavigationItem { } export const TITLES = { - commencer: "Commencer une simlulation de calcul", + commencer: "Commencer une simulation de calcul", effectifs: "Effectifs assujettis et pris en compte", indicateur1: "Indicateur écart de rémunération", indicateur2: "Indicateur écart de taux d’augmentations", diff --git a/packages/app/src/app/(default)/index-egapro/simulateur/(funnel)/recapitulatif/RecapSimu.tsx b/packages/app/src/app/(default)/index-egapro/simulateur/(funnel)/recapitulatif/RecapSimu.tsx index 3c51cce95..639ef5c94 100644 --- a/packages/app/src/app/(default)/index-egapro/simulateur/(funnel)/recapitulatif/RecapSimu.tsx +++ b/packages/app/src/app/(default)/index-egapro/simulateur/(funnel)/recapitulatif/RecapSimu.tsx @@ -182,7 +182,7 @@ export const RecapSimu = () => { noBorder note="NC" size="small" - text="L'indicateur écart de rémunération est non calculable" + text="L'indicateur écart de rémunération n'est pas calculable" legend="L’ensemble des groupes valides (c’est-à-dire comptant au moins 3 femmes et 3 hommes), représentent moins de 40% des effectifs" /> )} @@ -200,7 +200,7 @@ export const RecapSimu = () => { noBorder note="NC" size="small" - text="L'indicateur écart de taux d'augmentations est non calculable" + text="L'indicateur écart de taux d'augmentations n'est pas calculable" legend="Les effectifs comprennent moins de 5 femmes ou moins de 5 hommes" /> ); @@ -212,7 +212,7 @@ export const RecapSimu = () => { noBorder note="NC" size="small" - text="L'indicateur écart de taux d'augmentations est non calculable" + text="L'indicateur écart de taux d'augmentations n'est pas calculable" legend="Il n'y a pas eu d'augmentations durant la période de référence" /> ); @@ -249,7 +249,7 @@ export const RecapSimu = () => { size="small" text={`L'indicateur écart de taux ${ indicateur === 2 ? "d'augmentations" : "de promotions" - } est non calculable`} + } n'est pas calculable`} legend="L’ensemble des groupes valides (c’est-à-dire comptant au moins 10 femmes et 10 hommes), représentent moins de 40% des effectifs" /> ); @@ -264,7 +264,7 @@ export const RecapSimu = () => { size="small" text={`L'indicateur écart de taux ${ indicateur === 2 ? "d'augmentations" : "de promotions" - } est non calculable`} + } n'est pas calculable`} legend={`Il n'y a pas eu ${ indicateur === 2 ? "d'augmentations" : "de promotions" } durant la période de référence`} @@ -339,7 +339,7 @@ export const RecapSimu = () => { noBorder note="NC" size="small" - text="L'indicateur retour de congé maternité est non calculable" + text="L'indicateur retour de congé maternité n'est pas calculable" legend="Absence d'augmentations salariales pendant la durée du ou des congés maternité" /> ); @@ -351,7 +351,7 @@ export const RecapSimu = () => { noBorder note="NC" size="small" - text="L'indicateur retour de congé maternité est non calculable" + text="L'indicateur retour de congé maternité n'est pas calculable" legend="Il n'y a pas eu de retour de congé maternité durant la période de référence" /> ); diff --git a/packages/app/src/app/(default)/page.tsx b/packages/app/src/app/(default)/page.tsx index 546ff9651..a3b98309b 100644 --- a/packages/app/src/app/(default)/page.tsx +++ b/packages/app/src/app/(default)/page.tsx @@ -59,6 +59,7 @@ const Home = () => { children: "Consulter l'Index", linkProps: { href: "/index-egapro/recherche", + target: "_blank", }, priority: "tertiary no outline", }, @@ -93,6 +94,7 @@ const Home = () => { children: "Consulter les Écarts", linkProps: { href: "/representation-equilibree/recherche", + target: "_blank", }, priority: "tertiary no outline", }, diff --git a/packages/app/src/app/(default)/representation-equilibree/(funnel)/commencer/Form.tsx b/packages/app/src/app/(default)/representation-equilibree/(funnel)/commencer/Form.tsx index 779d36756..ea50b6269 100644 --- a/packages/app/src/app/(default)/representation-equilibree/(funnel)/commencer/Form.tsx +++ b/packages/app/src/app/(default)/representation-equilibree/(funnel)/commencer/Form.tsx @@ -112,6 +112,7 @@ export const CommencerForm = ({ session, monCompteProHost }: { monCompteProHost: if (confirm("Les données ne sont pas sauvegardées, êtes-vous sûr de vouloir réinitialiser le parcours ?")) { resetFunnel(); resetForm(); + if (session.user.staff) setValue("siren", ""); } }; diff --git a/packages/app/src/app/(default)/representation-equilibree/(funnel)/commencer/page.tsx b/packages/app/src/app/(default)/representation-equilibree/(funnel)/commencer/page.tsx index 869fd176d..d2344c83e 100644 --- a/packages/app/src/app/(default)/representation-equilibree/(funnel)/commencer/page.tsx +++ b/packages/app/src/app/(default)/representation-equilibree/(funnel)/commencer/page.tsx @@ -1,4 +1,4 @@ -import { authConfig, monCompteProProvider } from "@api/core-domain/infra/auth/config"; +import { authConfig } from "@api/core-domain/infra/auth/config"; import { fr } from "@codegouvfr/react-dsfr"; import Alert from "@codegouvfr/react-dsfr/Alert"; import { config } from "@common/config"; @@ -20,7 +20,9 @@ export const metadata = { const CommencerPage = async () => { const session = await getServerSession(authConfig); if (!session) return null; - const monCompteProHost = monCompteProProvider.issuer; + const monCompteProHost = `https://app${ + config.api.security.moncomptepro.appTest ? "-test" : "" + }.moncomptepro.beta.gouv.fr`; const isEmailLogin = config.api.security.auth.isEmailLogin; if (!(session.user.companies.length || session.user.staff)) { diff --git a/packages/app/src/app/(default)/representation-equilibree/[siren]/[year]/page.tsx b/packages/app/src/app/(default)/representation-equilibree/[siren]/[year]/page.tsx index cdc83d9c6..9b19ce5c9 100644 --- a/packages/app/src/app/(default)/representation-equilibree/[siren]/[year]/page.tsx +++ b/packages/app/src/app/(default)/representation-equilibree/[siren]/[year]/page.tsx @@ -1,4 +1,4 @@ -import { authConfig, monCompteProProvider } from "@api/core-domain/infra/auth/config"; +import { authConfig } from "@api/core-domain/infra/auth/config"; import { representationEquilibreeRepo } from "@api/core-domain/repo"; import { GetRepresentationEquilibreeBySirenAndYear, @@ -8,6 +8,7 @@ import { fr } from "@codegouvfr/react-dsfr"; import Alert from "@codegouvfr/react-dsfr/Alert"; import Badge from "@codegouvfr/react-dsfr/Badge"; import Highlight from "@codegouvfr/react-dsfr/Highlight"; +import { config } from "@common/config"; import { type RepresentationEquilibreeDTO } from "@common/core-domain/dtos/RepresentationEquilibreeDTO"; import { formatIsoToFr } from "@common/utils/date"; import { type NextServerPageProps } from "@common/utils/next"; @@ -57,7 +58,9 @@ const RepEqPage = async ({ params: { siren, year: strYear } }: NextServerPagePro const olderThanOneYear = session?.user?.staff ? false : isAfter(new Date(), add(new Date(repEq.declaredAt), { years: 1 })); - const monCompteProHost = monCompteProProvider.issuer; + const monCompteProHost = `https://app${ + config.api.security.moncomptepro.appTest ? "-test" : "" + }.moncomptepro.beta.gouv.fr`; return (