Skip to content

Commit

Permalink
Merge pull request #1791 from BaseAdresseNationale/gfay_feat_pages-pa…
Browse files Browse the repository at this point in the history
…rtenaire

feat (Site V2): pages partenaire
  • Loading branch information
nkokla committed Aug 23, 2024
2 parents 7f1c6a2 + 83027f9 commit c16e23d
Show file tree
Hide file tree
Showing 35 changed files with 1,940 additions and 10 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ on:

env:
NEXT_PUBLIC_API_BAN_URL: ${{ vars.NEXT_PUBLIC_API_BAN_URL }}
NEXT_PUBLIC_BAL_ADMIN_API_URL: ${{ vars.NEXT_PUBLIC_BAL_ADMIN_API_URL }}
NEXT_PUBLIC_API_GEO_URL: ${{ vars.NEXT_PUBLIC_API_GEO_URL }}

jobs:
build:
Expand Down
5 changes: 5 additions & 0 deletions next.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,11 @@ const nextConfig = {
compiler: {
styledComponents: true,
},
experimental: {
serverActions: {
bodySizeLimit: '3mb',
},
},
}

export default nextConfig
Binary file not shown.
Binary file not shown.
Binary file not shown.
13 changes: 13 additions & 0 deletions src/app/communaute/charte-base-adresse-locale/page.styles.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
'use client'
import Section from '@/components/Section'
import styled from 'styled-components'

export const StyledPage = styled(Section)`
.download-card-wrapper {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
gap: 1rem;
margin-bottom: 2rem;
}
`
68 changes: 68 additions & 0 deletions src/app/communaute/charte-base-adresse-locale/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
import DownloadCard from '@/components/DownloadCard'
import { StyledPage } from './page.styles'
import { getPartenairesDeLaCharte, getPartenairesDeLaCharteServices, PaginatedPartenairesDeLaCharte } from '@/lib/api-bal-admin'
import SearchPartenaire from '@/components/PartenairesDeLaCharte/SearchPartenaire'
import { getDepartements } from '@/lib/api-geo'
import { displayWithPlural } from '@/utils/string'

