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.
- rer_linkmap-1.0.2/CHANGELOG.md +13 -0
- rer_linkmap-1.0.2/PKG-INFO +196 -0
- rer_linkmap-1.0.2/README.md +149 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/pyproject.toml +4 -2
- rer_linkmap-1.0.2/setup.cfg +3 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/setup.py +3 -1
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/__init__.py +1 -1
- rer_linkmap-1.0.1/CHANGELOG.md +0 -7
- rer_linkmap-1.0.1/PKG-INFO +0 -61
- rer_linkmap-1.0.1/README.md +0 -16
- rer_linkmap-1.0.1/setup.cfg +0 -3
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/.editorconfig +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/.flake8 +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/.gitignore +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/CONTRIBUTORS.md +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/LICENSE.GPL +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/LICENSE.md +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/MANIFEST.in +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/Makefile +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/bobtemplate.cfg +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/.gitignore +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/.readthedocs.yaml +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/.vale.ini +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/LICENSE.md +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/Makefile +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/README.md +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/docs/_static/favicon.ico +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/docs/_static/logo.svg +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/docs/_templates/404.html +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/docs/concepts/index.md +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/docs/conf.py +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/docs/glossary.md +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/docs/how-to-guides/index.md +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/docs/index.md +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/docs/reference/index.md +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/docs/robots.txt +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/docs/tutorials/index.md +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/pyproject.toml +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/styles/config/vocabularies/Base/accept.txt +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/styles/config/vocabularies/Base/reject.txt +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/styles/config/vocabularies/Plone/accept.txt +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/docs/styles/config/vocabularies/Plone/reject.txt +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/instance.yaml +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/mx.ini +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/news/.changelog_template.jinja +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/news/.gitkeep +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/news/1.feature.md +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/publiccode.yml +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/scripts/create_site.py +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/browser/__init__.py +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/browser/configure.zcml +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/browser/views.py +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/configure.zcml +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/content/__init__.py +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/controlpanels/__init__.py +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/controlpanels/configure.zcml +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/controlpanels/settings.py +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/dependencies.zcml +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/indexers/__init__.py +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/indexers/configure.zcml +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/interfaces.py +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/linkmap.py +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/locales/__init__.py +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/locales/__main__.py +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/locales/en/LC_MESSAGES/redturtle.linkmap.po +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/locales/it/LC_MESSAGES/redturtle.linkmap.po +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/locales/redturtle.linkmap.pot +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/permissions.zcml +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/profiles/default/browserlayer.xml +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/profiles/default/catalog.xml +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/profiles/default/controlpanel.xml +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/profiles/default/diff_tool.xml +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/profiles/default/metadata.xml +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/profiles/default/registry/main.xml +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/profiles/default/repositorytool.xml +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/profiles/default/rolemap.xml +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/profiles/default/types/.gitkeep +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/profiles/default/types.xml +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/profiles/uninstall/browserlayer.xml +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/profiles.zcml +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/restapi/__init__.py +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/restapi/configure.zcml +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/restapi/services/__init__.py +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/restapi/services/configure.zcml +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/restapi/services/controlpanel.py +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/serializers/__init__.py +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/serializers/configure.zcml +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/serializers/summary.py +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/setuphandlers/__init__.py +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/testing.py +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/upgrades/__init__.py +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/upgrades/configure.zcml +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/vocabularies/__init__.py +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/vocabularies/configure.zcml +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/tests/conftest.py +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/tests/setup/test_setup_install.py +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/tests/setup/test_setup_uninstall.py +0 -0
- {rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/tests/test_linkmap_views.py +0 -0
|
@@ -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
|
+
[](https://pypi.org/project/rer.linkmap)
|
|
51
|
+
[](https://pypi.org/project/rer.linkmap)
|
|
52
|
+
[](https://github.com/redturtle/rer.linkmap/actions/workflows/tests.yml)
|
|
53
|
+
[](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
|
+
[](https://pypi.org/project/rer.linkmap)
|
|
4
|
+
[](https://pypi.org/project/rer.linkmap)
|
|
5
|
+
[](https://github.com/redturtle/rer.linkmap/actions/workflows/tests.yml)
|
|
6
|
+
[](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.
|
|
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 = "
|
|
128
|
+
target-version = "py38"
|
|
127
129
|
line-length = 88
|
|
128
130
|
fix = true
|
|
129
131
|
lint.select = [
|
|
@@ -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.
|
|
25
|
+
python_requires=">=3.8,<3.14",
|
|
24
26
|
)
|
rer_linkmap-1.0.1/CHANGELOG.md
DELETED
rer_linkmap-1.0.1/PKG-INFO
DELETED
|
@@ -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!
|
rer_linkmap-1.0.1/README.md
DELETED
|
@@ -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!
|
rer_linkmap-1.0.1/setup.cfg
DELETED
|
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
|
|
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
|
|
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
|
{rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/locales/en/LC_MESSAGES/redturtle.linkmap.po
RENAMED
|
File without changes
|
{rer_linkmap-1.0.1 → rer_linkmap-1.0.2}/src/rer/linkmap/locales/it/LC_MESSAGES/redturtle.linkmap.po
RENAMED
|
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
|
|
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
|