territories-dashboard-lib 0.1.8__py3-none-any.whl → 0.1.10__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of territories-dashboard-lib might be problematic. Click here for more details.

@@ -0,0 +1,134 @@
1
+ Metadata-Version: 2.4
2
+ Name: territories-dashboard-lib
3
+ Version: 0.1.10
4
+ Summary: Librairie pour la visualisation d'indicateurs territoriaux.
5
+ Author-email: Bastien <bastien@prune.sh>
6
+ Classifier: Programming Language :: Python :: 3
7
+ Classifier: Operating System :: OS Independent
8
+ Classifier: Development Status :: 3 - Alpha
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: Topic :: Software Development :: Libraries
11
+ Requires-Python: >=3.13
12
+ Description-Content-Type: text/markdown
13
+ License-File: licence.md
14
+ Dynamic: license-file
15
+
16
+ # Tableau de bord des indicateurs territoriaux
17
+
18
+ ## Présentation
19
+
20
+ Bienvenue dans ce projet visant à faciliter la création de tableaux de bord territoriaux interactifs à partir de données d’indicateurs. Ce dispositif est composé de deux briques complémentaires :
21
+
22
+ ### 1. `territories_dashboard_lib`
23
+
24
+ Une **librairie Django** réutilisable, contenant des applications modulaires pour afficher rapidement un tableau de bord d'indicateurs territoriaux. Elle permet d’analyser des données à différentes mailles géographiques : nationale, régionale, départementale, et communale.
25
+ Elle comprend des fonctionnalités prêtes à l'emploi pour visualiser des données sur des thématiques comme la **mobilité durable**, la **rénovation énergétique** ou d'autres indicateurs liés au développement territorial.
26
+
27
+ ### 2. `territories_dashboard_template`
28
+
29
+ Un **template de projet Django clef en main**, conçu pour permettre à des équipes techniques de démarrer rapidement leur propre tableau de bord. Ce template utilise la librairie `territories_dashboard_lib` comme fondation.
30
+ Les utilisateurs peuvent cloner ce dépôt, l’adapter à leurs besoins, et configurer leur tableau de bord directement depuis l’interface d’administration (titre, organisme, pages de contenu statique, indicateurs à afficher...).
31
+
32
+ Le template constitue un **point de départ standard**, mais n’impose aucune restriction technique en dehors du choix de Django comme framework. Les développeurs sont libres d'étendre ou de modifier les composants selon leurs besoins.
33
+
34
+ ### Prérequis
35
+
36
+ Pour utiliser la librairie ou le template, vous devez disposer de :
37
+
38
+ - Une base de données PostgreSQL contenant les données des indicateurs territoriaux.
39
+ - Une capacité à déployer une application Django (hébergement, serveur web, etc.).
40
+
41
+ Pour obtenir des informations détaillées sur les prérequis techniques ou les données :
42
+
43
+ - **Marina Ribeiro** – Directrice de projet Mission Connaissance
44
+ marina.ribeiro@developpement-durable.gouv.fr
45
+ - **Louise Columelli** – ECOLAB
46
+ louise.columelli@developpement-durable.gouv.fr
47
+ - **Olivier Rousseau** – Expert données
48
+ olivier.rousseau@i-carre.net
49
+ - **Bastien** – Développeur web
50
+ bastien@prune.sh
51
+
52
+ ### Exemples de projets utilisant ce dispositif
53
+
54
+ - [Tableau de bord des mobilités durables](https://mobilite-durable-tdb.din.developpement-durable.gouv.fr)
55
+ - [Boussole énergétique de la rénovation des logements](https://boussole-renovation.din.developpement-durable.gouv.fr)
56
+
57
+ L’objectif de ce projet est d’**encourager la réutilisation** et l’**essaimage** de nouveaux tableaux de bord territoriaux, en mettant à disposition un socle technique commun, facilement adaptable et extensible.
58
+
59
+ ## Structure de la librairie
60
+
61
+ La librairie est composée de plusieurs **applications Django** indépendantes et complémentaires :
62
+
63
+ ### `website_lib`
64
+
65
+ Contient le code principal d’affichage des pages du tableau de bord :
66
+
67
+ - **Templates HTML Django** : dans `website_lib/templates`, organisés par page.
68
+ - **Fichiers statiques** (JS, CSS) : dans `website_lib/static`. Le JS est modulaire grâce à l’extension `.mjs`.
69
+ - **Vues Django** : dans `website_lib/views`, associées aux templates et fichiers statiques.
70
+
71
+ ### `tracking_lib`
72
+
73
+ Gère le **tracking backend** : enregistrement en base de données des visites de pages, avec leurs paramètres (indicateur sélectionné, territoire, etc.) pour permettre des analyses d’usage.
74
+
75
+ ### `superset_lib`
76
+
77
+ Permet d’**intégrer des dashboards Superset** dans les pages du site.
78
+ Superset est un outil permettant à des utilisateurs non techniques de construire des visualisations depuis une base de données.
79
+
80
+ ### `geo_lib`
81
+
82
+ Permet d’**ajouter des couches géographiques** personnalisées (points, lignes, polygones) à la carte :
83
+
84
+ - Points : ex. stationnements vélo.
85
+ - Lignes : ex. pistes cyclables.
86
+ - Polygones : ex. zones ZFE.
87
+
88
+ ### `indicators_lib`
89
+
90
+ Contient le code pour l’accès et la requête des **données d’indicateurs** dans la base PostgreSQL dédiée.
91
+
92
+ ### Composants React
93
+
94
+ Certaines visualisations complexes sont développées en **React** (ex. cartes interactives, diagrammes de Sankey).
95
+
96
+ - Les composants sont dans `website_lib/react-components/`.
97
+ - Le bundling est effectué via **Webpack**
98
+ - Les composants React sont ensuite inclus dans les templates Django.
99
+ - `cd website_lib/react-components && npm install && npm run webpack`
100
+
101
+ ## Installation
102
+
103
+ La librairie est publiée sur PyPI. Elle s’installe dans un projet Django via le package manager uv :
104
+
105
+ `uv add territories_dashboard_lib`
106
+
107
+ ### Figer la version en production
108
+
109
+ Pour éviter les mises à jour inattendues, il est conseillé de figer la version dans le fichier pyproject.toml :
110
+
111
+ ```
112
+ # Par exemple :
113
+ territories_dashboard_lib == 1.0.3
114
+ ```
115
+
116
+ ### Développement local
117
+
118
+ Pour tester une version locale de la librairie (ex : modifications en cours) :
119
+
120
+ `uv add --editable ~/territories-dashboard/territories-dashboard-lib`
121
+
122
+ ## Publication PyPI
123
+
124
+ Pour builder la librairie avant publication :
125
+
126
+ `uv run python -m build`
127
+
128
+ Pour déployer sur PyPI, vous devez :
129
+
130
+ 1. Avoir un compte PyPI.
131
+
132
+ 2. Être membre du projet sur PyPI.
133
+
134
+ 3. Lancer : `uv run twine upload dist/*`
@@ -52,7 +52,7 @@ territories_dashboard_lib/tracking_lib/views.py,sha256=8K1q9LfpU1ygO3CFQSPN5_gLI
52
52
  territories_dashboard_lib/tracking_lib/migrations/0001_initial.py,sha256=eH6eegaxN6LuSerZ80_N8iXixF6-YKw79nqmIPimXPY,3494
53
53
  territories_dashboard_lib/tracking_lib/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
54
54
  territories_dashboard_lib/website_lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
- territories_dashboard_lib/website_lib/admin.py,sha256=TUDxtX3O-ga33jvSowX6HMBHxdqprM9-nSFmsZ2m6Bk,876
55
+ territories_dashboard_lib/website_lib/admin.py,sha256=jq0KgN8CPVqJQ1IMq8kaoWqqxzpPDyW0z7cTatmrmi0,952
56
56
  territories_dashboard_lib/website_lib/context_processors.py,sha256=Xq9W_w86Oh242VSGAjScHlgpnXuNcnNt3kSRIqK-ETc,863
57
57
  territories_dashboard_lib/website_lib/forms.py,sha256=BNbHx6CgMlA33z6eD-1VaI7AkyO20ZsloJKsec4BcoU,1146
58
58
  territories_dashboard_lib/website_lib/models.py,sha256=y5L7MtONhA9oev5UI6rBejHexLo7r1v_XyxB8h2OEs4,5356
@@ -100,7 +100,7 @@ territories_dashboard_lib/website_lib/static/territories_dashboard_lib/website/j
100
100
  territories_dashboard_lib/website_lib/static/territories_dashboard_lib/website/js/pages/indicators/theme/page.mjs,sha256=7ywtvtPqoMXKWpjPX8Ky9YW7L076qWyB9CW6J6Q7QRk,5303
101
101
  territories_dashboard_lib/website_lib/static/territories_dashboard_lib/website/js/pages/indicators/theme/statistics.mjs,sha256=4-wSSF3XY0LDG3goGL-FctKbrG0p-nXCH3hUQ5VOYSs,1465
102
102
  territories_dashboard_lib/website_lib/static/territories_dashboard_lib/website/js/pages/static/page.mjs,sha256=9KE9xNn3xRZAFiQ2hhRrlfQfFmm1i5wot8zG1fGxTTs,1135
103
- territories_dashboard_lib/website_lib/static/territories_dashboard_lib/website/react/indicatorMap.bundle.js,sha256=tCGHA5LPNq9eW8LxPfhqAy7OK_nLWKVRskNeksVvuqA,2271971
103
+ territories_dashboard_lib/website_lib/static/territories_dashboard_lib/website/react/indicatorMap.bundle.js,sha256=zeFW57K3fLlBugBE6hE23M3h3YIBJq6-JejSo5w2OqU,2271966
104
104
  territories_dashboard_lib/website_lib/static/territories_dashboard_lib/website/react/sankeyGraph.bundle.js,sha256=egXjxScEoRwYenFT-XUSyAfC-V5g1D_0man6V08rh_k,564207
105
105
  territories_dashboard_lib/website_lib/static/territories_dashboard_lib/website/react/vendors-node_modules_mapbox-gl_dist_mapbox-gl_js.bundle.js,sha256=wNGgkhyCOb1CJOO3oZoy0kOxE8Xu3Jn2kMGUgDBt-Xc,1504349
106
106
  territories_dashboard_lib/website_lib/templates/admin/indicators_lib/indicator/change_form.html,sha256=RIsKg_vDjr1niJh-Ztp4I88VlRR0XrVLXBYmEAdMc68,190
@@ -148,7 +148,8 @@ territories_dashboard_lib/website_lib/templates/territories_dashboard_lib/websit
148
148
  territories_dashboard_lib/website_lib/templates/territories_dashboard_lib/website/svg/delete-back.svg,sha256=fJPjkZT2jdTcW2nmwr7YtBayOmQKOxiGNyO8bM8jP2U,618
149
149
  territories_dashboard_lib/website_lib/templatetags/htmlparams.py,sha256=jWXlmT-nFh7YefVP_zJSXEA1YgT37wnWqelPhmj7UoM,2092
150
150
  territories_dashboard_lib/website_lib/templatetags/other_filters.py,sha256=EEczSQi8lJZ_rfceuXQz3iF1SIxh5d-3-liTY8lkKtU,944
151
- territories_dashboard_lib-0.1.8.dist-info/METADATA,sha256=DFjaJemHdWuk2eMLC7M4UdBjKOsHUEdjliUh7u0KqRY,14212
152
- territories_dashboard_lib-0.1.8.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
153
- territories_dashboard_lib-0.1.8.dist-info/top_level.txt,sha256=Cih-lil8CSXTpDZV6fgHKIKIBtUjDaNpmkiuW2TSzsk,26
154
- territories_dashboard_lib-0.1.8.dist-info/RECORD,,
151
+ territories_dashboard_lib-0.1.10.dist-info/licenses/licence.md,sha256=9Tat8mM_Yyww-wmWps8avlOhzumqEUGYy8853tKy7aE,7804
152
+ territories_dashboard_lib-0.1.10.dist-info/METADATA,sha256=74F9zN7-hCjMvTfKvYBFA_digN-CRcjucKXRhmzI0RA,5821
153
+ territories_dashboard_lib-0.1.10.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
154
+ territories_dashboard_lib-0.1.10.dist-info/top_level.txt,sha256=Cih-lil8CSXTpDZV6fgHKIKIBtUjDaNpmkiuW2TSzsk,26
155
+ territories_dashboard_lib-0.1.10.dist-info/RECORD,,
@@ -0,0 +1,72 @@
1
+ LICENCE OUVERTE 2.0/OPEN LICENCE 2.0
2
+ Réutilisation de l’« Information » sous cette licence
3
+
4
+ Le « Concédant » concède au « Réutilisateur » un droit non exclusif et gratuit de libre « Réutilisation » de l’« Information » objet de la présente licence, à des fins commerciales ou non, dans le monde entier et pour une durée illimitée, dans les conditions exprimées ci-dessous.
5
+
6
+ Le « Réutilisateur » est libre de réutiliser l’« Information » :
7
+
8
+ de la communiquer, la reproduire, la copier ;
9
+ de l’adapter, la modifier, l’extraire et la transformer, notamment pour créer des « Informations dérivées » ;
10
+ de la diffuser, la redistribuer, la publier et la transmettre, de l’exploiter à titre commercial, par exemple en la combinant avec d’autres informations, ou en l’incluant dans votre propre produit ou application.
11
+
12
+ Sous réserve de :
13
+
14
+ mentionner la paternité de l’«Information» : sa source (a minima le nom du « Concédant ») et la date de la dernière mise à jour de l’« Information » réutilisée.
15
+
16
+ Le « Réutilisateur » peut notamment s’ acquitter de cette condition en indiquant l’adresse (URL) renvoyant vers « l’Information » et assurant une mention effective de sa paternité.
17
+
18
+ Par exemple :
19
+
20
+ Dans le cas d’une réutilisation de la base SIRENE de l’INSEE, mentionner l’URL du « Concédant » : www.insee.fr + la date de dernière mise à jour de l’Information réutilisée.
21
+
22
+ Cette mention de paternité ne doit ni conférer un caractère officiel à la « Réutilisation » de l’« Information », ni suggérer une quelconque reconnaissance ou caution par le « Concédant », ou par toute autre entité publique, du « Réutilisateur » ou de sa « Réutilisation ».
23
+ Données à caractère personnel
24
+
25
+ L’« Information » mise à disposition peut contenir des « Données à caractère personnel » pouvant faire l’objet d’une « Réutilisation ». Alors, le « Concédant » informe le « Réutilisateur » (par tous moyens) de leur présence, l’ « Information » peut être librement réutilisée, sans faire obstacle aux libertés accordées par la présente licence, à condition de respecter le cadre légal relatif à la protection des données à caractère personnel.
26
+ Droits de propriété intellectuelle
27
+
28
+ Il est garanti au « Réutilisateur » que l’ « Information » ne contient pas de « Droits de propriété intellectuelle » appartenant à des tiers qui pourraient faire obstacle aux libertés qui lui sont accordées par la présente licence.
29
+
30
+ Les éventuels « Droits de propriété intellectuelle » détenus par le « Concédant » sur l’ « Information » ne font pas obstacle aux libertés qui sont accordées par la présente licence. Lorsque le « Concédant » détient des « Droits de propriété intellectuelle » » sur l’ « Information », il les cède au « Réutilisateur » de façon non exclusive, à titre gracieux, pour le monde entier, pour toute la durée des « Droits de propriété intellectuelle », et le « Réutilisateur » peut en faire tout usage conformément aux libertés et aux conditions définies par la présente licence.
31
+ Responsabilité
32
+
33
+ L’ «Information» est mise à disposition telle que produite ou reçue, sans autre garantie expresse ou tacite qui n’est pas prévue par la présente licence. L’absence de défauts ou d’erreurs éventuellement contenues dans l’ «Information», comme la fourniture continue de l’ « Information » n’est pas garantie par le «Concédant». Il ne peut être tenu pour responsable de toute perte, préjudice ou dommage de quelque sorte causé à des tiers du fait de la « Réutilisation ».
34
+
35
+ Le « Réutilisateur » est seul responsable de la « Réutilisation » de l’« Information ».
36
+
37
+ La « Réutilisation » ne doit pas induire en erreur des tiers quant au contenu de l’« Information », sa source et sa date de mise à jour.
38
+ Droit applicable
39
+
40
+ La présente licence est régie par le droit français.
41
+ Compatibilité de la présente licence
42
+
43
+ Elle a été conçue pour être compatible avec toute licence libre qui exige a minima la mention de paternité. Elle est notamment compatible avec la version antérieure de la présente licence ainsi qu’avec les licences « Open Government Licence » (OGL) du Royaume-Uni, « Creative Commons Attribution » (CC-BY) de Creative Commons et « Open Data Commons Attribution » (ODC-BY) de l’Open Knowledge Foundation.
44
+ Définitions
45
+
46
+ Sont considérés, au sens de la présente licence comme :
47
+
48
+ Le « Concédant » : toute personne concédant un droit de « Réutilisation » sur l’« Information » dans les libertés et les conditions prévues par la présente licence.
49
+ L’« Information » :
50
+ toute information publique figurant dans des documents communiqués ou publiés par une administration mentionnée au premier alinéa de l’article L.300-2 du CRPA ;
51
+ toute information mise à disposition par toute personne selon les termes et conditions de la présente licence.
52
+ La « Réutilisation » : l’utilisation de l’« Information » à d’autres fins que celles pour lesquelles elle a été produite ou reçue.
53
+ Le « Réutilisateur » : toute personne qui réutilise les « Informations » conformément aux conditions de la présente licence.
54
+ Des « Données à caractère personnel » : toute information se rapportant à une personne physique identifiée ou identifiable, pouvant être identifiée directement ou indirectement. Leur « Réutilisation » est subordonnée au respect du cadre juridique en vigueur.
55
+ Une « Information dérivée » : toute nouvelle donnée ou information créées directement à partir de l’« Information » ou à partir d’une combinaison de l’ « Information » et d’autres données ou informations non soumises à cette licence.
56
+ Les « Droits de propriété intellectuelle » : tous droits identifiés comme tels par le Code de la propriété intellectuelle (droit d’auteur, droits voisins au droit d’auteur, droit sui generis des producteurs de bases de données).
57
+
58
+ À propos de cette licence
59
+
60
+ La présente licence a vocation à être utilisée par les administrations pour la réutilisation de leurs informations publiques. Elle peut également être utilisée par toute personne souhaitant mettre à disposition de l’« Information » dans les conditions définies par la présente licence.
61
+
62
+ La France est dotée d’un cadre juridique global visant à une diffusion spontanée par les administrations de leurs informations publiques afin d’en permettre la plus large réutilisation.
63
+
64
+ Le droit de la « Réutilisation » de l’« Information » des administrations est régi par le code des relations entre le public et l’administration (CRPA) et, le cas échéant, le code du patrimoine (livre II relatif aux archives).
65
+
66
+ Cette licence facilite la réutilisation libre et gratuite des informations publiques et figure parmi les licences qui peuvent être utilisées par l’administration en vertu du décret pris en application de l’article L.323-2 du CRPA.
67
+
68
+ Etalab est la mission chargée, sous l’autorité du Premier ministre, d’ouvrir le plus grand nombre de données publiques des administrations de l’État et de ses établissements publics. Elle a réalisé la Licence Ouverte pour faciliter la réutilisation libre et gratuite de ces informations publiques, telles que définies par l’article L321-1 du CRPA.
69
+
70
+ Cette licence est une version 2.0 de la Licence Ouverte.
71
+
72
+ Etalab se réserve la faculté de proposer de nouvelles versions de la Licence Ouverte. Cependant, les « Réutilisateurs » pourront continuer à réutiliser les informations disponibles sous cette licence s’ils le souhaitent.
@@ -1,206 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: territories-dashboard-lib
3
- Version: 0.1.8
4
- Summary: Librairie pour la visualisation d'indicateurs territoriaux.
5
- Author-email: Bastien <bastien@prune.sh>
6
- License: LICENCE OUVERTE 2.0/OPEN LICENCE 2.0
7
- Réutilisation de l’« Information » sous cette licence
8
-
9
- Le « Concédant » concède au « Réutilisateur » un droit non exclusif et gratuit de libre « Réutilisation » de l’« Information » objet de la présente licence, à des fins commerciales ou non, dans le monde entier et pour une durée illimitée, dans les conditions exprimées ci-dessous.
10
-
11
- Le « Réutilisateur » est libre de réutiliser l’« Information » :
12
-
13
- de la communiquer, la reproduire, la copier ;
14
- de l’adapter, la modifier, l’extraire et la transformer, notamment pour créer des « Informations dérivées » ;
15
- de la diffuser, la redistribuer, la publier et la transmettre, de l’exploiter à titre commercial, par exemple en la combinant avec d’autres informations, ou en l’incluant dans votre propre produit ou application.
16
-
17
- Sous réserve de :
18
-
19
- mentionner la paternité de l’«Information» : sa source (a minima le nom du « Concédant ») et la date de la dernière mise à jour de l’« Information » réutilisée.
20
-
21
- Le « Réutilisateur » peut notamment s’ acquitter de cette condition en indiquant l’adresse (URL) renvoyant vers « l’Information » et assurant une mention effective de sa paternité.
22
-
23
- Par exemple :
24
-
25
- Dans le cas d’une réutilisation de la base SIRENE de l’INSEE, mentionner l’URL du « Concédant » : www.insee.fr + la date de dernière mise à jour de l’Information réutilisée.
26
-
27
- Cette mention de paternité ne doit ni conférer un caractère officiel à la « Réutilisation » de l’« Information », ni suggérer une quelconque reconnaissance ou caution par le « Concédant », ou par toute autre entité publique, du « Réutilisateur » ou de sa « Réutilisation ».
28
- Données à caractère personnel
29
-
30
- L’« Information » mise à disposition peut contenir des « Données à caractère personnel » pouvant faire l’objet d’une « Réutilisation ». Alors, le « Concédant » informe le « Réutilisateur » (par tous moyens) de leur présence, l’ « Information » peut être librement réutilisée, sans faire obstacle aux libertés accordées par la présente licence, à condition de respecter le cadre légal relatif à la protection des données à caractère personnel.
31
- Droits de propriété intellectuelle
32
-
33
- Il est garanti au « Réutilisateur » que l’ « Information » ne contient pas de « Droits de propriété intellectuelle » appartenant à des tiers qui pourraient faire obstacle aux libertés qui lui sont accordées par la présente licence.
34
-
35
- Les éventuels « Droits de propriété intellectuelle » détenus par le « Concédant » sur l’ « Information » ne font pas obstacle aux libertés qui sont accordées par la présente licence. Lorsque le « Concédant » détient des « Droits de propriété intellectuelle » » sur l’ « Information », il les cède au « Réutilisateur » de façon non exclusive, à titre gracieux, pour le monde entier, pour toute la durée des « Droits de propriété intellectuelle », et le « Réutilisateur » peut en faire tout usage conformément aux libertés et aux conditions définies par la présente licence.
36
- Responsabilité
37
-
38
- L’ «Information» est mise à disposition telle que produite ou reçue, sans autre garantie expresse ou tacite qui n’est pas prévue par la présente licence. L’absence de défauts ou d’erreurs éventuellement contenues dans l’ «Information», comme la fourniture continue de l’ « Information » n’est pas garantie par le «Concédant». Il ne peut être tenu pour responsable de toute perte, préjudice ou dommage de quelque sorte causé à des tiers du fait de la « Réutilisation ».
39
-
40
- Le « Réutilisateur » est seul responsable de la « Réutilisation » de l’« Information ».
41
-
42
- La « Réutilisation » ne doit pas induire en erreur des tiers quant au contenu de l’« Information », sa source et sa date de mise à jour.
43
- Droit applicable
44
-
45
- La présente licence est régie par le droit français.
46
- Compatibilité de la présente licence
47
-
48
- Elle a été conçue pour être compatible avec toute licence libre qui exige a minima la mention de paternité. Elle est notamment compatible avec la version antérieure de la présente licence ainsi qu’avec les licences « Open Government Licence » (OGL) du Royaume-Uni, « Creative Commons Attribution » (CC-BY) de Creative Commons et « Open Data Commons Attribution » (ODC-BY) de l’Open Knowledge Foundation.
49
- Définitions
50
-
51
- Sont considérés, au sens de la présente licence comme :
52
-
53
- Le « Concédant » : toute personne concédant un droit de « Réutilisation » sur l’« Information » dans les libertés et les conditions prévues par la présente licence.
54
- L’« Information » :
55
- toute information publique figurant dans des documents communiqués ou publiés par une administration mentionnée au premier alinéa de l’article L.300-2 du CRPA ;
56
- toute information mise à disposition par toute personne selon les termes et conditions de la présente licence.
57
- La « Réutilisation » : l’utilisation de l’« Information » à d’autres fins que celles pour lesquelles elle a été produite ou reçue.
58
- Le « Réutilisateur » : toute personne qui réutilise les « Informations » conformément aux conditions de la présente licence.
59
- Des « Données à caractère personnel » : toute information se rapportant à une personne physique identifiée ou identifiable, pouvant être identifiée directement ou indirectement. Leur « Réutilisation » est subordonnée au respect du cadre juridique en vigueur.
60
- Une « Information dérivée » : toute nouvelle donnée ou information créées directement à partir de l’« Information » ou à partir d’une combinaison de l’ « Information » et d’autres données ou informations non soumises à cette licence.
61
- Les « Droits de propriété intellectuelle » : tous droits identifiés comme tels par le Code de la propriété intellectuelle (droit d’auteur, droits voisins au droit d’auteur, droit sui generis des producteurs de bases de données).
62
-
63
- À propos de cette licence
64
-
65
- La présente licence a vocation à être utilisée par les administrations pour la réutilisation de leurs informations publiques. Elle peut également être utilisée par toute personne souhaitant mettre à disposition de l’« Information » dans les conditions définies par la présente licence.
66
-
67
- La France est dotée d’un cadre juridique global visant à une diffusion spontanée par les administrations de leurs informations publiques afin d’en permettre la plus large réutilisation.
68
-
69
- Le droit de la « Réutilisation » de l’« Information » des administrations est régi par le code des relations entre le public et l’administration (CRPA) et, le cas échéant, le code du patrimoine (livre II relatif aux archives).
70
-
71
- Cette licence facilite la réutilisation libre et gratuite des informations publiques et figure parmi les licences qui peuvent être utilisées par l’administration en vertu du décret pris en application de l’article L.323-2 du CRPA.
72
-
73
- Etalab est la mission chargée, sous l’autorité du Premier ministre, d’ouvrir le plus grand nombre de données publiques des administrations de l’État et de ses établissements publics. Elle a réalisé la Licence Ouverte pour faciliter la réutilisation libre et gratuite de ces informations publiques, telles que définies par l’article L321-1 du CRPA.
74
-
75
- Cette licence est une version 2.0 de la Licence Ouverte.
76
-
77
- Etalab se réserve la faculté de proposer de nouvelles versions de la Licence Ouverte. Cependant, les « Réutilisateurs » pourront continuer à réutiliser les informations disponibles sous cette licence s’ils le souhaitent.
78
-
79
- Classifier: Programming Language :: Python :: 3
80
- Classifier: Operating System :: OS Independent
81
- Classifier: Development Status :: 3 - Alpha
82
- Classifier: Intended Audience :: Developers
83
- Classifier: Topic :: Software Development :: Libraries
84
- Classifier: License :: Other/Proprietary License
85
- Requires-Python: >=3.13
86
- Description-Content-Type: text/markdown
87
-
88
- # Tableau de bord des indicateurs territoriaux
89
-
90
- ## Présentation
91
-
92
- Bienvenue dans ce projet visant à faciliter la création de tableaux de bord territoriaux interactifs à partir de données d’indicateurs. Ce dispositif est composé de deux briques complémentaires :
93
-
94
- ### 1. `territories_dashboard_lib`
95
-
96
- Une **librairie Django** réutilisable, contenant des applications modulaires pour afficher rapidement un tableau de bord d'indicateurs territoriaux. Elle permet d’analyser des données à différentes mailles géographiques : nationale, régionale, départementale, et communale.
97
- Elle comprend des fonctionnalités prêtes à l'emploi pour visualiser des données sur des thématiques comme la **mobilité durable**, la **rénovation énergétique** ou d'autres indicateurs liés au développement territorial.
98
-
99
- ### 2. `territories_dashboard_template`
100
-
101
- Un **template de projet Django clef en main**, conçu pour permettre à des équipes techniques de démarrer rapidement leur propre tableau de bord. Ce template utilise la librairie `territories_dashboard_lib` comme fondation.
102
- Les utilisateurs peuvent cloner ce dépôt, l’adapter à leurs besoins, et configurer leur tableau de bord directement depuis l’interface d’administration (titre, organisme, pages de contenu statique, indicateurs à afficher...).
103
-
104
- Le template constitue un **point de départ standard**, mais n’impose aucune restriction technique en dehors du choix de Django comme framework. Les développeurs sont libres d'étendre ou de modifier les composants selon leurs besoins.
105
-
106
- ### Prérequis
107
-
108
- Pour utiliser la librairie ou le template, vous devez disposer de :
109
-
110
- - Une base de données PostgreSQL contenant les données des indicateurs territoriaux.
111
- - Une capacité à déployer une application Django (hébergement, serveur web, etc.).
112
-
113
- Pour obtenir des informations détaillées sur les prérequis techniques ou les données :
114
-
115
- - **Marina Ribeiro** – Directrice de projet Mission Connaissance
116
- marina.ribeiro@developpement-durable.gouv.fr
117
- - **Louise Columelli** – ECOLAB
118
- louise.columelli@developpement-durable.gouv.fr
119
- - **Olivier Rousseau** – Expert données
120
- olivier.rousseau@i-carre.net
121
- - **Bastien** – Développeur web
122
- bastien@prune.sh
123
-
124
- ### Exemples de projets utilisant ce dispositif
125
-
126
- - [Tableau de bord des mobilités durables](https://mobilite-durable-tdb.din.developpement-durable.gouv.fr)
127
- - [Boussole énergétique de la rénovation des logements](https://boussole-renovation.din.developpement-durable.gouv.fr)
128
-
129
- L’objectif de ce projet est d’**encourager la réutilisation** et l’**essaimage** de nouveaux tableaux de bord territoriaux, en mettant à disposition un socle technique commun, facilement adaptable et extensible.
130
-
131
- ## Structure de la librairie
132
-
133
- La librairie est composée de plusieurs **applications Django** indépendantes et complémentaires :
134
-
135
- ### `website_lib`
136
-
137
- Contient le code principal d’affichage des pages du tableau de bord :
138
-
139
- - **Templates HTML Django** : dans `website_lib/templates`, organisés par page.
140
- - **Fichiers statiques** (JS, CSS) : dans `website_lib/static`. Le JS est modulaire grâce à l’extension `.mjs`.
141
- - **Vues Django** : dans `website_lib/views`, associées aux templates et fichiers statiques.
142
-
143
- ### `tracking_lib`
144
-
145
- Gère le **tracking backend** : enregistrement en base de données des visites de pages, avec leurs paramètres (indicateur sélectionné, territoire, etc.) pour permettre des analyses d’usage.
146
-
147
- ### `superset_lib`
148
-
149
- Permet d’**intégrer des dashboards Superset** dans les pages du site.
150
- Superset est un outil permettant à des utilisateurs non techniques de construire des visualisations depuis une base de données.
151
-
152
- ### `geo_lib`
153
-
154
- Permet d’**ajouter des couches géographiques** personnalisées (points, lignes, polygones) à la carte :
155
-
156
- - Points : ex. stationnements vélo.
157
- - Lignes : ex. pistes cyclables.
158
- - Polygones : ex. zones ZFE.
159
-
160
- ### `indicators_lib`
161
-
162
- Contient le code pour l’accès et la requête des **données d’indicateurs** dans la base PostgreSQL dédiée.
163
-
164
- ### Composants React
165
-
166
- Certaines visualisations complexes sont développées en **React** (ex. cartes interactives, diagrammes de Sankey).
167
-
168
- - Les composants sont dans `website_lib/react-components/`.
169
- - Le bundling est effectué via **Webpack**
170
- - Les composants React sont ensuite inclus dans les templates Django.
171
- - `cd website_lib/react-components && npm install && npm run webpack`
172
-
173
- ## Installation
174
-
175
- La librairie est publiée sur PyPI. Elle s’installe dans un projet Django via le package manager uv :
176
-
177
- `uv add territories_dashboard_lib`
178
-
179
- ### Figer la version en production
180
-
181
- Pour éviter les mises à jour inattendues, il est conseillé de figer la version dans le fichier pyproject.toml :
182
-
183
- ```
184
- # Par exemple :
185
- territories_dashboard_lib == 1.0.3
186
- ```
187
-
188
- ### Développement local
189
-
190
- Pour tester une version locale de la librairie (ex : modifications en cours) :
191
-
192
- `uv add --editable ~/territories-dashboard/territories-dashboard-lib`
193
-
194
- ## Publication PyPI
195
-
196
- Pour builder la librairie avant publication :
197
-
198
- `uv run python -m build`
199
-
200
- Pour déployer sur PyPI, vous devez :
201
-
202
- 1. Avoir un compte PyPI.
203
-
204
- 2. Être membre du projet sur PyPI.
205
-
206
- 3. Lancer : `uv run twine upload dist/*`