export default async function CharteBALPage() {
const departements = await getDepartements()
const services = await getPartenairesDeLaCharteServices()
const initialPartenaires = await getPartenairesDeLaCharte({})

const renderInfos = async (paginatedPartenaires: PaginatedPartenairesDeLaCharte) => {
'use server'
return <p>{displayWithPlural(paginatedPartenaires.total, 'partenaire')} : {displayWithPlural(paginatedPartenaires.totalCommunes, 'commune')}, {displayWithPlural(paginatedPartenaires.totalOrganismes, 'organisme')}, {displayWithPlural(paginatedPartenaires.totalEntreprises, 'entreprise')}</p>
}

return (
<StyledPage pageTitle="Charte de la Base adresse locale">
<p>La Charte de la Base Adresse Locale rassemble les organismes qui privilégient le format Base Adresse Locale et s’engagent en matière de gouvernance. L’enjeu pour la commune, autorité responsable de l’adresse, est d’identifier un référent en capacité de l’assister au besoin. Les organismes partenaires présentent la Charte sur leur site Internet et la respectent. Ces organismes s’engagent également à respecter le principe du &quot;Dites-le nous une fois de l’adresse&quot;. Ils sont référencés comme tiers de confiance sur ce site.</p>
<p>Elle est disponible en trois versions :</p>
<ul>
<li>
Un format qui s’adresse aux communes qui partagent leur expérience avec d’autres communes.
</li>
<li>
Un format dédié aux organismes qui accompagnent les communes.
</li>
<li>
Un format pour les organisations à but lucratif qui proposent une prestation d’adressage aux communes.
</li>
</ul>
<p>
Les deux versions de la Charte ont en partage le respect du format de données Base Adresse Locale et d’une gouvernance qui place la commune au coeur du dispositif de l’adresse.
</p>
<h2>Télécharger</h2>
<div className="download-card-wrapper">
<DownloadCard
title="Télécharger la charte des communes partenaires"
text="La charte des communes partenaires est destinée aux communes qui partagent leur expérience avec d’autres communes."
fileDescription="PDF - 295 ko"
downloadlink="/chartes-partenaires/charte-bal-communes-v1.2.pdf"
/>
<DownloadCard
title="Télécharger la charte des organismes partenaires"
text="La charte des organismes partenaires est destinée aux organismes publics qui accompagnent les communes."
fileDescription="PDF - 238 ko"
downloadlink="/chartes-partenaires/charte-bal-organismes-v2.1.pdf"
/>
<DownloadCard
title="Télécharger la charte des sociétés partenaires"
text="La charte des sociétés partenaires est destinée aux sociétés à but lucratif qui proposent une prestation d’adressage aux communes."
fileDescription="PDF - 235 ko"
downloadlink="/chartes-partenaires/charte-bal-societe-v1.1.pdf"
/>
</div>
<h2>Partenaires disponibles sur votre territoire</h2>
<p>De nombreux partenaires de la Charte de la Base Adresse Locale proposent un accompagnement et/ou des outils adaptés à votre territoire</p>
<SearchPartenaire
searchBy="perimeter"
services={services}
initialPartenaires={initialPartenaires}
departements={departements}
renderInfos={renderInfos}
/>
</StyledPage>
)
}
62 changes: 62 additions & 0 deletions src/app/communaute/communes-partenaires/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
import CandidacyModal from '@/components/PartenairesDeLaCharte/CandidacyModal'
import SearchPartenaire from '@/components/PartenairesDeLaCharte/SearchPartenaire'
import Section from '@/components/Section'
import { getPartenairesDeLaCharte, getPartenairesDeLaCharteServices, PaginatedPartenairesDeLaCharte } from '@/lib/api-bal-admin'
import { getDepartements } from '@/lib/api-geo'
import { PartenaireDeLaCharteTypeEnum } from '@/types/partenaire.types'
import { displayWithPlural } from '@/utils/string'

export default async function CommunesPartenairesPage() {
const services = await getPartenairesDeLaCharteServices()
const initialPartenaires = await getPartenairesDeLaCharte({
type: PartenaireDeLaCharteTypeEnum.COMMUNE,
})
const departements = await getDepartements()

async function renderInfos(paginatedPartenaires: PaginatedPartenairesDeLaCharte) {
'use server'
return <p>{displayWithPlural(paginatedPartenaires.totalCommunes, 'commune')}</p>
}

return (
<Section pageTitle="Communes partenaires de la Charte">
<p>La présence de cette Charte de la Base Adresse Locale sur le site Internet d’une commune signifie qu’elle utilise le format Base Adresse Locale pour la transmission de ses adresses à la Base Adresse Nationale et promeut ce format. Cette commune est donc référencée sur adresse.data.gouv.fr pour la qualité de ses adresses et sa démarche de partage d’expérience auprès d’autres communes. Cette charte vise à fédérer les communes qui ont en commun le souhait de partager leur expérience et à faciliter la diffusion des bonnes pratiques entre pairs.</p>
<p>Elle est disponible en trois versions :</p>
<ul>
<li>
La commune promeut une gouvernance qui assure à la commune d’être la seule autorité compétente sur l’adresse à travers sa Base Adresse Locale même si elle peut en déléguer la réalisation technique. Si elle délègue cette réalisation technique, elle peut à tout moment reprendre une gestion autonome de ses adresses.
</li>
<li>
La commune procède à la « dénomination des voies et lieux-dits, y compris les voies privées ouvertes à la circulation » et à la numérotation des constructions conformément à l’article 169 de la loi du 21 février 2022, dite loi &quot;3DS&quot;.
</li>
<li>
La commune veille à certifier ses adresses.
</li>
<li>
La commune met à jour régulièrement ses adresses et crée une routine pour leur conserver leur qualité.
</li>
<li>
La commune encourage et facilite la transmission rapide de sa Base Adresse Locale à la Base Adresse Nationale.
</li>
<li>
La commune privilégie l’API de dépôt via Mes Adresses, le formulaire de dépôt ou une utilisation directe de l’API et ce dès que possible après le porter à connaissance de nouvelles adresses.
</li>
<li>
Partage d’expériences : la commune encourage le partage d’expériences avec d’autres communes, contribuant à la diffusion des bonnes pratiques de l’adresse sur mes-adresses.data.gouv.fr si elles ne disposent pas d’outils (les leurs ou ceux du délégataire).
</li>
</ul>
<h2>Les communes partenaires</h2>
<p>Ces organismes s’engagent à respecter le format Base Adresse Locale (attention, il s’agit d’un format de données bien précis), sa gouvernance et pour ces raisons sont identifiés comme tiers de confiance. Votre organisme respecte déjà ces spécifications mais n’est pas identifié ? Vous pouvez rejoindre les partenaires de la Charte en nous contactant.</p>
<CandidacyModal services={services} departements={departements} />
<SearchPartenaire
searchBy="name"
services={services}
initialPartenaires={initialPartenaires}
departements={departements}
filter={{ type: PartenaireDeLaCharteTypeEnum.COMMUNE }}
renderInfos={renderInfos}
/>

</Section>
)
}
100 changes: 100 additions & 0 deletions src/app/communaute/organismes-partenaires/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
import SearchPartenaire from '@/components/PartenairesDeLaCharte/SearchPartenaire'
import Section from '@/components/Section'
import { getPartenairesDeLaCharte, getPartenairesDeLaCharteServices, PaginatedPartenairesDeLaCharte } from '@/lib/api-bal-admin'
import { getDepartements } from '@/lib/api-geo'
import { PartenaireDeLaCharteTypeEnum } from '@/types/partenaire.types'
import { displayWithPlural } from '@/utils/string'
import Button from '@codegouvfr/react-dsfr/Button'

