rer.linkmap 1.0.1__tar.gz → 1.0.2__tar.gz

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.
Files changed (98) hide show
  1. rer_linkmap-1.0.2/CHANGELOG.md +13 -0
  2. rer_linkmap-1.0.2/PKG-INFO +196 -0
  3. rer_linkmap-1.0.2/README.md +149 -0
  4. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/pyproject.toml +4 -2
  5. rer_linkmap-1.0.2/setup.cfg +3 -0
  6. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/setup.py +3 -1
  7. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/__init__.py +1 -1
  8. rer_linkmap-1.0.1/CHANGELOG.md +0 -7
  9. rer_linkmap-1.0.1/PKG-INFO +0 -61
  10. rer_linkmap-1.0.1/README.md +0 -16
  11. rer_linkmap-1.0.1/setup.cfg +0 -3
  12. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/.editorconfig +0 -0
  13. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/.flake8 +0 -0
  14. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/.gitignore +0 -0
  15. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/CONTRIBUTORS.md +0 -0
  16. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/LICENSE.GPL +0 -0
  17. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/LICENSE.md +0 -0
  18. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/MANIFEST.in +0 -0
  19. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/Makefile +0 -0
  20. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/bobtemplate.cfg +0 -0
  21. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/.gitignore +0 -0
  22. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/.readthedocs.yaml +0 -0
  23. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/.vale.ini +0 -0
  24. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/LICENSE.md +0 -0
  25. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/Makefile +0 -0
  26. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/README.md +0 -0
  27. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/docs/_static/favicon.ico +0 -0
  28. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/docs/_static/logo.svg +0 -0
  29. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/docs/_templates/404.html +0 -0
  30. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/docs/concepts/index.md +0 -0
  31. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/docs/conf.py +0 -0
  32. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/docs/glossary.md +0 -0
  33. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/docs/how-to-guides/index.md +0 -0
  34. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/docs/index.md +0 -0
  35. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/docs/reference/index.md +0 -0
  36. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/docs/robots.txt +0 -0
  37. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/docs/tutorials/index.md +0 -0
  38. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/pyproject.toml +0 -0
  39. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/styles/config/vocabularies/Base/accept.txt +0 -0
  40. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/styles/config/vocabularies/Base/reject.txt +0 -0
  41. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/styles/config/vocabularies/Plone/accept.txt +0 -0
  42. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/styles/config/vocabularies/Plone/reject.txt +0 -0
  43. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/instance.yaml +0 -0
  44. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/mx.ini +0 -0
  45. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/news/.changelog_template.jinja +0 -0
  46. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/news/.gitkeep +0 -0
  47. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/news/1.feature.md +0 -0
  48. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/publiccode.yml +0 -0
  49. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/scripts/create_site.py +0 -0
  50. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/browser/__init__.py +0 -0
  51. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/browser/configure.zcml +0 -0
  52. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/browser/views.py +0 -0
  53. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/configure.zcml +0 -0
  54. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/content/__init__.py +0 -0
  55. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/controlpanels/__init__.py +0 -0
  56. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/controlpanels/configure.zcml +0 -0
  57. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/controlpanels/settings.py +0 -0
  58. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/dependencies.zcml +0 -0
  59. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/indexers/__init__.py +0 -0
  60. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/indexers/configure.zcml +0 -0
  61. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/interfaces.py +0 -0
  62. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/linkmap.py +0 -0
  63. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/locales/__init__.py +0 -0
  64. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/locales/__main__.py +0 -0
  65. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/locales/en/LC_MESSAGES/redturtle.linkmap.po +0 -0
  66. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/locales/it/LC_MESSAGES/redturtle.linkmap.po +0 -0
  67. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/locales/redturtle.linkmap.pot +0 -0
  68. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/permissions.zcml +0 -0
  69. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/profiles/default/browserlayer.xml +0 -0
  70. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/profiles/default/catalog.xml +0 -0
  71. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/profiles/default/controlpanel.xml +0 -0
  72. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/profiles/default/diff_tool.xml +0 -0
  73. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/profiles/default/metadata.xml +0 -0
  74. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/profiles/default/registry/main.xml +0 -0
  75. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/profiles/default/repositorytool.xml +0 -0
  76. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/profiles/default/rolemap.xml +0 -0
  77. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/profiles/default/types/.gitkeep +0 -0
  78. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/profiles/default/types.xml +0 -0
  79. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/profiles/uninstall/browserlayer.xml +0 -0
  80. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/profiles.zcml +0 -0
  81. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/restapi/__init__.py +0 -0
  82. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/restapi/configure.zcml +0 -0
  83. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/restapi/services/__init__.py +0 -0
  84. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/restapi/services/configure.zcml +0 -0
  85. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/restapi/services/controlpanel.py +0 -0
  86. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/serializers/__init__.py +0 -0
  87. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/serializers/configure.zcml +0 -0
  88. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/serializers/summary.py +0 -0
  89. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/setuphandlers/__init__.py +0 -0
  90. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/testing.py +0 -0
  91. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/upgrades/__init__.py +0 -0
  92. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/upgrades/configure.zcml +0 -0
  93. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/vocabularies/__init__.py +0 -0
  94. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/vocabularies/configure.zcml +0 -0
  95. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/tests/conftest.py +0 -0
  96. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/tests/setup/test_setup_install.py +0 -0
  97. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/tests/setup/test_setup_uninstall.py +0 -0
  98. {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/tests/test_linkmap_views.py +0 -0
@@ -0,0 +1,13 @@
1
+ ## 1.0.2 (2026-06-25)
2
+
3
+
4
+ - Nothing changed yet.
5
+
6
+
7
+ ## 1.0.1 (2026-06-24)
8
+
9
+
10
+ - Nothing changed yet.
11
+
12
+
13
+ ## 1.0.0 (2026-06-24)
@@ -0,0 +1,196 @@
1
+ Metadata-Version: 2.4
2
+ Name: rer.linkmap
3
+ Version: 1.0.2
4
+ Summary: A new addon for Plone
5
+ Project-URL: Homepage, https://github.com/redturtle/rer.linkmap
6
+ Project-URL: PyPI, https://pypi.org/project/rer.linkmap
7
+ Project-URL: Source, https://github.com/redturtle/rer.linkmap
8
+ Project-URL: Tracker, https://github.com/redturtle/rer.linkmap/issues
9
+ Author-email: RedTurtle Technology <info@redturtle.it>
10
+ License: GPL-2.0-only
11
+ License-File: LICENSE.GPL
12
+ License-File: LICENSE.md
13
+ Keywords: CMS,Plone,Python
14
+ Classifier: Development Status :: 3 - Alpha
15
+ Classifier: Environment :: Web Environment
16
+ Classifier: Framework :: Plone
17
+ Classifier: Framework :: Plone :: 6.0
18
+ Classifier: Framework :: Plone :: 6.1
19
+ Classifier: Framework :: Plone :: 6.2
20
+ Classifier: Framework :: Plone :: Addon
21
+ Classifier: Operating System :: OS Independent
22
+ Classifier: Programming Language :: Python
23
+ Classifier: Programming Language :: Python :: 3.8
24
+ Classifier: Programming Language :: Python :: 3.9
25
+ Classifier: Programming Language :: Python :: 3.10
26
+ Classifier: Programming Language :: Python :: 3.11
27
+ Classifier: Programming Language :: Python :: 3.12
28
+ Classifier: Programming Language :: Python :: 3.13
29
+ Requires-Python: <3.14,>=3.8
30
+ Requires-Dist: plone-api
31
+ Requires-Dist: plone-restapi
32
+ Requires-Dist: plone-volto
33
+ Requires-Dist: products-cmfplone
34
+ Provides-Extra: release
35
+ Requires-Dist: zest-pocompile; extra == 'release'
36
+ Requires-Dist: zest-releaser[recommended]; extra == 'release'
37
+ Requires-Dist: zestreleaser-towncrier; extra == 'release'
38
+ Provides-Extra: test
39
+ Requires-Dist: defusedxml; extra == 'test'
40
+ Requires-Dist: horse-with-no-namespace; extra == 'test'
41
+ Requires-Dist: plone-app-testing; extra == 'test'
42
+ Requires-Dist: plone-restapi[test]; extra == 'test'
43
+ Requires-Dist: pytest; extra == 'test'
44
+ Requires-Dist: pytest-cov; extra == 'test'
45
+ Requires-Dist: pytest-plone>=1.0.0a2; extra == 'test'
46
+ Description-Content-Type: text/markdown
47
+
48
+ # rer.linkmap
49
+
50
+ [![PyPI](https://img.shields.io/pypi/v/rer.linkmap.svg)](https://pypi.org/project/rer.linkmap)
51
+ [![Python](https://img.shields.io/pypi/pyversions/rer.linkmap.svg)](https://pypi.org/project/rer.linkmap)
52
+ [![Tests](https://github.com/redturtle/rer.linkmap/actions/workflows/tests.yml/badge.svg)](https://github.com/redturtle/rer.linkmap/actions/workflows/tests.yml)
53
+ [![License: GPL v2](https://img.shields.io/pypi/l/rer.linkmap.svg)](https://pypi.org/project/rer.linkmap)
54
+
55
+ Plone add-on to manage and expose the "Amministrazione Trasparente" link map
56
+ required by the AGID/ANAC transparency specification.
57
+
58
+ Links are configured from a control panel and exposed through dedicated Plone
59
+ views in JSON and XML format.
60
+
61
+ Reference specification:
62
+ <https://guida-servizi.anticorruzione.it/it/help/trasparenza/amministrazione-trasparente/#la-mappa-dei-link-della-sezione-at>
63
+
64
+ ## Features
65
+
66
+ - Control panel for configuring all transparency-map URLs.
67
+ - Dedicated outputs at portal root:
68
+ - `at_map.json`
69
+ - `at_map.xml`
70
+ - Independent flags to enable/disable JSON and XML exposure.
71
+ - REST API control panel integration (`linkmap-settings`).
72
+
73
+ ## Requirements
74
+
75
+ - Plone 6 (tested with Plone 6.2)
76
+ - Python 3.8 - 3.13
77
+
78
+ ## Installation
79
+
80
+ Add `rer.linkmap` to your Plone environment and install it from the Add-ons
81
+ control panel.
82
+
83
+ If you are using a classic buildout-based setup, add it to `eggs`:
84
+
85
+ ```ini
86
+ [buildout]
87
+ eggs =
88
+ rer.linkmap
89
+ ```
90
+
91
+ ## Development Setup
92
+
93
+ This project includes a `Makefile` workflow based on `uv`.
94
+
95
+ ```bash
96
+ make install # create venv, install deps, generate instance config
97
+ make start # start Plone on localhost:8080
98
+ make create-site # create a fresh Plone site
99
+ ```
100
+
101
+ Useful commands:
102
+
103
+ ```bash
104
+ make test
105
+ make test-coverage
106
+ make lint
107
+ make format
108
+ make i18n
109
+ ```
110
+
111
+ ## Configuration
112
+
113
+ After installation, configure the add-on in:
114
+
115
+ - Site Setup -> Link map settings (`linkmap-settings`)
116
+
117
+ Main options:
118
+
119
+ - `expose_json`: enable/disable `@@at_map.json`
120
+ - `expose_xml`: enable/disable `@@at_map.xml`
121
+ - `data_ultima_modifica`: date string in `GG/MM/AAAA`
122
+ - one URL field for each transparency section key
123
+
124
+ If a format is disabled, the corresponding view returns `404 Not Found`.
125
+
126
+ ## Output Endpoints
127
+
128
+ Endpoints are available only on the portal root context:
129
+
130
+ - `/at_map.json`
131
+ - `/at_map.xml`
132
+
133
+ ### JSON example
134
+
135
+ ```json
136
+ {
137
+ "at_art2_bis_c1": {
138
+ "amministrazione_trasparente": "https://www.example.org/amministrazione-trasparente",
139
+ "disposizioni_generali": "https://www.example.org/disposizioni-generali"
140
+ },
141
+ "data_ultima_modifica": "17/06/2026"
142
+ }
143
+ ```
144
+
145
+ ### XML example
146
+
147
+ ```xml
148
+ <?xml version="1.0" encoding="utf-8"?>
149
+ <amministrazione_trasparente xmlns="https://guida-servizi.anticorruzione.it/trasparenza">
150
+ <data_ultima_modifica>18/06/2026</data_ultima_modifica>
151
+ <map>
152
+ <at_art2_bis_c1>
153
+ <amministrazione_trasparente>https://www.example.org/at</amministrazione_trasparente>
154
+ <accesso_civico>https://www.example.org/accesso-civico</accesso_civico>
155
+ </at_art2_bis_c1>
156
+ </map>
157
+ </amministrazione_trasparente>
158
+ ```
159
+
160
+ ## REST API Integration
161
+
162
+ The add-on registers a restapi control panel adapter named
163
+ `linkmap-settings`, based on the same schema used by the classic control panel.
164
+
165
+ ## Testing
166
+
167
+ Run tests with:
168
+
169
+ ```bash
170
+ make test
171
+ ```
172
+
173
+ The suite verifies:
174
+
175
+ - install/uninstall profile behavior
176
+ - control panel registration
177
+ - JSON/XML output shape and namespace
178
+ - root-only access to views
179
+ - enable/disable behavior for exposed formats
180
+
181
+ ## License
182
+
183
+ This project is licensed under GPL-2.0-only.
184
+
185
+ ## Credits
186
+
187
+ Developed with the support of [Regione Emilia Romagna](http://www.regione.emilia-romagna.it)
188
+
189
+ Regione Emilia Romagna supports the [PloneGov initiative](http://www.plonegov.it).
190
+
191
+ ## Authors
192
+
193
+ This product was developed by **RedTurtle Technology** team.
194
+
195
+ Generated using [Cookieplone](https://github.com/plone/cookieplone) and
196
+ [cookieplone-templates](https://github.com/plone/cookieplone-templates).
@@ -0,0 +1,149 @@
1
+ # rer.linkmap
2
+
3
+ [![PyPI](https://img.shields.io/pypi/v/rer.linkmap.svg)](https://pypi.org/project/rer.linkmap)
4
+ [![Python](https://img.shields.io/pypi/pyversions/rer.linkmap.svg)](https://pypi.org/project/rer.linkmap)
5
+ [![Tests](https://github.com/redturtle/rer.linkmap/actions/workflows/tests.yml/badge.svg)](https://github.com/redturtle/rer.linkmap/actions/workflows/tests.yml)
6
+ [![License: GPL v2](https://img.shields.io/pypi/l/rer.linkmap.svg)](https://pypi.org/project/rer.linkmap)
7
+
8
+ Plone add-on to manage and expose the "Amministrazione Trasparente" link map
9
+ required by the AGID/ANAC transparency specification.
10
+
11
+ Links are configured from a control panel and exposed through dedicated Plone
12
+ views in JSON and XML format.
13
+
14
+ Reference specification:
15
+ <https://guida-servizi.anticorruzione.it/it/help/trasparenza/amministrazione-trasparente/#la-mappa-dei-link-della-sezione-at>
16
+
17
+ ## Features
18
+
19
+ - Control panel for configuring all transparency-map URLs.
20
+ - Dedicated outputs at portal root:
21
+ - `at_map.json`
22
+ - `at_map.xml`
23
+ - Independent flags to enable/disable JSON and XML exposure.
24
+ - REST API control panel integration (`linkmap-settings`).
25
+
26
+ ## Requirements
27
+
28
+ - Plone 6 (tested with Plone 6.2)
29
+ - Python 3.8 - 3.13
30
+
31
+ ## Installation
32
+
33
+ Add `rer.linkmap` to your Plone environment and install it from the Add-ons
34
+ control panel.
35
+
36
+ If you are using a classic buildout-based setup, add it to `eggs`:
37
+
38
+ ```ini
39
+ [buildout]
40
+ eggs =
41
+ rer.linkmap
42
+ ```
43
+
44
+ ## Development Setup
45
+
46
+ This project includes a `Makefile` workflow based on `uv`.
47
+
48
+ ```bash
49
+ make install # create venv, install deps, generate instance config
50
+ make start # start Plone on localhost:8080
51
+ make create-site # create a fresh Plone site
52
+ ```
53
+
54
+ Useful commands:
55
+
56
+ ```bash
57
+ make test
58
+ make test-coverage
59
+ make lint
60
+ make format
61
+ make i18n
62
+ ```
63
+
64
+ ## Configuration
65
+
66
+ After installation, configure the add-on in:
67
+
68
+ - Site Setup -> Link map settings (`linkmap-settings`)
69
+
70
+ Main options:
71
+
72
+ - `expose_json`: enable/disable `@@at_map.json`
73
+ - `expose_xml`: enable/disable `@@at_map.xml`
74
+ - `data_ultima_modifica`: date string in `GG/MM/AAAA`
75
+ - one URL field for each transparency section key
76
+
77
+ If a format is disabled, the corresponding view returns `404 Not Found`.
78
+
79
+ ## Output Endpoints
80
+
81
+ Endpoints are available only on the portal root context:
82
+
83
+ - `/at_map.json`
84
+ - `/at_map.xml`
85
+
86
+ ### JSON example
87
+
88
+ ```json
89
+ {
90
+ "at_art2_bis_c1": {
91
+ "amministrazione_trasparente": "https://www.example.org/amministrazione-trasparente",
92
+ "disposizioni_generali": "https://www.example.org/disposizioni-generali"
93
+ },
94
+ "data_ultima_modifica": "17/06/2026"
95
+ }
96
+ ```
97
+
98
+ ### XML example
99
+
100
+ ```xml
101
+ <?xml version="1.0" encoding="utf-8"?>
102
+ <amministrazione_trasparente xmlns="https://guida-servizi.anticorruzione.it/trasparenza">
103
+ <data_ultima_modifica>18/06/2026</data_ultima_modifica>
104
+ <map>
105
+ <at_art2_bis_c1>
106
+ <amministrazione_trasparente>https://www.example.org/at</amministrazione_trasparente>
107
+ <accesso_civico>https://www.example.org/accesso-civico</accesso_civico>
108
+ </at_art2_bis_c1>
109
+ </map>
110
+ </amministrazione_trasparente>
111
+ ```
112
+
113
+ ## REST API Integration
114
+
115
+ The add-on registers a restapi control panel adapter named
116
+ `linkmap-settings`, based on the same schema used by the classic control panel.
117
+
118
+ ## Testing
119
+
120
+ Run tests with:
121
+
122
+ ```bash
123
+ make test
124
+ ```
125
+
126
+ The suite verifies:
127
+
128
+ - install/uninstall profile behavior
129
+ - control panel registration
130
+ - JSON/XML output shape and namespace
131
+ - root-only access to views
132
+ - enable/disable behavior for exposed formats
133
+
134
+ ## License
135
+
136
+ This project is licensed under GPL-2.0-only.
137
+
138
+ ## Credits
139
+
140
+ Developed with the support of [Regione Emilia Romagna](http://www.regione.emilia-romagna.it)
141
+
142
+ Regione Emilia Romagna supports the [PloneGov initiative](http://www.plonegov.it).
143
+
144
+ ## Authors
145
+
146
+ This product was developed by **RedTurtle Technology** team.
147
+
148
+ Generated using [Cookieplone](https://github.com/plone/cookieplone) and
149
+ [cookieplone-templates](https://github.com/plone/cookieplone-templates).
@@ -4,7 +4,7 @@ dynamic = ["version"]
4
4
  description = "A new addon for Plone"
5
5
  readme = "README.md"
6
6
  license = { text = "GPL-2.0-only" }
7
- requires-python = ">=3.10,<3.14"
7
+ requires-python = ">=3.8,<3.14"
8
8
  authors = [
9
9
  { name = "RedTurtle Technology", email = "info@redturtle.it" },
10
10
  ]
@@ -23,6 +23,8 @@ classifiers = [
23
23
  "Framework :: Plone :: Addon",
24
24
  "Operating System :: OS Independent",
25
25
  "Programming Language :: Python",
26
+ "Programming Language :: Python :: 3.8",
27
+ "Programming Language :: Python :: 3.9",
26
28
  "Programming Language :: Python :: 3.10",
27
29
  "Programming Language :: Python :: 3.11",
28
30
  "Programming Language :: Python :: 3.12",
@@ -123,7 +125,7 @@ name = "Tests"
123
125
  showcontent = true
124
126
 
125
127
  [tool.ruff]
126
- target-version = "py310"
128
+ target-version = "py38"
127
129
  line-length = 88
128
130
  fix = true
129
131
  lint.select = [
@@ -0,0 +1,3 @@
1
+ [metadata]
2
+ name = rer.linkmap
3
+ python_requires = >=3.8,<3.14
@@ -15,10 +15,12 @@ except ImportError:
15
15
  if __name__ == "__main__":
16
16
  setup(
17
17
  classifiers=[
18
+ "Programming Language :: Python :: 3.8",
19
+ "Programming Language :: Python :: 3.9",
18
20
  "Programming Language :: Python :: 3.10",
19
21
  "Programming Language :: Python :: 3.11",
20
22
  "Programming Language :: Python :: 3.12",
21
23
  "Programming Language :: Python :: 3.13",
22
24
  ],
23
- python_requires=">=3.10,<3.14",
25
+ python_requires=">=3.8,<3.14",
24
26
  )
@@ -4,7 +4,7 @@ from zope.i18nmessageid import MessageFactory
4
4
 
5
5
  import logging
6
6
 
7
- __version__ = "1.0.1"
7
+ __version__ = "1.0.2"
8
8
 
9
9
  PACKAGE_NAME = "rer.linkmap"
10
10
 
@@ -1,7 +0,0 @@
1
- ## 1.0.1 (2026-06-24)
2
-
3
-
4
- - Nothing changed yet.
5
-
6
-
7
- ## 1.0.0 (2026-06-24)
@@ -1,61 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: rer.linkmap
3
- Version: 1.0.1
4
- Summary: A new addon for Plone
5
- Project-URL: Homepage, https://github.com/redturtle/rer.linkmap
6
- Project-URL: PyPI, https://pypi.org/project/rer.linkmap
7
- Project-URL: Source, https://github.com/redturtle/rer.linkmap
8
- Project-URL: Tracker, https://github.com/redturtle/rer.linkmap/issues
9
- Author-email: RedTurtle Technology <info@redturtle.it>
10
- License: GPL-2.0-only
11
- License-File: LICENSE.GPL
12
- License-File: LICENSE.md
13
- Keywords: CMS,Plone,Python
14
- Classifier: Development Status :: 3 - Alpha
15
- Classifier: Environment :: Web Environment
16
- Classifier: Framework :: Plone
17
- Classifier: Framework :: Plone :: 6.0
18
- Classifier: Framework :: Plone :: 6.1
19
- Classifier: Framework :: Plone :: 6.2
20
- Classifier: Framework :: Plone :: Addon
21
- Classifier: Operating System :: OS Independent
22
- Classifier: Programming Language :: Python
23
- Classifier: Programming Language :: Python :: 3.10
24
- Classifier: Programming Language :: Python :: 3.11
25
- Classifier: Programming Language :: Python :: 3.12
26
- Classifier: Programming Language :: Python :: 3.13
27
- Requires-Python: <3.14,>=3.10
28
- Requires-Dist: plone-api
29
- Requires-Dist: plone-restapi
30
- Requires-Dist: plone-volto
31
- Requires-Dist: products-cmfplone
32
- Provides-Extra: release
33
- Requires-Dist: zest-pocompile; extra == 'release'
34
- Requires-Dist: zest-releaser[recommended]; extra == 'release'
35
- Requires-Dist: zestreleaser-towncrier; extra == 'release'
36
- Provides-Extra: test
37
- Requires-Dist: defusedxml; extra == 'test'
38
- Requires-Dist: horse-with-no-namespace; extra == 'test'
39
- Requires-Dist: plone-app-testing; extra == 'test'
40
- Requires-Dist: plone-restapi[test]; extra == 'test'
41
- Requires-Dist: pytest; extra == 'test'
42
- Requires-Dist: pytest-cov; extra == 'test'
43
- Requires-Dist: pytest-plone>=1.0.0a2; extra == 'test'
44
- Description-Content-Type: text/markdown
45
-
46
- # rer.linkmap
47
-
48
- This product give the ability to configure via a controlpanel the list of all
49
- links specified here:
50
- https://guida-servizi.anticorruzione.it/it/help/trasparenza/amministrazione-trasparente/#la-mappa-dei-link-della-sezione-at
51
-
52
- The link map can be exposed in JSON or XML formats, accessible through a Plone
53
- browserview.
54
-
55
- ## License
56
-
57
- The project is licensed under GPLv2.
58
-
59
- ## Credits and acknowledgements 🙏
60
-
61
- Generated using [Cookieplone (1.0.0)](https://github.com/plone/cookieplone) and [cookieplone-templates (103d811)](https://github.com/plone/cookieplone-templates/commit/103d811612845aa22b1096890801c7bddd8615fb) on 2026-06-17 11:37:18.974666. A special thanks to all contributors and supporters!
@@ -1,16 +0,0 @@
1
- # rer.linkmap
2
-
3
- This product give the ability to configure via a controlpanel the list of all
4
- links specified here:
5
- https://guida-servizi.anticorruzione.it/it/help/trasparenza/amministrazione-trasparente/#la-mappa-dei-link-della-sezione-at
6
-
7
- The link map can be exposed in JSON or XML formats, accessible through a Plone
8
- browserview.
9
-
10
- ## License
11
-
12
- The project is licensed under GPLv2.
13
-
14
- ## Credits and acknowledgements 🙏
15
-
16
- Generated using [Cookieplone (1.0.0)](https://github.com/plone/cookieplone) and [cookieplone-templates (103d811)](https://github.com/plone/cookieplone-templates/commit/103d811612845aa22b1096890801c7bddd8615fb) on 2026-06-17 11:37:18.974666. A special thanks to all contributors and supporters!
@@ -1,3 +0,0 @@
1
- [metadata]
2
- name = rer.linkmap
3
- python_requires = >=3.10,<3.14
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes