design-comuni-plone-theme
Version:
Volto Theme for Italia design guidelines
1,303 lines (1,297 loc) • 53.4 kB
JSX
import React from 'react';
import { render, screen } from '@testing-library/react';
import '@testing-library/jest-dom/extend-expect';
import BandoView from '../BandoView/BandoView';
import configureStore from 'redux-mock-store';
import { Provider } from 'react-intl-redux';
import { MemoryRouter } from 'react-router-dom';
import thunk from 'redux-thunk';
const middlewares = [thunk];
const mockStore = configureStore(middlewares);
// Warning: An update to Icon inside a test was not wrapped in act(...).
// When testing, code that causes React state updates should be wrapped into act(...):
jest.mock('design-comuni-plone-theme/components/ItaliaTheme/Icons/Icon');
jest.mock('@plone/volto/helpers/Loadable/Loadable');
beforeAll(
async () =>
await require('@plone/volto/helpers/Loadable/Loadable').__setLoadables(),
);
const mock_mandatory = {
'@id':
'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-ironman',
'@type': 'Bando',
UID: 'ff82688a5a5f4484a8d2eec481e10c7c',
bando_state: ['inProgress', 'In progress'],
tipologia_bando: {
title: 'Acquisizione beni e servizi',
token: 'beni_servizi',
},
title: 'Bando per diventare Ironman',
};
const mock_allfields = {
...mock_mandatory,
'@components': {
actions: {
'@id':
'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-ironman/@actions',
},
aliases: {
'@id':
'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-ironman/@aliases',
},
breadcrumbs: {
'@id':
'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-ironman/@breadcrumbs',
},
contextnavigation: {
'@id':
'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-ironman/@contextnavigation',
},
navigation: {
'@id':
'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-ironman/@navigation',
},
subsite: {},
translations: {
'@id':
'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-ironman/@translations',
},
types: {
'@id':
'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-ironman/@types',
},
workflow: {
'@id':
'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-ironman/@workflow',
},
},
'@id':
'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-ironman',
'@type': 'Bando',
UID: 'ff82688a5a5f4484a8d2eec481e10c7c',
allow_discussion: false,
apertura_bando: '2023-01-01T09:00:00',
approfondimento: [],
area_responsabile: [
{
'@id':
'http://localhost:3000/amministrazione/aree-di-competenza/area-impiantistica-sportiva-e-manifestazioni-sportive',
'@type': 'UnitaOrganizzativa',
address: '',
circoscrizione: '',
city: '',
contact_info: [],
description: 'Dirigente Arch. M. Alessandra Verdi',
design_italia_meta_type: 'Unita Organizzativa',
effective: null,
geolocation: {
latitude: 0,
longitude: 0,
},
has_children: true,
id: 'area-impiantistica-sportiva-e-manifestazioni-sportive',
image_field: null,
image_scales: null,
nome_sede: '',
quartiere: '',
review_state: 'private',
street: '',
tipologia_organizzazione: {
title: 'Struttura amministrativa',
token: 'struttura_amministrativa',
},
title: 'Area impiantistica sportiva e manifestazioni sportive',
zip_code: '',
},
],
bando_state: ['inProgress', 'In progress'],
changeNote: '',
chiusura_procedimento_bando: '2023-03-15',
contributors: [],
correlato_in_evidenza: [
{
'@id':
'http://localhost:3000/notizie/chiusa-per-ristrutturazione-la-piscina-minghetti',
'@type': 'News Item',
description:
'Partiti i lavori per l’adeguamento dell’impianto. La riapertura è prevista per giugno 2023.',
design_italia_meta_type: 'Avviso',
effective: null,
has_children: true,
id: 'chiusa-per-ristrutturazione-la-piscina-minghetti',
image_field: null,
image_scales: null,
review_state: 'private',
tipologia_notizia: {
title: 'Avviso',
token: 'avviso',
},
title: 'Chiusa per ristrutturazione la piscina Minghetti',
},
],
created: '2023-01-27T15:17:10+00:00',
creators: ['admin'],
description: 'Is this the real life?',
design_italia_meta_type: 'Bando',
destinatari: [
{
title: 'Cittadini',
token: 'Cittadini',
},
],
effective: null,
ente_bando: ['Marvel'],
exclude_from_nav: false,
expires: null,
id: 'bando-per-diventare-ironman',
is_folderish: true,
items: [
{
'@id':
'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-ironman/documenti',
'@type': 'Bando Folder Deepening',
description: '',
design_italia_meta_type: 'Cartella Approfondimento',
has_children: false,
id: 'documenti',
image_field: '',
image_scales: null,
review_state: 'private',
title: 'Documenti',
},
{
'@id':
'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-ironman/comunicazioni',
'@type': 'Bando Folder Deepening',
description: '',
design_italia_meta_type: 'Cartella Approfondimento',
has_children: false,
id: 'comunicazioni',
image_field: '',
image_scales: null,
review_state: 'private',
title: 'Comunicazioni',
},
{
'@id':
'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-ironman/esiti',
'@type': 'Bando Folder Deepening',
description: '',
design_italia_meta_type: 'Cartella Approfondimento',
has_children: false,
id: 'esiti',
image_field: '',
image_scales: null,
review_state: 'private',
title: 'Esiti',
},
],
items_total: 3,
language: {
title: 'Italiano',
token: 'it',
},
layout: 'view',
lock: {
locked: false,
stealable: true,
},
modified: '2023-01-30T11:07:30+00:00',
next_item: {
'@id':
'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-spiderman',
'@type': 'Bando',
description: '',
title: 'Bando per diventare Spiderman',
},
opengraph_description: null,
opengraph_image: null,
opengraph_title: null,
parent: {
'@id': 'http://localhost:3000/documenti-e-dati/bandi',
'@type': 'Document',
description: '',
design_italia_meta_type: 'Pagina',
has_children: true,
id: 'bandi',
image_field: null,
image_scales: null,
review_state: 'private',
title: 'Bandi',
},
preview_caption: 'immagine preview',
preview_image: {
'content-type': 'image/jpeg',
download:
'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-ironman/@@images/preview_image-6240-fd26b03b3e447160d6fbe18c66b6f65c.jpeg',
filename: 'woman-having-online-meeting-work.jpg',
height: 4160,
scales: {
gallery: {
download:
'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-ironman/@@images/preview_image-250-65852bdbdb6c29e64a6daa0caa689b0c.jpeg',
height: 166,
width: 250,
},
great: {
download:
'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-ironman/@@images/preview_image-1200-b1b7d0ce7d2df16a10e2a479ccbe293d.jpeg',
height: 800,
width: 1200,
},
huge: {
download:
'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-ironman/@@images/preview_image-1600-bdd0c8546bee630402d1834b547ae89f.jpeg',
height: 1066,
width: 1600,
},
icon: {
download:
'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-ironman/@@images/preview_image-32-727ad120bb64e874c84a87f96ab37cd7.jpeg',
height: 21,
width: 32,
},
large: {
download:
'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-ironman/@@images/preview_image-800-8b15a4b0b0509bda828431ff5d185661.jpeg',
height: 533,
width: 800,
},
larger: {
download:
'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-ironman/@@images/preview_image-1000-870b8896876edc5e4062b41df533c945.jpeg',
height: 666,
width: 1000,
},
listing: {
download:
'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-ironman/@@images/preview_image-16-57854085b918473ea28dffa7e67f01a5.jpeg',
height: 10,
width: 16,
},
midi: {
download:
'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-ironman/@@images/preview_image-300-6e58bec63227d91becf1fe9b9bf8ebec.jpeg',
height: 200,
width: 300,
},
mini: {
download:
'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-ironman/@@images/preview_image-200-16b058f634abefc39274d2ed5ae3d447.jpeg',
height: 133,
width: 200,
},
preview: {
download:
'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-ironman/@@images/preview_image-400-18f1c7ad193e51291ae8d5d64ac8be77.jpeg',
height: 266,
width: 400,
},
teaser: {
download:
'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-ironman/@@images/preview_image-600-6446e66e69e4752d92782865de498b23.jpeg',
height: 400,
width: 600,
},
thumb: {
download:
'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-ironman/@@images/preview_image-128-75768755b675beedff8fbd2226cce5f4.jpeg',
height: 85,
width: 128,
},
tile: {
download:
'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-ironman/@@images/preview_image-64-5b765bf5245c10a53d64498ee8fd8f46.jpeg',
height: 42,
width: 64,
},
},
size: 1195679,
width: 6240,
},
previous_item: {},
relatedItems: [
{
'@id': 'http://localhost:3000/novita/notizie/osservatorio-sul-turismo',
'@type': 'News Item',
description:
'Donec in consequat nunc. Duis semper fermentum lacus, ac condimentum justo auctor a. Nam erat erat, porta vel pharetra in, ullamcorper vel turpis.',
design_italia_meta_type: null,
effective: '2019-12-03T11:09:00+00:00',
has_children: true,
id: 'osservatorio-sul-turismo',
image_field: null,
image_scales: null,
review_state: 'private',
tipologia_notizia: {
title: null,
token: 'Notizia',
},
title: 'Osservatorio sul turismo',
},
],
review_state: 'private',
riferimenti_bando: {
blocks: {
'cb1ede9e-0f81-46c2-a5e2-cd83f69357d4': {
'@type': 'text',
text: {
blocks: [
{
data: {},
depth: 0,
entityRanges: [],
inlineStyleRanges: [],
key: '59c66',
text: 'Caught in a landside',
type: 'unstyled',
},
],
entityMap: {},
},
},
},
blocks_layout: {
items: ['cb1ede9e-0f81-46c2-a5e2-cd83f69357d4'],
},
},
rights: '',
scadenza_bando: '2023-02-28T10:07:03+00:00',
scadenza_domande_bando: '2023-01-31T10:00:44',
seo_canonical_url: null,
seo_description: null,
seo_noindex: null,
seo_title: null,
subjects: [],
table_of_contents: null,
tassonomia_argomenti: [
{
'@id': 'http://localhost:3000/argomenti/cultura',
'@type': 'Pagina Argomento',
description: '',
design_italia_meta_type: 'Argomento',
effective: null,
has_children: false,
id: 'cultura',
image_field: null,
image_scales: null,
review_state: 'private',
title: 'Cultura',
},
],
text: {
blocks: {
'92c8c380-c65d-4cfa-bb3f-4276124731ae': {
'@type': 'text',
text: {
blocks: [
{
data: {},
depth: 0,
entityRanges: [],
inlineStyleRanges: [],
key: '6onam',
text: 'Is this just fantasy?',
type: 'unstyled',
},
],
entityMap: {},
},
},
},
blocks_layout: {
items: ['92c8c380-c65d-4cfa-bb3f-4276124731ae'],
},
},
tipologia_bando: {
title: 'Acquisizione beni e servizi',
token: 'beni_servizi',
},
title: 'Bando per diventare Ironman',
ufficio_responsabile: [
{
'@id': 'http://localhost:3000/amministrazione/uffici/giunta-e-consiglio',
'@type': 'UnitaOrganizzativa',
address: '',
circoscrizione: '',
city: '',
contact_info: [
{
'@id':
'http://localhost:3000/amministrazione/punti-di-contatto/is-this-the-real-life',
'@type': 'PuntoDiContatto',
description: 'Is this just fantasy',
design_italia_meta_type: 'Punto di Contatto',
has_children: false,
id: 'is-this-the-real-life',
image_field: null,
image_scales: null,
review_state: 'private',
title: 'Is this the real life',
value_punto_contatto: [
{
pdc_type: 'email',
pdc_value: 'freddymercury@gmail.com',
},
],
},
],
description: 'Pierced through the heart but never killed',
design_italia_meta_type: 'Unita Organizzativa',
effective: null,
geolocation: {
latitude: 0,
longitude: 0,
},
has_children: true,
id: 'giunta-e-consiglio',
image_field: null,
image_scales: null,
nome_sede: '',
quartiere: '',
review_state: 'private',
street: '',
tipologia_organizzazione: {
title: 'Struttura amministrativa',
token: 'struttura_amministrativa',
},
title: 'Giunta e consiglio',
zip_code: '',
},
],
update_note: 'No escape from reality',
version: 'current',
versioning_enabled: true,
working_copy: null,
working_copy_of: null,
};
const store = mockStore({
intl: {
locale: 'en',
messages: {},
},
content: {
subrequests: {
'/amministrazione/uffici/giunta-e-consiglio_office': {
loading: false,
loaded: true,
error: null,
data: {
'@components': {
actions: {
'@id':
'http://localhost:3000/amministrazione/uffici/giunta-e-consiglio/@actions',
},
aliases: {
'@id':
'http://localhost:3000/amministrazione/uffici/giunta-e-consiglio/@aliases',
},
breadcrumbs: {
'@id':
'http://localhost:3000/amministrazione/uffici/giunta-e-consiglio/@breadcrumbs',
},
contextnavigation: {
'@id':
'http://localhost:3000/amministrazione/uffici/giunta-e-consiglio/@contextnavigation',
},
navigation: {
'@id':
'http://localhost:3000/amministrazione/uffici/giunta-e-consiglio/@navigation',
},
subsite: {},
translations: {
'@id':
'http://localhost:3000/amministrazione/uffici/giunta-e-consiglio/@translations',
},
types: {
'@id':
'http://localhost:3000/amministrazione/uffici/giunta-e-consiglio/@types',
},
workflow: {
'@id':
'http://localhost:3000/amministrazione/uffici/giunta-e-consiglio/@workflow',
},
},
'@id':
'http://localhost:3000/amministrazione/uffici/giunta-e-consiglio',
'@type': 'UnitaOrganizzativa',
UID: '4b56678a54884616aa8b7cb230d27794',
allow_discussion: false,
assessore_riferimento: [],
changeNote: '',
competenze: {
blocks: {
'84a4a7af-5b14-4161-84c0-008b501a4dc7': {
'@type': 'text',
text: {
blocks: [
{
data: {},
depth: 0,
entityRanges: [],
inlineStyleRanges: [],
key: '7srp8',
text: 'Prova',
type: 'unstyled',
},
],
entityMap: {},
},
},
},
blocks_layout: {
items: ['84a4a7af-5b14-4161-84c0-008b501a4dc7'],
},
},
contact_info: [
{
'@id':
'http://localhost:3000/amministrazione/punti-di-contatto/is-this-the-real-life',
'@type': 'PuntoDiContatto',
description: 'Is this just fantasy',
design_italia_meta_type: 'Punto di Contatto',
effective: null,
has_children: false,
id: 'is-this-the-real-life',
image_field: null,
image_scales: null,
review_state: 'private',
title: 'Is this the real life',
value_punto_contatto: [
{
pdc_type: 'email',
pdc_value: 'freddymercury@gmail.com',
},
],
},
],
contributors: [],
correlato_in_evidenza: [],
created: '2023-01-03T15:47:46+00:00',
creators: ['admin'],
description: 'Pierced through the heart but never killed',
design_italia_meta_type: 'Unita Organizzativa',
documenti_pubblici: [],
effective: null,
exclude_from_nav: false,
expires: null,
id: 'giunta-e-consiglio',
image: null,
image_caption: null,
is_folderish: true,
items: [
{
'@id':
'http://localhost:3000/amministrazione/uffici/giunta-e-consiglio/allegati',
'@type': 'Document',
description: '',
design_italia_meta_type: 'Pagina',
has_children: false,
id: 'allegati',
image_field: '',
image_scales: null,
review_state: 'private',
title: 'Allegati',
url: '/amministrazione/uffici/giunta-e-consiglio/allegati',
},
],
items_total: 1,
language: {
title: 'Italiano',
token: 'it',
},
layout: 'view',
legami_con_altre_strutture: [],
lock: {
locked: false,
stealable: true,
},
modified: '2023-02-13T13:58:29+00:00',
next_item: {
'@id':
'http://localhost:3000/amministrazione/uffici/assessorato-al-turismo',
'@type': 'UnitaOrganizzativa',
description: '',
title: 'Assessorato al Turismo',
},
opengraph_description: null,
opengraph_image: null,
opengraph_title: null,
orario_pubblico: {
blocks: {
'fbe2077b-d934-437b-b5ac-894ad6901bbc': {
'@type': 'text',
},
},
blocks_layout: {
items: ['fbe2077b-d934-437b-b5ac-894ad6901bbc'],
},
},
parent: {
'@id': 'http://localhost:3000/amministrazione/uffici',
'@type': 'Document',
description: '',
design_italia_meta_type: 'Pagina',
has_children: true,
id: 'uffici',
image_field: null,
image_scales: null,
review_state: 'private',
title: 'Uffici',
},
persone_struttura: [
{
'@id':
'http://localhost:3000/amministrazione/personale-amministrativo/gabriele-bianchi',
'@type': 'Persona',
description: 'Assessore allo sport',
design_italia_meta_type: 'Persona pubblica',
effective: null,
has_children: true,
id: 'gabriele-bianchi',
image_field: 'foto_persona',
image_scales: {
foto_persona: [
{
'content-type': 'image/jpeg',
download:
'http://localhost:3000/amministrazione/personale-amministrativo/gabriele-bianchi/@@images/foto_persona-5184-a0948b7d7c2e6ec2944ea4915f5d0c4f.jpeg',
filename: 'national-cancer-institute.jpeg',
height: 3456,
scales: {
gallery: {
download:
'http://localhost:3000/amministrazione/personale-amministrativo/gabriele-bianchi/@@images/foto_persona-250-d009f9ee6746d6ada973aeb0e99437eb.jpeg',
height: 166,
width: 250,
},
great: {
download:
'http://localhost:3000/amministrazione/personale-amministrativo/gabriele-bianchi/@@images/foto_persona-1200-db22dc3240b650dc494ea6412e5c4e8c.jpeg',
height: 800,
width: 1200,
},
huge: {
download:
'http://localhost:3000/amministrazione/personale-amministrativo/gabriele-bianchi/@@images/foto_persona-1600-1a281d1182b9422a0211cb7cc5e156f2.jpeg',
height: 1066,
width: 1600,
},
icon: {
download:
'http://localhost:3000/amministrazione/personale-amministrativo/gabriele-bianchi/@@images/foto_persona-32-92c4797637f83c00ac27cba86b37cff5.jpeg',
height: 21,
width: 32,
},
large: {
download:
'http://localhost:3000/amministrazione/personale-amministrativo/gabriele-bianchi/@@images/foto_persona-800-d85755d485e32d0a1deba313de75711b.jpeg',
height: 533,
width: 800,
},
larger: {
download:
'http://localhost:3000/amministrazione/personale-amministrativo/gabriele-bianchi/@@images/foto_persona-1000-e88f96e2a0ed91917f9d728caf2d4406.jpeg',
height: 666,
width: 1000,
},
listing: {
download:
'http://localhost:3000/amministrazione/personale-amministrativo/gabriele-bianchi/@@images/foto_persona-16-37154ce0fea872870103d5fae1a29f61.jpeg',
height: 10,
width: 16,
},
midi: {
download:
'http://localhost:3000/amministrazione/personale-amministrativo/gabriele-bianchi/@@images/foto_persona-300-458fd003c0d1576f66035dbc1e8ab87e.jpeg',
height: 200,
width: 300,
},
mini: {
download:
'http://localhost:3000/amministrazione/personale-amministrativo/gabriele-bianchi/@@images/foto_persona-200-830b17e7b02da4853b079bc80c1c4e34.jpeg',
height: 133,
width: 200,
},
preview: {
download:
'http://localhost:3000/amministrazione/personale-amministrativo/gabriele-bianchi/@@images/foto_persona-400-f9e5f2efc8120f6e3351536b3f287196.jpeg',
height: 266,
width: 400,
},
teaser: {
download:
'http://localhost:3000/amministrazione/personale-amministrativo/gabriele-bianchi/@@images/foto_persona-600-001ddce8166a4c8bb2839212f9fb2430.jpeg',
height: 400,
width: 600,
},
thumb: {
download:
'http://localhost:3000/amministrazione/personale-amministrativo/gabriele-bianchi/@@images/foto_persona-128-d97983d9975606ed88ec6d2029e10ea9.jpeg',
height: 85,
width: 128,
},
tile: {
download:
'http://localhost:3000/amministrazione/personale-amministrativo/gabriele-bianchi/@@images/foto_persona-64-f7765a9f78ff6e0725ebee3534a782c8.jpeg',
height: 42,
width: 64,
},
},
size: 2026538,
width: 5184,
},
],
},
incarichi: 'Incarico di Gabriele Bianchi',
review_state: 'private',
title: 'Gabriele Bianchi',
},
],
prestazioni: [],
preview_caption: null,
preview_image: null,
previous_item: {
'@id':
'http://localhost:3000/amministrazione/uffici/gestione-impianti-sportivi',
'@type': 'UnitaOrganizzativa',
description: 'Prova prova prova',
title: 'Gestione impianti sportivi',
},
relatedItems: [],
related_news: [],
responsabile: [],
review_state: 'private',
rights: '',
sede: [
{
'@id': 'http://localhost:3000/vivi-il-comune/luoghi/prova',
'@type': 'Venue',
circoscrizione: null,
city: 'Roma',
country: '380',
description: 'Lorem ipsum',
design_italia_meta_type: 'Luogo',
effective: null,
email: null,
fax: null,
geolocation: {
latitude: 41.8337833,
longitude: 12.4677863,
},
has_children: true,
id: 'prova',
image_field: null,
image_scales: null,
nome_sede: null,
orario_pubblico: {
blocks: {
'0cba7e98-73ee-41c7-9260-8dbb4af725d4': {
'@type': 'text',
},
},
blocks_layout: {
items: ['0cba7e98-73ee-41c7-9260-8dbb4af725d4'],
},
},
pec: null,
quartiere: null,
review_state: 'private',
riferimento_mail_struttura: null,
riferimento_pec_struttura: null,
riferimento_telefonico_struttura: null,
street: 'Via Liszt, 21',
telefono: null,
tipologia_luogo: [
{
title: 'Architettura Militare e fortificata␟Roccaforte',
token: 'roccaforte',
},
],
title: 'Prova',
web: null,
zip_code: '00144',
},
],
sedi_secondarie: [],
seo_canonical_url: null,
seo_description: null,
seo_noindex: null,
seo_title: null,
servizi_offerti: [
{
'@id': 'http://localhost:3000/servizi/visita-veterinaria-gratis',
'@type': 'Servizio',
business_events: [
{
title: 'Avvio impresa',
token: 'avvio_impresa',
},
],
canale_digitale: {
blocks: {
'7bebaf7f-40fd-4274-82a4-59180e9dff0b': {
'@type': 'text',
text: {
blocks: [
{
data: {},
depth: 0,
entityRanges: [],
inlineStyleRanges: [],
key: '1e42l',
text: 'Open your eyes',
type: 'unstyled',
},
],
entityMap: {},
},
},
},
blocks_layout: {
items: ['7bebaf7f-40fd-4274-82a4-59180e9dff0b'],
},
},
description: 'Fai visitare il tuo cucciolo',
design_italia_meta_type: 'Servizio',
has_children: true,
id: 'visita-veterinaria-gratis',
image_field: null,
image_scales: null,
parent_title: 'Servizi',
parent_url: 'http://localhost:3000/servizi',
person_life_events: [
{
title: 'Possesso, cura, smarrimento animale da compagnia',
token: 'possesso_cura_smarrimento_animale_da_compagnia',
},
],
review_state: 'private',
title: 'Visita veterinaria gratis',
},
],
subjects: [],
tassonomia_argomenti: [],
tipologia_organizzazione: {
title: 'Struttura amministrativa',
token: 'struttura_amministrativa',
},
title: 'Giunta e consiglio',
ulteriori_informazioni: {
blocks: {},
blocks_layout: {
items: [],
},
},
uo_children: [],
uo_parent: null,
version: 'current',
versioning_enabled: true,
working_copy: null,
working_copy_of: null,
},
},
'/amministrazione/aree-di-competenza/area-impiantistica-sportiva-e-manifestazioni-sportive_office':
{
loading: false,
loaded: true,
error: null,
data: {
'@components': {
actions: {
'@id':
'http://localhost:3000/amministrazione/aree-di-competenza/area-impiantistica-sportiva-e-manifestazioni-sportive/@actions',
},
aliases: {
'@id':
'http://localhost:3000/amministrazione/aree-di-competenza/area-impiantistica-sportiva-e-manifestazioni-sportive/@aliases',
},
breadcrumbs: {
'@id':
'http://localhost:3000/amministrazione/aree-di-competenza/area-impiantistica-sportiva-e-manifestazioni-sportive/@breadcrumbs',
},
contextnavigation: {
'@id':
'http://localhost:3000/amministrazione/aree-di-competenza/area-impiantistica-sportiva-e-manifestazioni-sportive/@contextnavigation',
},
navigation: {
'@id':
'http://localhost:3000/amministrazione/aree-di-competenza/area-impiantistica-sportiva-e-manifestazioni-sportive/@navigation',
},
subsite: {},
translations: {
'@id':
'http://localhost:3000/amministrazione/aree-di-competenza/area-impiantistica-sportiva-e-manifestazioni-sportive/@translations',
},
types: {
'@id':
'http://localhost:3000/amministrazione/aree-di-competenza/area-impiantistica-sportiva-e-manifestazioni-sportive/@types',
},
workflow: {
'@id':
'http://localhost:3000/amministrazione/aree-di-competenza/area-impiantistica-sportiva-e-manifestazioni-sportive/@workflow',
},
},
'@id':
'http://localhost:3000/amministrazione/aree-di-competenza/area-impiantistica-sportiva-e-manifestazioni-sportive',
'@type': 'UnitaOrganizzativa',
UID: '956e481bda7c4a5da6ce4dab0cbbb0be',
allow_discussion: false,
assessore_riferimento: [],
changeNote: '',
competenze: {
blocks: {
'68c21d17-ea6b-4469-9e10-ff6029d49419': {
'@type': 'text',
},
},
blocks_layout: {
items: ['68c21d17-ea6b-4469-9e10-ff6029d49419'],
},
},
contact_info: [],
contributors: [],
correlato_in_evidenza: [],
created: '2023-01-03T16:32:16+00:00',
creators: ['admin'],
description: 'Dirigente Arch. M. Alessandra Verdi',
design_italia_meta_type: 'Unita Organizzativa',
documenti_pubblici: [],
effective: null,
exclude_from_nav: false,
expires: null,
id: 'area-impiantistica-sportiva-e-manifestazioni-sportive',
image: null,
image_caption: null,
is_folderish: true,
items: [
{
'@id':
'http://localhost:3000/amministrazione/aree-di-competenza/area-impiantistica-sportiva-e-manifestazioni-sportive/allegati',
'@type': 'Document',
description: '',
design_italia_meta_type: 'Pagina',
has_children: false,
id: 'allegati',
image_field: '',
image_scales: null,
review_state: 'private',
title: 'Allegati',
url: '/amministrazione/aree-di-competenza/area-impiantistica-sportiva-e-manifestazioni-sportive/allegati',
},
],
items_total: 1,
language: {
title: 'Italiano',
token: 'it',
},
layout: 'view',
legami_con_altre_strutture: [
{
'@id':
'http://localhost:3000/amministrazione/uffici/giunta-e-consiglio',
'@type': 'UnitaOrganizzativa',
address: '',
circoscrizione: '',
city: '',
contact_info: [
{
'@id':
'http://localhost:3000/amministrazione/punti-di-contatto/is-this-the-real-life',
'@type': 'PuntoDiContatto',
description: 'Is this just fantasy',
design_italia_meta_type: 'Punto di Contatto',
has_children: false,
id: 'is-this-the-real-life',
image_field: null,
image_scales: null,
review_state: 'private',
title: 'Is this the real life',
value_punto_contatto: [
{
pdc_type: 'email',
pdc_value: 'freddymercury@gmail.com',
},
],
},
],
description: 'Pierced through the heart but never killed',
design_italia_meta_type: 'Unita Organizzativa',
effective: null,
geolocation: {
latitude: 0,
longitude: 0,
},
has_children: true,
id: 'giunta-e-consiglio',
image_field: null,
image_scales: null,
nome_sede: '',
quartiere: '',
review_state: 'private',
street: '',
tipologia_organizzazione: {
title: 'Struttura amministrativa',
token: 'struttura_amministrativa',
},
title: 'Giunta e consiglio',
zip_code: '',
},
],
lock: {
locked: false,
stealable: true,
},
modified: '2023-01-19T12:04:48+00:00',
next_item: {},
opengraph_description: null,
opengraph_image: null,
opengraph_title: null,
orario_pubblico: {
blocks: {
'3cf3d6e2-0ded-4701-8e88-9eee27ddb9d6': {
'@type': 'text',
},
},
blocks_layout: {
items: ['3cf3d6e2-0ded-4701-8e88-9eee27ddb9d6'],
},
},
parent: {
'@id': 'http://localhost:3000/amministrazione/aree-di-competenza',
'@type': 'Document',
description: '',
design_italia_meta_type: 'Pagina',
has_children: true,
id: 'aree-di-competenza',
image_field: null,
image_scales: null,
review_state: 'private',
title: 'Aree di competenza',
},
persone_struttura: [],
prestazioni: [],
preview_caption: null,
preview_image: null,
previous_item: {},
relatedItems: [],
related_news: [],
responsabile: [],
review_state: 'private',
rights: '',
sede: [],
sedi_secondarie: [],
seo_canonical_url: null,
seo_description: null,
seo_noindex: null,
seo_title: null,
servizi_offerti: [
{
'@id':
'http://localhost:3000/servizi/visita-veterinaria-gratis',
'@type': 'Servizio',
business_events: [
{
title: 'Avvio impresa',
token: 'avvio_impresa',
},
],
canale_digitale: {
blocks: {
'7bebaf7f-40fd-4274-82a4-59180e9dff0b': {
'@type': 'text',
text: {
blocks: [
{
data: {},
depth: 0,
entityRanges: [],
inlineStyleRanges: [],
key: '1e42l',
text: 'Open your eyes',
type: 'unstyled',
},
],
entityMap: {},
},
},
},
blocks_layout: {
items: ['7bebaf7f-40fd-4274-82a4-59180e9dff0b'],
},
},
description: 'Fai visitare il tuo cucciolo',
design_italia_meta_type: 'Servizio',
has_children: true,
id: 'visita-veterinaria-gratis',
image_field: null,
image_scales: null,
parent_title: 'Servizi',
parent_url: 'http://localhost:3000/servizi',
person_life_events: [
{
title: 'Possesso, cura, smarrimento animale da compagnia',
token: 'possesso_cura_smarrimento_animale_da_compagnia',
},
],
review_state: 'private',
title: 'Visita veterinaria gratis',
},
],
subjects: [],
tassonomia_argomenti: [
{
'@id': 'http://localhost:3000/argomenti/sport',
'@type': 'Pagina Argomento',
description:
'Informazioni su eventi sportivi, impianti comunali, servizi dedicati allo sport',
design_italia_meta_type: 'Argomento',
effective: null,
has_children: false,
icona: 'child',
id: 'sport',
image_field: null,
image_scales: null,
review_state: 'private',
title: 'Sport',
},
],
tipologia_organizzazione: {
title: 'Struttura amministrativa',
token: 'struttura_amministrativa',
},
title: 'Area impiantistica sportiva e manifestazioni sportive',
ulteriori_informazioni: {
blocks: {
'b5d8cddb-45d9-4025-bc0d-1cb08ea40706': {
'@type': 'text',
},
},
blocks_layout: {
items: ['b5d8cddb-45d9-4025-bc0d-1cb08ea40706'],
},
},
uo_children: [],
uo_parent: null,
version: 'current',
versioning_enabled: true,
working_copy: null,
working_copy_of: null,
},
},
'generic_card_/novita/notizie/osservatorio-sul-turismo': {
data: null,
loading: false,
loaded: false,
error: {
original: null,
response: {
req: {
method: 'GET',
url: 'http://localhost:3000/++api++/novita/notizie/osservatorio-sul-turismo?expand=subsite',
headers: {
authorization:
'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhZG1pbiIsImV4cCI6MTY3ODg0NTk2OSwiZnVsbG5hbWUiOm51bGx9.8AzoIXH8pHTF9AcEOHqn61BSxpcxYiH3qNLzOZNyYmk',
accept: 'application/json',
},
},
xhr: {},
text: '{\n "message": "\'NoneType\' object has no attribute \'startswith\'",\n "traceback": [\n "File \\"/app/lib/python3.11/site-packages/ZPublisher/WSGIPublisher.py\\", line 172, in transaction_pubevents",\n " yield",\n "",\n " File \\"/app/lib/python3.11/site-packages/ZPublisher/WSGIPublisher.py\\", line 381, in publish_module",\n " response = _publish(request, new_mod_info)",\n " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",\n "",\n " File \\"/app/lib/python3.11/site-packages/ZPublisher/WSGIPublisher.py\\", line 276, in publish",\n " result = mapply(obj,",\n " ^^^^^^^^^^^",\n "",\n " File \\"/app/lib/python3.11/site-packages/ZPublisher/mapply.py\\", line 85, in mapply",\n " return debug(object, args, context)",\n " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^",\n "",\n " File \\"/app/lib/python3.11/site-packages/ZPublisher/WSGIPublisher.py\\", line 68, in call_object",\n " return obj(*args)",\n " ^^^^^^^^^^",\n "",\n " File \\"/app/lib/python3.11/site-packages/plone/rest/service.py\\", line 22, in __call__",\n " return self.render()",\n " ^^^^^^^^^^^^^",\n "",\n " File \\"/app/lib/python3.11/site-packages/plone/restapi/services/__init__.py\\", line 19, in render",\n " content = self.reply()",\n " ^^^^^^^^^^^^",\n "",\n " File \\"/app/lib/python3.11/site-packages/plone/restapi/services/content/get.py\\", line 16, in reply",\n " return serializer(version=self.request.get(\\"version\\"))",\n " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",\n "",\n " File \\"/app/src/design.plone.contenttypes/src/design/plone/contenttypes/restapi/serializers/dxcontent.py\\", line 51, in __call__",\n " result = super(SerializeFolderToJson, self).__call__(",\n " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",\n "",\n " File \\"/app/src/design.plone.contenttypes/src/design/plone/contenttypes/patches/baseserializer.py\\", line 61, in design_italia_serialize_folder_to_json_call",\n " folder_metadata = super(SerializeFolderToJson, self).__call__(",\n " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",\n "",\n " File \\"/app/src/design.plone.contenttypes/src/design/plone/contenttypes/patches/baseserializer.py\\", line 46, in design_italia_serialize_to_json_call",\n " if title.startswith(PATH_SEPARATOR):",\n " ^^^^^^^^^^^^^^^^"\n ],\n "type": "AttributeError"\n}',
statusText: 'Internal Server Error',
statusCode: 500,
status: 500,
statusType: 5,
info: false,
ok: false,
redirect: false,
clientError: false,
serverError: true,
error: {
status: 500,
method: 'GET',
url: 'http://localhost:3000/++api++/novita/notizie/osservatorio-sul-turismo?expand=subsite',
},
accepted: false,
noContent: false,
badRequest: false,
unauthorized: false,
notAcceptable: false,
forbidden: false,
notFound: false,
headers: {
'cache-control': 'max-age=0, must-revalidate, private',
connection: 'close',
'content-length': '2457',
'content-type': 'application/json',
date: 'Tue, 14 Mar 2023 14:10:05 GMT',
expires: 'Sat, 16 Mar 2013 14:10:05 GMT',
server: 'waitress',
via: 'waitress',
'x-cache-operation': 'plone.app.caching.terseCaching',
'x-cache-rule': 'plone.content.dynamic',
'x-frame-options': 'SAMEORIGIN',
'x-ids-involved': '#47289573edbc4a5087eea97d01a6c8bc#',
'x-powered-by': 'Zope (www.zope.dev), Python (www.python.org)',
},
header: {
'cache-control': 'max-age=0, must-revalidate, private',
connection: 'close',
'content-length': '2457',
'content-type': 'application/json',
date: 'Tue, 14 Mar 2023 14:10:05 GMT',
expires: 'Sat, 16 Mar 2013 14:10:05 GMT',
server: 'waitress',
via: 'waitress',
'x-cache-operation': 'plone.app.caching.terseCaching',
'x-cache-rule': 'plone.content.dynamic',
'x-frame-options': 'SAMEORIGIN',
'x-ids-involved': '#47289573edbc4a5087eea97d01a6c8bc#',
'x-powered-by': 'Zope (www.zope.dev), Python (www.python.org)',
},
type: 'application/json',
links: {},
body: {
message: "'NoneType' object has no attribute 'startswith'",
traceback: [
'File "/app/lib/python3.11/site-packages/ZPublisher/WSGIPublisher.py", line 172, in transaction_pubevents',
' yield',
'',
' File "/app/lib/python3.11/site-packages/ZPublisher/WSGIPublisher.py", line 381, in publish_module',
' response = _publish(request, new_mod_info)',
' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^',
'',
' File "/app/lib/python3.11/site-packages/ZPublisher/WSGIPublisher.py", line 276, in publish',
' result = mapply(obj,',
' ^^^^^^^^^^^',
'',
' File "/app/lib/python3.11/site-packages/ZPublisher/mapply.py", line 85, in mapply',
' return debug(object, args, context)',
' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^',
'',
' File "/app/lib/python3.11/site-packages/ZPublisher/WSGIPublisher.py", line 68, in call_object',
' return obj(*args)',
' ^^^^^^^^^^',
'',
' File "/app/lib/python3.11/site-packages/plone/rest/service.py", line 22, in __call__',
' return self.render()',
' ^^^^^^^^^^^^^',
'',
' File "/app/lib/python3.11/site-packages/plone/restapi/services/__init__.py", line 19, in render',
' content = self.reply()',
' ^^^^^^^^^^^^',
'',
' File "/app/lib/python3.11/site-packages/plone/restapi/services/content/get.py", line 16, in reply',
' return serializer(version=self.request.get("version"))',
' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^',
'',
' File "/app/src/design.plone.contenttypes/src/design/plone/contenttypes/restapi/serializers/dxcontent.py", line 51, in __call__',
' result = super(SerializeFolderToJson, self).__call__(',
' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^',
'',
' File "/app/src/design.plone.contenttypes/src/design/plone/contenttypes/patches/baseserializer.py", line 61, in design_italia_serialize_folder_to_json_call',
' folder_metadata = super(SerializeFolderToJson, self).__call__(',
' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^',
'',
' File "/app/src/design.plone.contenttypes/src/design/plone/contenttypes/patches/baseserializer.py", line 46, in design_italia_serialize_to_json_call',
' if title.startswith(PATH_SEPARATOR):',
' ^^^^^^^^^^^^^^^^',