export default async function OrganismesPartenairesPage() {
const services = await getPartenairesDeLaCharteServices()
const initialPartenaires = await getPartenairesDeLaCharte({
type: PartenaireDeLaCharteTypeEnum.ORGANISME,
})
const departements = await getDepartements()

async function renderInfos(paginatedPartenaires: PaginatedPartenairesDeLaCharte) {
'use server'
return <p>{displayWithPlural(paginatedPartenaires.totalOrganismes, 'organisme')}</p>
}

return (
<Section pageTitle="Organismes partenaires de la Charte">
<p><b>Organismes d’accompagnement à but non lucratif (EPCI, départements, syndicats mixtes…)</b></p>
<p>La loi du 21 février 2022, dite loi &quot;3DS&quot;, réaffirme la compétence de la commune en matière d’adressage. Elle doit procéder à la dénomination des voies, des lieux-dits et à la numérotation des constructions, mais aussi transmettre les données associées à la Base Adresse Nationale. Compte-tenu de la grande diversité des territoires et de l’investissement que cette tâche peut occasionner au démarrage, il peut être pertinent de proposer un accompagnement aux communes, à l’échelle locale. La présente charte s’adresse aux acteurs qui souhaitent proposer cet accompagnement. Son adoption leur permet d’être référencés comme tiers de confiance sur le site national de l’adresse adresse.data.gouv.fr et de disposer eux-mêmes d’un accompagnement de niveau national et d’outils adaptés.</p>
<p>La présente charte est valable trois mois, à échéance en fin de trimestre, et renouvelée par tacite reconduction.</p>
<p><b>En cas de manquements répétés aux engagements demandés, le statut de tiers de confiance sera révoqué ainsi que les droits d’accès associés.</b></p>
<p>Les actions concrètes prévues par la présente charte sont les suivantes :</p>
<ul>
<li>
Former la commune à l’utilisation d’un outil de gestion des adresses (tel que l’éditeur en ligne mes-adresses.data.gouv.fr, ou tout autre outil équivalent) ;
</li>
<li>
Informer la commune de l’importance de tenir à jour sa Base Adresse Locale selon les modalités prévues par la loi et l’aider à mettre en place des processus ou routines ;
</li>
<li>
Promouvoir les bonnes pratiques d’adressage telles que préconisées sur le site adresse-data.gouv.fr, conformes à l’adressage légal (loi 3DS : « dénomination des voies et lieux-dits, y compris les voies privées ouvertes à la circulation »).
</li>
</ul>
<p>
Dans le cas où l’organisme se dote d’un outil mutualisé pour la gestion des adresses, il veillera :
</p>
<ul>
<li>
À ce que cet outil soit en mesure d’importer et d’exporter les données au format BAL 1.3 ;
</li>
<li>
À s’interfacer, pour les données produites via l’outil, avec l’un des dispositifs officiels de remontée des Bases Adresses Locales au niveau national : l’API de dépôt ou le moissonneur ;
</li>
<li>
À transmettre ces données dès que possible après le porter à connaissance de la mise à jour des adresses d’une commune, et au plus tard au bout de 7 jours ;
</li>
<li>
À veiller à ce que la commune reste au centre de la gestion des adresses, et puisse procéder à la certification ;
</li>
<li>
À garantir l’autonomie de la commune quant au choix de son outil de gestion et à sa réversibilité.
</li>
</ul>
<p>
Dans le cas où l’organisme met en place des formations ou un accompagnement, et si des prestations tarifées sont proposées par un partenaire de l’organisme tiers de confiance, ce dernier devra garantir une concurrence non faussée et permettre à d’autres acteurs économiques de proposer leurs services de façon équitable.
</p>
<p>
Par ailleurs, l’organisme s’engage :
</p>
<ul>
<li>
À promouvoir la Base Adresse Nationale comme base de données de référence pour les adresses en France ;
</li>
<li>
À utiliser la Base Adresse Nationale dans ses outils et services ;
</li>
<li>
À ne pas introduire de traitements intermédiaires entre les communes autonomes et l’échelon national ;
</li>
<li>
À communiquer l’URL du point d’accès national de la Base Adresse Nationale lors qu’un partenaire demande des données adresses. Il doit en effet s’abstenir de diffuser lui-même une donnée qui pourrait être datée ou non validée par la Base Adresse Nationale. En effet, le service public de la donnée garantit que les réutilisateurs disposent tous de la même base, à jour.
</li>
</ul>
<h2>Les organismes partenaires</h2>
<p>Ces organismes s’engagent à respecter le format Base Adresse Locale (attention, il s’agit d’un format de données bien précis), sa gouvernance et pour ces raisons sont identifiés comme tiers de confiance. Votre organisme respecte déjà ces spécifications mais n’est pas identifié ? Vous pouvez rejoindre les partenaires de la Charte en nous contactant.</p>
<Button
iconId="fr-icon-questionnaire-line"
iconPosition="right"
// onClick={() => {}}
priority="secondary"
style={{ marginBottom: '1rem' }}
>
Rejoignez-nous
</Button>
<SearchPartenaire
searchBy="name"
services={services}
initialPartenaires={initialPartenaires}
departements={departements}
filter={{ type: PartenaireDeLaCharteTypeEnum.ORGANISME }}
renderInfos={renderInfos}
/>
</Section>
)
}
78 changes: 78 additions & 0 deletions src/app/communaute/societes-partenaires/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
import SearchPartenaire from '@/components/PartenairesDeLaCharte/SearchPartenaire'
import Section from '@/components/Section'
import { getPartenairesDeLaCharte, getPartenairesDeLaCharteServices, PaginatedPartenairesDeLaCharte } from '@/lib/api-bal-admin'
import { getDepartements } from '@/lib/api-geo'
import { PartenaireDeLaCharteTypeEnum } from '@/types/partenaire.types'
import { displayWithPlural } from '@/utils/string'
import Button from '@codegouvfr/react-dsfr/Button'

