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