export default async function SocietesPartenairesPage() {
const services = await getPartenairesDeLaCharteServices()
const initialPartenaires = await getPartenairesDeLaCharte({
type: PartenaireDeLaCharteTypeEnum.ENTREPRISE,
})
const departements = await getDepartements()

async function renderInfos(paginatedPartenaires: PaginatedPartenairesDeLaCharte) {
'use server'
return <p>{displayWithPlural(paginatedPartenaires.totalEntreprises, 'entreprise')}</p>
}

return (
<Section pageTitle="Sociétés partenaires de la Charte">
<p><b>Organisations d’accompagnement à but lucratif</b></p>
<p>La loi du 21 février 2022, dite loi &quot;3DS&quot;, réaffirme la compétence de la commune en matière d’adressage. Elle doit procéder à la dénomination des voies, des lieux-dits et à la numérotation des constructions, mais aussi transmettre les données associées à la Base Adresse Nationale. Compte-tenu de la grande diversité des territoires et de l’investissement que cette tâche peut occasionner au démarrage, il peut être pertinent de proposer un accompagnement aux communes, à l’échelle locale. La présente charte s’adresse aux acteurs qui souhaitent proposer cet accompagnement. Son adoption leur permet d’être référencés comme tiers de confiance sur le site national de l’adresse adresse.data.gouv.fr.</p>
<p><b>En cas de manquements répétés aux engagements demandés, le statut de tiers de confiance sera révoqué ainsi que les droits d’accès associés.</b></p>
<p>Dans le cas où l’organisation réalise sa prestation sur l’éditeur national Mes Adresses, elle veillera :</p>
<ul>
<li>
À ce que la commune soit administratrice, certifie ses adresses et assure la publication de sa Base Adresse Locale;
</li>
</ul>
<p>Dans le cas où l’organisation utilise son propre outil pour la gestion des adresses, elle veillera :</p>
<ul>
<li>
À ce que cet outil soit en mesure d’importer et d’exporter les données au format BAL1.3;
</li>
<li>
À communiquer à la commune un fichier BAL.csv qu’elle publiera par formulaire ou dépôt sur data.gouv.fr en authentifiant;
</li>
<li>
À transmettre ces données dès que possible après le porter à connaissance de la mise à jour des adresses d’une commune;
</li>
<li>
À veiller à ce que la commune reste au centre de la gestion des adresses, et puisse procéder à la certification;
</li>
</ul>
<p>Par ailleurs, l’organisme s’engage :</p>
<ul>
<li>
À promouvoir les bonnes pratiques d’adressage telles que préconisées sur le site adresse-data.gouv.fr, conformes à l’adressage légal (loi 3DS : « dénomination des voies et lieux-dits, y compris les voies privées ouvertes à la circulation »)
</li>
<li>
À respecter le format d’adresse enrichi Base Adresse Locale et non une norme d’adresse commerciale ;
</li>
</ul>
<h2>Les sociétés partenaires</h2>
<p>Ces organismes s’engagent à respecter le format Base Adresse Locale (attention, il s’agit d’un format de données bien précis), sa gouvernance et pour ces raisons sont identifiés comme tiers de confiance. Votre organisme respecte déjà ces spécifications mais n’est pas identifié ? Vous pouvez rejoindre les partenaires de la Charte en nous contactant.</p>
<Button
iconId="fr-icon-questionnaire-line"
iconPosition="right"
// onClick={() => {}}
priority="secondary"
style={{ marginBottom: '1rem' }}
>
Rejoignez-nous
</Button>
<SearchPartenaire
searchBy="name"
services={services}
initialPartenaires={initialPartenaires}
departements={departements}
filter={{ type: PartenaireDeLaCharteTypeEnum.ENTREPRISE }}
renderInfos={renderInfos}
/>

</Section>
)
}
Loading

0 comments on commit c16e23d

Please sign in to comment.