diff --git a/backend/news/+authomatic.internal b/backend/news/+authomatic.internal
new file mode 100644
index 0000000..065bbff
--- /dev/null
+++ b/backend/news/+authomatic.internal
@@ -0,0 +1 @@
+Atualiza `pas.plugins.authomatic` para versão 2.0.0. @ericof
diff --git a/backend/news/+techevent.feature b/backend/news/+techevent.feature
new file mode 100644
index 0000000..ddd80bb
--- /dev/null
+++ b/backend/news/+techevent.feature
@@ -0,0 +1 @@
+Adiciona e configura `collective.techevent`. @ericof
diff --git a/backend/pyproject.toml b/backend/pyproject.toml
index 7286260..2fc7245 100644
--- a/backend/pyproject.toml
+++ b/backend/pyproject.toml
@@ -30,8 +30,9 @@ dependencies = [
"plone.volto",
"plonegovbr.socialmedia>=2.0.0a5",
"collective.volto.formsupport",
- "pas.plugins.authomatic==2.0.0rc3",
+ "pas.plugins.authomatic==2.0.0",
"collective.honeypot",
+ "collective.techevent==1.0.0a5",
"plone.app.upgrade",
"plone.app.discussion",
]
@@ -104,6 +105,7 @@ constraint-dependencies = [
"collective.recipe.omelette==2.0.0",
"collective.recipe.template==2.2",
"collective.recipe.vscode==0.1.9",
+ "collective.techevent==1.0.0a5",
"collective.xmltestreport==2.0.2",
"collective.z3cform.datagridfield==3.0.3",
"colorama==0.4.6",
@@ -180,7 +182,7 @@ constraint-dependencies = [
"outcome==1.3.0post0",
"overrides==7.7.0",
"packaging==24.2",
- "pas.plugins.authomatic==2.0.0rc3",
+ "pas.plugins.authomatic==2.0.0",
"Paste==3.10.1",
"PasteDeploy==3.1.0",
"pdbpp==0.10.3",
@@ -296,8 +298,8 @@ constraint-dependencies = [
"plone.volto==5.0.4",
"plone.z3cform==2.0.4",
"Plone==6.1.1",
+ "plonegovbr.socialmedia>=2.0.0a5",
"plonetheme.barceloneta==3.2.3",
- "plonegovbr.socialmedia==2.0.0a5",
"pluggy==1.5.0",
"Products.BTreeFolder2==5.1",
"Products.CMFCore==3.7",
diff --git a/backend/src/pythonbrasil/site/dependencies.zcml b/backend/src/pythonbrasil/site/dependencies.zcml
index e4105b4..75e3f3b 100644
--- a/backend/src/pythonbrasil/site/dependencies.zcml
+++ b/backend/src/pythonbrasil/site/dependencies.zcml
@@ -7,4 +7,5 @@
+
diff --git a/backend/src/pythonbrasil/site/profiles/default/metadata.xml b/backend/src/pythonbrasil/site/profiles/default/metadata.xml
index bcd4155..c06b4f5 100644
--- a/backend/src/pythonbrasil/site/profiles/default/metadata.xml
+++ b/backend/src/pythonbrasil/site/profiles/default/metadata.xml
@@ -1,11 +1,12 @@
- 20250425001
+ 20250616001
profile-plone.volto:default
profile-plone.app.caching:default
profile-plone.app.caching:with-caching-proxy
profile-collective.volto.formsupport:default
profile-plonegovbr.socialmedia:default
+ profile-collective.techevent:default
diff --git a/backend/src/pythonbrasil/site/profiles/default/registry/plone.base.interfaces.controlpanel.INavigationSchema.xml b/backend/src/pythonbrasil/site/profiles/default/registry/plone.base.interfaces.controlpanel.INavigationSchema.xml
new file mode 100644
index 0000000..ec46b71
--- /dev/null
+++ b/backend/src/pythonbrasil/site/profiles/default/registry/plone.base.interfaces.controlpanel.INavigationSchema.xml
@@ -0,0 +1,17 @@
+
+
+
+
+ Link
+ Document
+ Schedule
+ SponsorsDB
+ SponsorLevel
+ Venue
+
+
+
diff --git a/backend/src/pythonbrasil/site/profiles/default/types.xml b/backend/src/pythonbrasil/site/profiles/default/types.xml
index af08c7c..ff566b6 100644
--- a/backend/src/pythonbrasil/site/profiles/default/types.xml
+++ b/backend/src/pythonbrasil/site/profiles/default/types.xml
@@ -2,13 +2,5 @@
-
-
-
+
diff --git a/backend/src/pythonbrasil/site/profiles/default/types/Plone_Site.xml b/backend/src/pythonbrasil/site/profiles/default/types/Plone_Site.xml
index 905e5ac..dfe5924 100644
--- a/backend/src/pythonbrasil/site/profiles/default/types/Plone_Site.xml
+++ b/backend/src/pythonbrasil/site/profiles/default/types/Plone_Site.xml
@@ -16,6 +16,7 @@
+
diff --git a/backend/src/pythonbrasil/site/profiles/default/types/Sponsor.xml b/backend/src/pythonbrasil/site/profiles/default/types/Sponsor.xml
deleted file mode 100644
index 789b508..0000000
--- a/backend/src/pythonbrasil/site/profiles/default/types/Sponsor.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
-
-
- Sponsor
- Conference Sponsor.
-
- False
- Sponsor
-
-
-
-
- False
- True
-
-
- pythonbrasil.site.AddSponsor
- pythonbrasil.site.content.sponsors.sponsor.Sponsor
-
-
- pythonbrasil.site.content.sponsors.sponsor.ISponsor
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/backend/src/pythonbrasil/site/profiles/default/types/SponsorLevel.xml b/backend/src/pythonbrasil/site/profiles/default/types/SponsorLevel.xml
deleted file mode 100644
index 3fd1d9e..0000000
--- a/backend/src/pythonbrasil/site/profiles/default/types/SponsorLevel.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-
-
-
-
- Sponsorship Level
- Package of sponsorship for the conference.
-
- False
- SponsorLevel
-
-
-
-
- False
- True
-
-
-
-
-
-
- pythonbrasil.site.AddSponsorLevel
- pythonbrasil.site.content.sponsors.sponsor_level.SponsorLevel
-
-
- pythonbrasil.site.content.sponsors.sponsor_level.ISponsorLevel
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/backend/src/pythonbrasil/site/profiles/default/types/SponsorsDB.xml b/backend/src/pythonbrasil/site/profiles/default/types/SponsorsDB.xml
deleted file mode 100644
index fef0d61..0000000
--- a/backend/src/pythonbrasil/site/profiles/default/types/SponsorsDB.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-
-
-
-
- Sponsors Database
- Conference Sponsoring information.
-
- False
- SponsorsDB
-
-
-
-
- True
- True
-
-
-
-
-
-
- pythonbrasil.site.AddSponsorsDB
- pythonbrasil.site.content.sponsors.sponsors_db.SponsorsDB
-
-
- pythonbrasil.site.content.sponsors.sponsors_db.ISponsorsDB
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/.gitignore b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/.gitignore
deleted file mode 100644
index e8184c2..0000000
--- a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-discussions.json
-portlets.json
-principals.json
-translations.json
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/.gitkeep b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/005d63f8dd7b41818ae3e5e2ba1f36d9/data.json b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/005d63f8dd7b41818ae3e5e2ba1f36d9/data.json
new file mode 100644
index 0000000..fe16df6
--- /dev/null
+++ b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/005d63f8dd7b41818ae3e5e2ba1f36d9/data.json
@@ -0,0 +1,155 @@
+{
+ "@id": "/patrocine/patrocine-agora",
+ "@type": "Document",
+ "UID": "005d63f8dd7b41818ae3e5e2ba1f36d9",
+ "allow_discussion": null,
+ "blocks": {
+ "314512cf-4b46-4f5e-ab4f-7cf5d1584a8e": {
+ "@type": "slate"
+ },
+ "734d2d7e-9130-4cd3-823b-44e8d70bd5c5": {
+ "@type": "levelComparisonBlock",
+ "tableTitle": "Compare",
+ "title": "Compare as cotas"
+ },
+ "9b200cf8-d854-429d-866b-4a5804cebbeb": {
+ "@type": "form",
+ "captcha": "honeypot",
+ "captcha_props": {
+ "id": "protected_1"
+ },
+ "configValidation": {
+ "required_fields": [
+ "default_to",
+ "default_from",
+ "default_subject",
+ "captcha"
+ ],
+ "schema_validation": [],
+ "valid": true
+ },
+ "default_from": "noreply@plone.org",
+ "default_subject": "[Patroc\u00ednio]",
+ "default_to": "eventos@python.org.br",
+ "lastChange": 1750192634521,
+ "send": true,
+ "send_email": true,
+ "store": true,
+ "subblocks": [
+ {
+ "description": "Seu nome",
+ "field_id": "1750192369628",
+ "field_type": "text",
+ "id": "1750192369628",
+ "label": "Nome",
+ "required": true
+ },
+ {
+ "description": "Nome da sua empresa./ organiza\u00e7\u00e3o",
+ "field_id": "1750192413975",
+ "field_type": "text",
+ "id": "1750192413975",
+ "label": "Organiza\u00e7\u00e3o",
+ "required": false
+ },
+ {
+ "description": "Informe um e-mail para contato",
+ "field_id": "1750192443474",
+ "field_type": "from",
+ "id": "1750192443474",
+ "label": "E-mail",
+ "required": false,
+ "use_as_bcc": false,
+ "use_as_reply_to": true
+ },
+ {
+ "description": "Cota que voc\u00ea teria interesse",
+ "field_id": "1750192477799",
+ "field_type": "single_choice",
+ "id": "1750192477799",
+ "input_values": [
+ "Platina",
+ "Ouro",
+ "Prata",
+ "Bronze"
+ ],
+ "label": "Cota",
+ "required": false
+ },
+ {
+ "field_id": "1750192531605",
+ "field_type": "textarea",
+ "id": "1750192531605",
+ "label": "Informa\u00e7\u00f5es adicionais",
+ "required": false
+ }
+ ],
+ "title": "Apoie a Python Brasil"
+ },
+ "c2382279-9684-4983-9061-7f63d61baab8": {
+ "@type": "title"
+ },
+ "c50b8f05-f800-45bc-810d-b3313322ce07": {
+ "@type": "description"
+ }
+ },
+ "blocks_layout": {
+ "items": [
+ "c2382279-9684-4983-9061-7f63d61baab8",
+ "c50b8f05-f800-45bc-810d-b3313322ce07",
+ "9b200cf8-d854-429d-866b-4a5804cebbeb",
+ "734d2d7e-9130-4cd3-823b-44e8d70bd5c5",
+ "314512cf-4b46-4f5e-ab4f-7cf5d1584a8e"
+ ]
+ },
+ "changeNote": "",
+ "contributors": [],
+ "created": "2025-06-17T20:36:47+00:00",
+ "creators": [
+ "admin"
+ ],
+ "description": "Garanta a sua vaga na Python Brasil 2025",
+ "effective": "2025-06-17T20:36:50+00:00",
+ "exclude_from_nav": false,
+ "expires": null,
+ "exportimport.constrains": {},
+ "exportimport.conversation": [],
+ "id": "patrocine-agora",
+ "is_folderish": true,
+ "language": "##DEFAULT##",
+ "layout": "document_view",
+ "lock": {
+ "locked": false,
+ "stealable": true
+ },
+ "modified": "2025-06-17T20:37:20+00:00",
+ "preview_caption": null,
+ "preview_image": null,
+ "review_state": "published",
+ "rights": "",
+ "subjects": [],
+ "title": "Patrocine agora",
+ "type_title": "Page",
+ "version": "current",
+ "versioning_enabled": true,
+ "workflow_history": {
+ "simple_publication_workflow": [
+ {
+ "action": null,
+ "actor": "admin",
+ "comments": "",
+ "review_state": "private",
+ "time": "2025-06-17T20:36:47+00:00"
+ },
+ {
+ "action": "publish",
+ "actor": "admin",
+ "comments": "",
+ "review_state": "published",
+ "time": "2025-06-17T20:36:50+00:00"
+ }
+ ]
+ },
+ "working_copy": null,
+ "working_copy_of": null
+}
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/092354832f23462aa392f34597ce4d39/data.json b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/092354832f23462aa392f34597ce4d39/data.json
new file mode 100644
index 0000000..71581aa
--- /dev/null
+++ b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/092354832f23462aa392f34597ce4d39/data.json
@@ -0,0 +1,69 @@
+{
+ "@id": "/patrocine/organizacao",
+ "@type": "SponsorLevel",
+ "UID": "092354832f23462aa392f34597ce4d39",
+ "allow_discussion": null,
+ "benefits": [],
+ "blocks": {
+ "7e2d7cc2-b727-486e-9249-2fb6499f1265": {
+ "@type": "description"
+ },
+ "b8d04143-0fe9-403e-aa26-3e049885a9a8": {
+ "@type": "sponsorLevelBlock",
+ "styles": {
+ "align:noprefix": {
+ "--block-alignment": "var(--align-center)"
+ }
+ }
+ },
+ "b9b149cd-1ec4-424b-87a8-4bff4518f549": {
+ "@type": "title"
+ }
+ },
+ "blocks_layout": {
+ "items": [
+ "b9b149cd-1ec4-424b-87a8-4bff4518f549",
+ "7e2d7cc2-b727-486e-9249-2fb6499f1265",
+ "b8d04143-0fe9-403e-aa26-3e049885a9a8"
+ ]
+ },
+ "color": "#3e3841",
+ "created": "2025-06-16T19:15:44+00:00",
+ "description": "A Python Brasil 2025 s\u00f3 \u00e9 poss\u00edvel gra\u00e7as a essas organiza\u00e7\u00f5es",
+ "exclude_from_nav": true,
+ "exportimport.constrains": {},
+ "exportimport.conversation": [],
+ "id": "organizacao",
+ "is_folderish": true,
+ "language": "##DEFAULT##",
+ "layout": "view",
+ "lock": {},
+ "modified": "2025-06-16T19:43:37+00:00",
+ "nav_title": null,
+ "preview_caption_link": null,
+ "price": null,
+ "review_state": "published",
+ "title": "Organiza\u00e7\u00e3o",
+ "type_title": "Sponsorship Level",
+ "version": "current",
+ "workflow_history": {
+ "simple_publication_workflow": [
+ {
+ "action": null,
+ "actor": "admin",
+ "comments": "",
+ "review_state": "private",
+ "time": "2025-06-16T19:15:44+00:00"
+ },
+ {
+ "action": "publish",
+ "actor": "admin",
+ "comments": "",
+ "review_state": "published",
+ "time": "2025-06-16T19:19:49+00:00"
+ }
+ ]
+ },
+ "working_copy": null,
+ "working_copy_of": null
+}
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/0b7437380fe441aa8673ceaa662e92c5/data.json b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/0b7437380fe441aa8673ceaa662e92c5/data.json
new file mode 100644
index 0000000..3c4fe2a
--- /dev/null
+++ b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/0b7437380fe441aa8673ceaa662e92c5/data.json
@@ -0,0 +1,285 @@
+{
+ "@id": "/patrocine/prata",
+ "@type": "SponsorLevel",
+ "UID": "0b7437380fe441aa8673ceaa662e92c5",
+ "allow_discussion": null,
+ "benefits": [
+ {
+ "@id": "d79e6a46-a680-4f9e-93ab-3720886f0ae9",
+ "code": {
+ "title": "Marca: Logo no local do evento",
+ "token": "62861964-c29e-4ea1-b139-90c50884a541"
+ },
+ "id": "d79e6a46-a680-4f9e-93ab-3720886f0ae9",
+ "title": "Marca: Logo no local do evento",
+ "value": null
+ },
+ {
+ "@id": "c3edb968-bed1-4e5a-bfe7-93666f3630f6",
+ "code": {
+ "title": "Digital: Post personalizado em redes sociais",
+ "token": "2f9fda0a-32f9-47a0-9ca6-1b6c20caf46a"
+ },
+ "id": "c3edb968-bed1-4e5a-bfe7-93666f3630f6",
+ "title": "Digital: Post personalizado em redes sociais",
+ "value": "1"
+ },
+ {
+ "@id": "0b39a013-4afa-40aa-a04b-f63c23a6a629",
+ "code": {
+ "title": "Digital: Post agradecimento em redes sociais",
+ "token": "b3c20966-701e-44f2-af8c-9436fd78aff7"
+ },
+ "id": "0b39a013-4afa-40aa-a04b-f63c23a6a629",
+ "title": "Digital: Post agradecimento em redes sociais",
+ "value": null
+ },
+ {
+ "@id": "9b0c64c2-1dbf-4eeb-9d93-7de4bd09458a",
+ "code": {
+ "title": "Intera\u00e7\u00e3o: Palco principal",
+ "token": "5c18f964-94bf-407c-914b-83cc0998d6d9"
+ },
+ "id": "9b0c64c2-1dbf-4eeb-9d93-7de4bd09458a",
+ "title": "Intera\u00e7\u00e3o: Palco principal",
+ "value": "1 minuto"
+ },
+ {
+ "@id": "b74e0b64-d658-4594-9570-7b2ab590f342",
+ "code": {
+ "title": "Intera\u00e7\u00e3o: Kit do participante",
+ "token": "f01b8239-31ff-40fd-9b66-b3c655a2bd5c"
+ },
+ "id": "b74e0b64-d658-4594-9570-7b2ab590f342",
+ "title": "Intera\u00e7\u00e3o: Kit do participante",
+ "value": null
+ },
+ {
+ "@id": "f0113f7b-8085-4735-82b1-c90d56236e89",
+ "code": {
+ "title": "Ingressos: Inclusos",
+ "token": "9d3be2f0-e191-49b0-85a8-ac3b05519b45"
+ },
+ "id": "f0113f7b-8085-4735-82b1-c90d56236e89",
+ "title": "Ingressos: Inclusos",
+ "value": "4"
+ },
+ {
+ "@id": "93e17b45-850b-43fc-b1c5-da15dc137e1e",
+ "code": {
+ "title": "Ingressos: Desconto",
+ "token": "57c3f9de-d97e-4d47-abae-f6e2318c826a"
+ },
+ "id": "93e17b45-850b-43fc-b1c5-da15dc137e1e",
+ "title": "Ingressos: Desconto",
+ "value": "20%"
+ }
+ ],
+ "blocks": {
+ "3f470053-30e0-41ee-a5c9-bd44f6fbf685": {
+ "@type": "sponsorLevelBlock",
+ "displayCTA": true,
+ "href": [
+ {
+ "@id": "../../resolveuid/005d63f8dd7b41818ae3e5e2ba1f36d9",
+ "@type": "Document",
+ "Description": "Garanta a sua vaga na Python Brasil 2025",
+ "Title": "Patrocine agora",
+ "hasPreviewImage": null,
+ "head_title": null,
+ "image_field": "",
+ "title": "Patrocine agora"
+ }
+ ],
+ "label": "Patrocine!",
+ "styles": {
+ "align:noprefix": {
+ "--block-alignment": "var(--align-center)"
+ }
+ },
+ "title": "Seja o primeiro"
+ },
+ "4118a227-ff45-48ff-93f7-bffed2ae774e": {
+ "@type": "title"
+ },
+ "63d31026-c7ab-43a7-be82-f0fd5f766505": {
+ "@type": "accordion",
+ "collapsed": false,
+ "data": {
+ "blocks": {
+ "24ffd234-53b5-4948-ae79-1422f61c1474": {
+ "@type": "accordionPanel",
+ "blocks": {
+ "21d9e0d4-5484-4c04-893e-1ac83f69d8a8": {
+ "@type": "slate",
+ "plaintext": "Sua logo aparecer\u00e1 em toda identidade visual no local do evento: banners, pain\u00e9is de foto, salas de palestras, v\u00eddeos exibidos no intervalos de atividades!",
+ "value": [
+ {
+ "children": [
+ {
+ "text": "Sua logo aparecer\u00e1 em toda identidade visual no local do evento: banners, pain\u00e9is de foto, salas de palestras, v\u00eddeos exibidos no intervalos de atividades!"
+ }
+ ],
+ "type": "p"
+ }
+ ]
+ },
+ "76dcf01e-1f95-4a35-83fc-31421e7f6741": {
+ "@type": "slate",
+ "plaintext": "N\u00e3o tem como passar despercebido!",
+ "styles": {},
+ "theme": "default",
+ "value": [
+ {
+ "children": [
+ {
+ "text": "N\u00e3o tem como passar despercebido!"
+ }
+ ],
+ "type": "p"
+ }
+ ]
+ }
+ },
+ "blocks_layout": {
+ "items": [
+ "21d9e0d4-5484-4c04-893e-1ac83f69d8a8",
+ "76dcf01e-1f95-4a35-83fc-31421e7f6741"
+ ]
+ },
+ "title": "Presen\u00e7a marcante"
+ },
+ "49f25694-881e-4102-a036-a16159690900": {
+ "@type": "accordionPanel",
+ "blocks": {
+ "b042282e-6cfe-4f3b-baeb-c5729d602468": {
+ "@type": "slate",
+ "plaintext": "Al\u00e9m de sua presen\u00e7a no espa\u00e7o f\u00edsico, sua marca ser\u00e1 exibida nos intervalos das lives, estar\u00e1 no site do evento e ser\u00e1 divulgada nos posts de apresenta\u00e7\u00e3o e agradecimento de patrocinador!",
+ "styles": {},
+ "theme": "default",
+ "value": [
+ {
+ "children": [
+ {
+ "text": "Al\u00e9m de sua presen\u00e7a no espa\u00e7o f\u00edsico, sua marca ser\u00e1 exibida nos intervalos das lives, estar\u00e1 no site do evento e ser\u00e1 divulgada nos posts de apresenta\u00e7\u00e3o e agradecimento de patrocinador!"
+ }
+ ],
+ "type": "p"
+ }
+ ]
+ }
+ },
+ "blocks_layout": {
+ "items": [
+ "b042282e-6cfe-4f3b-baeb-c5729d602468"
+ ]
+ },
+ "title": "Um grande alcance"
+ },
+ "513b0dbf-b5ed-4b07-bca5-14946a0d25c4": {
+ "@type": "accordionPanel",
+ "blocks": {
+ "ed2fc39a-e4ba-4655-b952-adf0969f75ed": {
+ "@type": "slate",
+ "plaintext": "Poder\u00e1 ter um post pr\u00f3prio nas nossas redes sociais com conte\u00fado enviado por voc\u00eas!",
+ "styles": {},
+ "theme": "default",
+ "value": [
+ {
+ "children": [
+ {
+ "text": "Poder\u00e1 ter um post pr\u00f3prio nas nossas redes sociais com conte\u00fado enviado por voc\u00eas!"
+ }
+ ],
+ "type": "p"
+ }
+ ]
+ }
+ },
+ "blocks_layout": {
+ "items": [
+ "ed2fc39a-e4ba-4655-b952-adf0969f75ed"
+ ]
+ },
+ "title": "Interagindo com a comunidade"
+ },
+ "642211c7-c318-4a76-9cca-4d998f0e790c": {
+ "@type": "accordionPanel",
+ "blocks": {
+ "0957ef69-8300-45f8-ba00-47a8e4f832bc": {
+ "@type": "levelBenefitsBlock",
+ "tableTitle": "Compare",
+ "title": " "
+ }
+ },
+ "blocks_layout": {
+ "items": [
+ "0957ef69-8300-45f8-ba00-47a8e4f832bc"
+ ]
+ },
+ "title": "Todos os Benef\u00edcios"
+ }
+ },
+ "blocks_layout": {
+ "items": [
+ "24ffd234-53b5-4948-ae79-1422f61c1474",
+ "49f25694-881e-4102-a036-a16159690900",
+ "513b0dbf-b5ed-4b07-bca5-14946a0d25c4",
+ "642211c7-c318-4a76-9cca-4d998f0e790c"
+ ]
+ }
+ },
+ "filtering": false,
+ "non_exclusive": false,
+ "right_arrows": true,
+ "styles": {},
+ "theme": "red"
+ }
+ },
+ "blocks_layout": {
+ "items": [
+ "4118a227-ff45-48ff-93f7-bffed2ae774e",
+ "63d31026-c7ab-43a7-be82-f0fd5f766505",
+ "3f470053-30e0-41ee-a5c9-bd44f6fbf685"
+ ]
+ },
+ "color": "#000000",
+ "created": "2025-06-16T19:13:53+00:00",
+ "description": "Presen\u00e7a marcante",
+ "exclude_from_nav": false,
+ "exportimport.constrains": {},
+ "exportimport.conversation": [],
+ "id": "prata",
+ "is_folderish": true,
+ "language": "##DEFAULT##",
+ "layout": "view",
+ "lock": {},
+ "modified": "2025-06-17T20:38:56+00:00",
+ "nav_title": null,
+ "preview_caption_link": null,
+ "price": "R$20.000,00",
+ "review_state": "published",
+ "title": "Prata",
+ "type_title": "Sponsorship Level",
+ "version": "current",
+ "workflow_history": {
+ "simple_publication_workflow": [
+ {
+ "action": null,
+ "actor": "admin",
+ "comments": "",
+ "review_state": "private",
+ "time": "2025-06-16T19:13:53+00:00"
+ },
+ {
+ "action": "publish",
+ "actor": "admin",
+ "comments": "",
+ "review_state": "published",
+ "time": "2025-06-16T19:20:41+00:00"
+ }
+ ]
+ },
+ "working_copy": null,
+ "working_copy_of": null
+}
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/17000670d687482992d5a85fdb1f82e6/data.json b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/17000670d687482992d5a85fdb1f82e6/data.json
new file mode 100644
index 0000000..b7ac178
--- /dev/null
+++ b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/17000670d687482992d5a85fdb1f82e6/data.json
@@ -0,0 +1,341 @@
+{
+ "@id": "/patrocine",
+ "@type": "SponsorsDB",
+ "UID": "17000670d687482992d5a85fdb1f82e6",
+ "allow_discussion": null,
+ "benefits": [
+ {
+ "description": "V\u00eddeo institucional apresentado na abertura / encerramento (1m30s)",
+ "id": "3b1a1e54-ea33-4b5e-a823-4c1f21bba321",
+ "title": "Marca: V\u00eddeo abertura / encerramento"
+ },
+ {
+ "description": "Logo no crach\u00e1",
+ "id": "f74e57ce-5307-48f8-976f-704912947eea",
+ "title": "Marca: Crach\u00e1"
+ },
+ {
+ "description": "V\u00eddeo institucional apresentado na abertura dos keynotes",
+ "id": "0480a40f-de48-4706-8ed4-b2066d82dcb7",
+ "title": "Marca: V\u00eddeo keynotes"
+ },
+ {
+ "description": "Logo nos elementos de identidade visual f\u00edsicos (banners, pain\u00e9is, salas de palestras)",
+ "id": "62861964-c29e-4ea1-b139-90c50884a541",
+ "title": "Marca: Logo no local do evento"
+ },
+ {
+ "description": "Logo com destaque no site",
+ "id": "50f0be38-488a-4744-8bd1-7e90ebfbb681",
+ "title": "Digital: Destaque no site"
+ },
+ {
+ "description": "Logo nos conte\u00fados digitais do evento (transmiss\u00e3o ao vivo, grava\u00e7\u00f5es no YouTube)",
+ "id": "83700ec1-4229-4467-aacc-03a2e3de17eb",
+ "title": "Digital: Logo em v\u00eddeos"
+ },
+ {
+ "description": "Posts em redes sociais com conte\u00fado enviado pela empresa",
+ "id": "2f9fda0a-32f9-47a0-9ca6-1b6c20caf46a",
+ "title": "Digital: Post personalizado em redes sociais"
+ },
+ {
+ "description": "Posts em redes sociais com conte\u00fado padr\u00e3o de apresenta\u00e7\u00e3o e agradecimento",
+ "id": "b3c20966-701e-44f2-af8c-9436fd78aff7",
+ "title": "Digital: Post agradecimento em redes sociais"
+ },
+ {
+ "description": "Logo no site do evento (diferencia\u00e7\u00e3o de tamanhos por cota)",
+ "id": "750f4e1e-17ea-44f2-8af2-655d99e28a88",
+ "title": "Digital: Logo no site"
+ },
+ {
+ "description": "Estande de 3m x 3m com montagem inclusa",
+ "id": "fbb995d8-a03f-471a-ae93-5da5db6dd3e6",
+ "title": "Intera\u00e7\u00e3o: Estande"
+ },
+ {
+ "description": "Espa\u00e7o reservado na programa\u00e7\u00e3o para atividade (palestra/tutorial) avaliado pela org",
+ "id": "b2193c1b-7bbf-4f27-b495-f4a76793b791",
+ "title": "Intera\u00e7\u00e3o: Atividades"
+ },
+ {
+ "description": "Envio de e-mail para os participantes (vagas, an\u00fancio de produtos)",
+ "id": "162d91e1-1d01-40a0-952f-da40f9c7f9fb",
+ "title": "Intera\u00e7\u00e3o: E-mail"
+ },
+ {
+ "description": "Tempo para apresenta\u00e7\u00e3o com participantes no palco principal",
+ "id": "5c18f964-94bf-407c-914b-83cc0998d6d9",
+ "title": "Intera\u00e7\u00e3o: Palco principal"
+ },
+ {
+ "description": "Adicionar brindes ou produtos nas sacolas dos participantes",
+ "id": "f01b8239-31ff-40fd-9b66-b3c655a2bd5c",
+ "title": "Intera\u00e7\u00e3o: Kit do participante"
+ },
+ {
+ "description": "Ingressos cortesia inclusos na cota",
+ "id": "9d3be2f0-e191-49b0-85a8-ac3b05519b45",
+ "title": "Ingressos: Inclusos"
+ },
+ {
+ "description": "Desconto para ingressos inteiros do lote vigente",
+ "id": "57c3f9de-d97e-4d47-abae-f6e2318c826a",
+ "title": "Ingressos: Desconto"
+ }
+ ],
+ "blocks": {
+ "0f0131a3-a98d-429e-9d6b-a1002be4f529": {
+ "@type": "title"
+ },
+ "639d7a12-bbed-47c7-9cfe-ebd652f3e6c5": {
+ "@type": "gridBlock",
+ "blocks": {
+ "7e44a1dc-8fbb-4623-80f1-894ebf584f5a": {
+ "@type": "teaser",
+ "description": "Presen\u00e7a marcante",
+ "head_title": null,
+ "href": [
+ {
+ "@id": "../resolveuid/0b7437380fe441aa8673ceaa662e92c5",
+ "@type": "SponsorLevel",
+ "Description": "Presen\u00e7a marcante",
+ "Subject": [],
+ "Title": "Prata",
+ "description": "Presen\u00e7a marcante",
+ "effective": "2025-06-16T19:20:41+00:00",
+ "end": null,
+ "getObjSize": "0 KB",
+ "hasPreviewImage": false,
+ "head_title": null,
+ "image_field": "preview_image_link",
+ "mime_type": "text/plain",
+ "nav_title": null,
+ "review_state": "published",
+ "start": null,
+ "title": "Prata",
+ "type_title": "Cota de Patroc\u00ednio"
+ }
+ ],
+ "overwrite": false,
+ "styles": {
+ "align": "center"
+ },
+ "theme": "default",
+ "title": "Prata"
+ },
+ "a22d5467-359e-441a-9d2e-b3ef2195a6a9": {
+ "@type": "teaser",
+ "description": "Conquistando espa\u00e7o",
+ "head_title": null,
+ "href": [
+ {
+ "@id": "../resolveuid/922ba8ede6da49dc850dc25a7e5061e2",
+ "@type": "SponsorLevel",
+ "Description": "",
+ "Subject": [],
+ "Title": "Bronze",
+ "description": "Conquistando espa\u00e7o",
+ "effective": "2025-06-16T19:20:41+00:00",
+ "end": null,
+ "getObjSize": "0 KB",
+ "getRemoteUrl": null,
+ "hasPreviewImage": null,
+ "head_title": null,
+ "image_field": "preview_image_link",
+ "mime_type": "text/plain",
+ "nav_title": null,
+ "review_state": "published",
+ "start": null,
+ "title": "Bronze",
+ "type_title": "Cota de Patroc\u00ednio"
+ }
+ ],
+ "overwrite": false,
+ "styles": {
+ "align": "center"
+ },
+ "theme": "default",
+ "title": "Bronze"
+ }
+ },
+ "blocks_layout": {
+ "items": [
+ "7e44a1dc-8fbb-4623-80f1-894ebf584f5a",
+ "a22d5467-359e-441a-9d2e-b3ef2195a6a9"
+ ]
+ },
+ "styles": {},
+ "theme": "grey"
+ },
+ "6fab02e8-5ef5-4fe5-a038-264682e9e84b": {
+ "@type": "sponsorsShowcaseBlock",
+ "styles": {
+ "align:noprefix": {
+ "--block-alignment": "var(--align-center)"
+ }
+ },
+ "title": ""
+ },
+ "9d2ff0dc-670b-464d-9a3b-2e75c17ad07b": {
+ "@type": "gridBlock",
+ "blocks": {
+ "43e9c83b-78ad-43d1-a95e-d647a63fb734": {
+ "@type": "teaser",
+ "description": "Sua marca em destaque!",
+ "head_title": null,
+ "href": [
+ {
+ "@id": "../resolveuid/de070eedcb854959a6a4be4d87c083e3",
+ "@type": "SponsorLevel",
+ "Description": "Sua marca em destaque!",
+ "Subject": [],
+ "Title": "Platina",
+ "description": "Sua marca em destaque!",
+ "effective": "2025-06-16T19:20:41+00:00",
+ "end": null,
+ "getObjSize": "0 KB",
+ "getRemoteUrl": null,
+ "hasPreviewImage": null,
+ "head_title": null,
+ "image_field": "preview_image_link",
+ "mime_type": "text/plain",
+ "nav_title": null,
+ "review_state": "published",
+ "start": null,
+ "title": "Platina",
+ "type_title": "Cota de Patroc\u00ednio"
+ }
+ ],
+ "overwrite": false,
+ "styles": {
+ "align": "center"
+ },
+ "theme": "default",
+ "title": "Platina"
+ },
+ "aeb14b8a-9afe-4723-9b2d-928851420ce9": {
+ "@type": "teaser",
+ "description": "Todos os olhos em voc\u00ea",
+ "head_title": null,
+ "href": [
+ {
+ "@id": "../resolveuid/cc193578bdf2480c8274e682b06dbfb9",
+ "@type": "SponsorLevel",
+ "Description": "Todos os olhos em voc\u00ea",
+ "Subject": [],
+ "Title": "Ouro",
+ "description": "Todos os olhos em voc\u00ea",
+ "effective": "2025-06-16T19:20:41+00:00",
+ "end": null,
+ "getObjSize": "0 KB",
+ "hasPreviewImage": false,
+ "head_title": null,
+ "image_field": "preview_image_link",
+ "mime_type": "text/plain",
+ "nav_title": null,
+ "review_state": "published",
+ "start": null,
+ "title": "Ouro",
+ "type_title": "Cota de Patroc\u00ednio"
+ }
+ ],
+ "overwrite": false,
+ "styles": {
+ "align": "center"
+ },
+ "theme": "default",
+ "title": "Ouro"
+ }
+ },
+ "blocks_layout": {
+ "items": [
+ "43e9c83b-78ad-43d1-a95e-d647a63fb734",
+ "aeb14b8a-9afe-4723-9b2d-928851420ce9"
+ ]
+ },
+ "headline": "Cotas de patroc\u00ednio",
+ "styles": {},
+ "theme": "grey"
+ },
+ "a7e78dfc-7a34-40fb-a6f4-13509b2b9177": {
+ "@type": "gridBlock",
+ "blocks": {
+ "9a1b36c6-57bd-406d-9982-3f8a16929fdc": {
+ "@type": "__button",
+ "href": [
+ {
+ "@id": "https://www.canva.com/design/DAGXPOZVdD0/9BKeLRxlSyHevEtM1TXDJQ/view?utm_content=DAGXPOZVdD0&utm_campaign=designshare&utm_medium=link2&utm_source=uniquelinks&utlId=h6c1ffd66be",
+ "title": "www.canva.com/design/DAGXPOZVdD0/9BKeLRxlSyHevEtM1TXDJQ/view?utm_content=DAGXPOZVdD0&utm_campaign=designshare&utm_medium=link2&utm_source=uniquelinks&utlId=h6c1ffd66be"
+ }
+ ],
+ "inneralign": "center",
+ "styles": {
+ "blockWidth:noprefix": {
+ "--block-width": "var(--narrow-container-width)"
+ }
+ },
+ "title": "Plano de patroc\u00ednio"
+ }
+ },
+ "blocks_layout": {
+ "items": [
+ "9a1b36c6-57bd-406d-9982-3f8a16929fdc"
+ ]
+ },
+ "styles": {},
+ "theme": "default"
+ },
+ "afc606a1-3620-46d1-8ad9-367ad7531ced": {
+ "@type": "description"
+ }
+ },
+ "blocks_layout": {
+ "items": [
+ "0f0131a3-a98d-429e-9d6b-a1002be4f529",
+ "afc606a1-3620-46d1-8ad9-367ad7531ced",
+ "9d2ff0dc-670b-464d-9a3b-2e75c17ad07b",
+ "639d7a12-bbed-47c7-9cfe-ebd652f3e6c5",
+ "a7e78dfc-7a34-40fb-a6f4-13509b2b9177",
+ "6fab02e8-5ef5-4fe5-a038-264682e9e84b"
+ ]
+ },
+ "created": "2025-06-16T19:06:04+00:00",
+ "description": "Sua organiza\u00e7\u00e3o pode ser parte do maior evento de Python do Brasil",
+ "exclude_from_nav": false,
+ "exportimport.constrains": {},
+ "exportimport.conversation": [],
+ "id": "patrocine",
+ "is_folderish": true,
+ "language": "##DEFAULT##",
+ "layout": "view",
+ "lock": {},
+ "modified": "2025-06-17T20:37:40+00:00",
+ "nav_title": null,
+ "preview_caption_link": null,
+ "review_state": "published",
+ "title": "Patrocine",
+ "type_title": "Sponsors Database",
+ "version": "current",
+ "workflow_history": {
+ "simple_publication_workflow": [
+ {
+ "action": null,
+ "actor": "admin",
+ "comments": "",
+ "review_state": "private",
+ "time": "2025-06-16T19:06:04+00:00"
+ },
+ {
+ "action": "publish",
+ "actor": "admin",
+ "comments": "",
+ "review_state": "published",
+ "time": "2025-06-16T19:19:55+00:00"
+ }
+ ]
+ },
+ "working_copy": null,
+ "working_copy_of": null
+}
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/24689ede20f346c09ce7d50b68ff893b/data.json b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/24689ede20f346c09ce7d50b68ff893b/data.json
index 314d866..aea65f3 100644
--- a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/24689ede20f346c09ce7d50b68ff893b/data.json
+++ b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/24689ede20f346c09ce7d50b68ff893b/data.json
@@ -12,6 +12,128 @@
"collapsed": false,
"data": {
"blocks": {
+ "02fbff2e-73de-46d7-8c78-0c49c6276397": {
+ "@type": "accordionPanel",
+ "blocks": {
+ "7a3ad61c-e190-446e-a5b2-263a3ac81d53": {
+ "@type": "slate",
+ "plaintext": "Como temos tr\u00eas atividades principais diferentes ao longo dos 7 dias do evento, cada uma delas acontece em um local diferente. Seguem os locais de cada atividade:",
+ "styles": {},
+ "value": [
+ {
+ "children": [
+ {
+ "text": "Como temos tr\u00eas atividades principais diferentes ao longo dos 7 dias do evento, cada uma delas acontece em um local diferente. Seguem os locais de cada atividade:"
+ }
+ ],
+ "type": "p"
+ }
+ ]
+ },
+ "e9972544-5126-45e8-a5ca-9ba10ffe5f46": {
+ "@type": "slate",
+ "plaintext": "Dias 21 a 23 de outubro (tutoriais) - Local a definir Dias 24 a 26 de outubro (evento principal) - Centro de Eventos S\u00e3o Lu\u00eds, R. Lu\u00eds Coelho, 323 - Consola\u00e7\u00e3o Dia 27 de outubro (sprints) - Local a definir ",
+ "styles": {},
+ "value": [
+ {
+ "children": [
+ {
+ "children": [
+ {
+ "text": "Dias 21 a 23 de outubro (tutoriais) - "
+ },
+ {
+ "children": [
+ {
+ "text": "Local a definir"
+ }
+ ],
+ "type": "strong"
+ },
+ {
+ "text": ""
+ }
+ ],
+ "type": "li"
+ },
+ {
+ "children": [
+ {
+ "text": "Dias 24 a 26 de outubro (evento principal) - "
+ },
+ {
+ "children": [
+ {
+ "text": "Centro de Eventos S\u00e3o Lu\u00eds, R. Lu\u00eds Coelho, 323 - Consola\u00e7\u00e3o"
+ }
+ ],
+ "type": "strong"
+ },
+ {
+ "text": ""
+ }
+ ],
+ "type": "li"
+ },
+ {
+ "children": [
+ {
+ "text": "Dia 27 de outubro (sprints) - "
+ },
+ {
+ "children": [
+ {
+ "text": "Local a definir"
+ }
+ ],
+ "type": "strong"
+ },
+ {
+ "text": ""
+ }
+ ],
+ "type": "li"
+ }
+ ],
+ "type": "ol"
+ }
+ ]
+ }
+ },
+ "blocks_layout": {
+ "items": [
+ "7a3ad61c-e190-446e-a5b2-263a3ac81d53",
+ "e9972544-5126-45e8-a5ca-9ba10ffe5f46"
+ ]
+ },
+ "title": "Em que local de S\u00e3o Paulo acontecer\u00e1 o evento?"
+ },
+ "296f77a1-c5e6-48cf-9ebf-0ad01f1d5115": {
+ "@type": "accordionPanel",
+ "blocks": {
+ "e77dbfe0-7790-4517-abc0-9899996dd81c": {
+ "@type": "slate",
+ "plaintext": "A Python Brasil 2025 acontecer\u00e1 entre os dias 21 a 27 de outubro de 2025.",
+ "styles": {},
+ "value": [
+ {
+ "children": [
+ {
+ "text": "A Python Brasil 2025 acontecer\u00e1 entre os dias 21 a 27 de outubro de 2025."
+ }
+ ],
+ "type": "p"
+ }
+ ]
+ }
+ },
+ "blocks_layout": {
+ "items": [
+ "e77dbfe0-7790-4517-abc0-9899996dd81c"
+ ]
+ },
+ "title": "Quando acontecer\u00e1 o evento?"
+ },
"32a3a802-7461-4ca8-a5d8-e3550ca73407": {
"@type": "accordionPanel",
"blocks": {
@@ -38,36 +160,181 @@
},
"title": "Quem organiza a Python Brasil?"
},
+ "5d225a03-9cd3-49c8-92d6-5b7db8ea0710": {
+ "@type": "accordionPanel",
+ "blocks": {
+ "8339f5f3-730e-4f60-9082-b04b52c74bd2": {
+ "@type": "slate",
+ "plaintext": "Cada um dos tr\u00eas tipos de atividades da Python Brasil t\u00eam uma forma de participar diferente:",
+ "styles": {},
+ "value": [
+ {
+ "children": [
+ {
+ "text": "Cada um dos tr\u00eas tipos de atividades da Python Brasil t\u00eam uma forma de participar diferente:"
+ }
+ ],
+ "type": "p"
+ }
+ ]
+ },
+ "94a88e6c-36d8-4ef3-bd34-ae34d0e19cb4": {
+ "@type": "slate",
+ "plaintext": "Os tutoriais s\u00e3o atividades gratuitas que qualquer pessoa pode participar, quando tivermos a grade fechada e estiver mais pr\u00f3ximo da data do evento divulgaremos a abertura dos ingressos para as pessoas participarem. Para ter acesso aos tr\u00eas dias do evento principal \u00e9 preciso comprar o ingresso na plataforma eventbrite por meio desse link . As sprints s\u00e3o atividades gratuitas que qualquer pessoa pode s\u00f3 chegar e participar, sem precisar adquirir ingresso, entretanto \u00e9 poss\u00edvel que o espa\u00e7o dedicado para essa atividade comporte um n\u00famero limitado de pessoas.",
+ "styles": {},
+ "value": [
+ {
+ "children": [
+ {
+ "children": [
+ {
+ "text": "Os tutoriais s\u00e3o atividades gratuitas que qualquer pessoa pode participar, quando tivermos a grade fechada e estiver mais pr\u00f3ximo da data do evento divulgaremos a abertura dos ingressos para as pessoas participarem."
+ }
+ ],
+ "type": "li"
+ },
+ {
+ "children": [
+ {
+ "text": "Para ter acesso aos tr\u00eas dias do evento principal \u00e9 preciso comprar o ingresso na plataforma eventbrite por meio desse "
+ },
+ {
+ "children": [
+ {
+ "text": "link"
+ }
+ ],
+ "data": {
+ "url": "https://www.eventbrite.com.br/e/python-brasil-2025-tickets-1051606111187"
+ },
+ "type": "link"
+ },
+ {
+ "text": "."
+ }
+ ],
+ "type": "li"
+ },
+ {
+ "children": [
+ {
+ "text": "As sprints s\u00e3o atividades gratuitas que qualquer pessoa pode s\u00f3 chegar e participar, sem precisar adquirir ingresso, entretanto \u00e9 poss\u00edvel que o espa\u00e7o dedicado para essa atividade comporte um n\u00famero limitado de pessoas."
+ }
+ ],
+ "type": "li"
+ }
+ ],
+ "type": "ol"
+ }
+ ]
+ }
+ },
+ "blocks_layout": {
+ "items": [
+ "8339f5f3-730e-4f60-9082-b04b52c74bd2",
+ "94a88e6c-36d8-4ef3-bd34-ae34d0e19cb4"
+ ]
+ },
+ "title": "Como participo do evento?"
+ },
"dc3ec1b7-96f0-44ef-9772-4f66d778c215": {
+ "@type": "accordionPanel",
"blocks": {
+ "01c92162-683e-4776-babf-03c00f44489b": {
+ "@type": "slate",
+ "plaintext": "Entre os dias 21 a 23 teremos os tutoriais. Tutoriais s\u00e3o mini cursos pr\u00e1ticos ministrados pela comunidade Entre os dias 24 a 26 teremos o evento principal com palestras dadas pela comunidade No dia 27 teremos as sprints. Sprints s\u00e3o atividades em conjunto para a contribui\u00e7\u00e3o em reposit\u00f3rios de c\u00f3digo aberto.",
+ "styles": {},
+ "value": [
+ {
+ "children": [
+ {
+ "children": [
+ {
+ "text": "Entre os dias 21 a 23 teremos os tutoriais. Tutoriais s\u00e3o mini cursos pr\u00e1ticos ministrados pela comunidade"
+ }
+ ],
+ "type": "li"
+ },
+ {
+ "children": [
+ {
+ "text": "Entre os dias 24 a 26 teremos o evento principal com palestras dadas pela comunidade"
+ }
+ ],
+ "type": "li"
+ },
+ {
+ "children": [
+ {
+ "text": "No dia 27 teremos as sprints. Sprints s\u00e3o atividades em conjunto para a contribui\u00e7\u00e3o em reposit\u00f3rios de c\u00f3digo aberto."
+ }
+ ],
+ "type": "li"
+ }
+ ],
+ "type": "ol"
+ }
+ ]
+ },
"31f0d625-b078-422c-8d68-eb354ba36505": {
- "@type": "slate"
+ "@type": "slate",
+ "plaintext": "Siim, o evento acontecer\u00e1 entre os dias 21 a 27 de outubro de 2025, mas teremos atividades diferentes em cada dia:",
+ "styles": {},
+ "value": [
+ {
+ "children": [
+ {
+ "text": "Siim, o evento acontecer\u00e1 entre os dias 21 a 27 de outubro de 2025, mas teremos atividades diferentes em cada dia:"
+ }
+ ],
+ "type": "p"
+ }
+ ]
}
},
"blocks_layout": {
"items": [
- "31f0d625-b078-422c-8d68-eb354ba36505"
+ "31f0d625-b078-422c-8d68-eb354ba36505",
+ "01c92162-683e-4776-babf-03c00f44489b"
]
- }
+ },
+ "title": "O evento dura mesmo 7 dias?"
},
"f84b13e8-1136-4510-9000-d0b1c4cf7290": {
+ "@type": "accordionPanel",
"blocks": {
"149b5491-5191-4a42-88a7-db38134b40f0": {
- "@type": "slate"
+ "@type": "slate",
+ "plaintext": "Keynotes s\u00e3o pessoas convidadas pela organiza\u00e7\u00e3o do evento para palestrar em um hor\u00e1rio que a \u00fanica atividade acontecendo \u00e9 essa palestra.\nNormalmente s\u00e3o pessoas relevantes para a comunidade python seja t\u00e9cnicamente ou n\u00e3o.",
+ "styles": {},
+ "value": [
+ {
+ "children": [
+ {
+ "text": "Keynotes s\u00e3o pessoas convidadas pela organiza\u00e7\u00e3o do evento para palestrar em um hor\u00e1rio que a \u00fanica atividade acontecendo \u00e9 essa palestra.\nNormalmente s\u00e3o pessoas relevantes para a comunidade python seja t\u00e9cnicamente ou n\u00e3o."
+ }
+ ],
+ "type": "p"
+ }
+ ]
}
},
"blocks_layout": {
"items": [
"149b5491-5191-4a42-88a7-db38134b40f0"
]
- }
+ },
+ "title": "O que s\u00e3o keynotes?"
}
},
"blocks_layout": {
"items": [
+ "296f77a1-c5e6-48cf-9ebf-0ad01f1d5115",
+ "dc3ec1b7-96f0-44ef-9772-4f66d778c215",
+ "02fbff2e-73de-46d7-8c78-0c49c6276397",
+ "5d225a03-9cd3-49c8-92d6-5b7db8ea0710",
"32a3a802-7461-4ca8-a5d8-e3550ca73407",
- "f84b13e8-1136-4510-9000-d0b1c4cf7290",
- "dc3ec1b7-96f0-44ef-9772-4f66d778c215"
+ "f84b13e8-1136-4510-9000-d0b1c4cf7290"
]
}
},
@@ -80,7 +347,19 @@
"@type": "title"
},
"9ebd0467-ee7d-4849-a7c9-63a135634db5": {
- "@type": "slate"
+ "@type": "slate",
+ "plaintext": "",
+ "styles": {},
+ "value": [
+ {
+ "children": [
+ {
+ "text": ""
+ }
+ ],
+ "type": "p"
+ }
+ ]
}
},
"blocks_layout": {
@@ -111,7 +390,7 @@
"locked": false,
"stealable": true
},
- "modified": "2025-01-30T23:12:12+00:00",
+ "modified": "2025-02-28T02:18:46+00:00",
"preview_caption": null,
"preview_image": null,
"review_state": "published",
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/28be0c28818647be98201618302a142c/data.json b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/28be0c28818647be98201618302a142c/data.json
deleted file mode 100644
index b58228c..0000000
--- a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/28be0c28818647be98201618302a142c/data.json
+++ /dev/null
@@ -1,71 +0,0 @@
-{
- "@id": "/patrocine/diamante",
- "@type": "SponsorLevel",
- "UID": "28be0c28818647be98201618302a142c",
- "allow_discussion": null,
- "blocks": {
- "3f2e0881-669d-4956-82d4-ed1514ff9ab6": {
- "@type": "slate"
- },
- "5405a3a6-bd66-4759-ae1f-e834469fd335": {
- "@type": "description"
- },
- "87f09d19-32f8-4f7e-8ed2-9a9130ad6b49": {
- "@type": "title"
- }
- },
- "blocks_layout": {
- "items": [
- "87f09d19-32f8-4f7e-8ed2-9a9130ad6b49",
- "5405a3a6-bd66-4759-ae1f-e834469fd335",
- "3f2e0881-669d-4956-82d4-ed1514ff9ab6"
- ]
- },
- "contributors": [],
- "created": "2024-10-21T00:29:26+00:00",
- "creators": [
- "e9ba8889-9bb3-4d41-9b0f-6c5dfbca6629"
- ],
- "description": "Cota diamante da PythonBrasil 2025",
- "display_frontpage": false,
- "effective": null,
- "exclude_from_nav": false,
- "expires": null,
- "exportimport.constrains": {},
- "exportimport.conversation": [],
- "id": "diamante",
- "is_folderish": true,
- "language": "##DEFAULT##",
- "layout": "view",
- "lock": {},
- "modified": "2025-01-30T21:54:34+00:00",
- "nav_title": null,
- "preview_caption": null,
- "preview_image": {
- "blob_path": "28be0c28818647be98201618302a142c/preview_image/diamante.png",
- "content-type": "image/png",
- "filename": "diamante.png",
- "height": 900,
- "size": 519326,
- "width": 1600
- },
- "review_state": "private",
- "rights": "",
- "subjects": [],
- "title": "Diamante",
- "type_title": "Sponsorship Level",
- "version": "current",
- "workflow_history": {
- "simple_publication_workflow": [
- {
- "action": null,
- "actor": "e9ba8889-9bb3-4d41-9b0f-6c5dfbca6629",
- "comments": "",
- "review_state": "private",
- "time": "2024-10-21T00:29:27+00:00"
- }
- ]
- },
- "working_copy": null,
- "working_copy_of": null
-}
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/28be0c28818647be98201618302a142c/preview_image/diamante.png b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/28be0c28818647be98201618302a142c/preview_image/diamante.png
deleted file mode 100644
index 3ea0e4d..0000000
Binary files a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/28be0c28818647be98201618302a142c/preview_image/diamante.png and /dev/null differ
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/315a2084d7dd400584a2d47cf87b1c89/data.json b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/315a2084d7dd400584a2d47cf87b1c89/data.json
new file mode 100644
index 0000000..a4768f0
--- /dev/null
+++ b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/315a2084d7dd400584a2d47cf87b1c89/data.json
@@ -0,0 +1,163 @@
+{
+ "@id": "/agenda",
+ "@type": "Schedule",
+ "UID": "315a2084d7dd400584a2d47cf87b1c89",
+ "allow_discussion": null,
+ "blocks": {
+ "0919ff75-2480-4e88-a70f-e882c8f6417d": {
+ "@type": "gridBlock",
+ "blocks": {
+ "993f8a1c-5b7e-4904-b7d1-be62764b83fe": {
+ "@type": "teaser",
+ "description": "As palestras ser\u00e3o realizadas no Centro de Evento S\u00e3o Luiz, na regi\u00e3o da Avenida Paulista",
+ "head_title": null,
+ "href": [
+ {
+ "@id": "../resolveuid/ad3efc4190bd4ac6b1cc077751d473f0",
+ "@type": "Venue",
+ "Description": "As palestras ser\u00e3o realizadas no Centro de Evento S\u00e3o Luiz, na regi\u00e3o da Avenida Paulista",
+ "Subject": [],
+ "Title": "Centro de Eventos S\u00e3o Lu\u00eds",
+ "description": "As palestras ser\u00e3o realizadas no Centro de Evento S\u00e3o Luiz, na regi\u00e3o da Avenida Paulista",
+ "effective": "2025-06-17T22:41:12+00:00",
+ "end": null,
+ "getObjSize": "0 KB",
+ "getRemoteUrl": null,
+ "hasPreviewImage": null,
+ "head_title": null,
+ "image_field": "preview_image_link",
+ "mime_type": "text/plain",
+ "nav_title": null,
+ "review_state": "published",
+ "start": null,
+ "title": "Centro de Eventos S\u00e3o Lu\u00eds",
+ "type_title": "Local"
+ }
+ ],
+ "overwrite": true,
+ "styles": {
+ "align": "left"
+ },
+ "title": "Centro de Eventos S\u00e3o Lu\u00eds"
+ }
+ },
+ "blocks_layout": {
+ "items": [
+ "993f8a1c-5b7e-4904-b7d1-be62764b83fe"
+ ]
+ },
+ "headline": "Local",
+ "styles": {},
+ "theme": "grey"
+ },
+ "2db27e83-e9ac-4fc5-a2cd-017c16c49a55": {
+ "@type": "slate",
+ "plaintext": "Entre os dias 21 a 23 teremos os tutoriais. Tutoriais s\u00e3o mini cursos pr\u00e1ticos ministrados pela comunidade Entre os dias 24 a 26 teremos o evento principal com palestras dadas pela comunidade No dia 27 teremos as sprints. Sprints s\u00e3o atividades em conjunto para a contribui\u00e7\u00e3o em reposit\u00f3rios de c\u00f3digo aberto",
+ "styles": {},
+ "theme": "default",
+ "value": [
+ {
+ "children": [
+ {
+ "children": [
+ {
+ "text": "Entre os dias 21 a 23 teremos os tutoriais. Tutoriais s\u00e3o mini cursos pr\u00e1ticos ministrados pela comunidade"
+ }
+ ],
+ "type": "li"
+ },
+ {
+ "children": [
+ {
+ "text": "Entre os dias 24 a 26 teremos o evento principal com palestras dadas pela comunidade"
+ }
+ ],
+ "type": "li"
+ },
+ {
+ "children": [
+ {
+ "text": "No dia 27 teremos as sprints. Sprints s\u00e3o atividades em conjunto para a contribui\u00e7\u00e3o em reposit\u00f3rios de c\u00f3digo aberto"
+ }
+ ],
+ "type": "li"
+ }
+ ],
+ "type": "ol"
+ }
+ ]
+ },
+ "4f0520a7-e000-42c9-9015-59d8acd3fbbf": {
+ "@type": "slate"
+ },
+ "6ce877c3-00bd-44d2-8578-d53f55986ead": {
+ "@type": "slate",
+ "plaintext": "A divis\u00e3o de atividades vai ser:",
+ "styles": {},
+ "theme": "default",
+ "value": [
+ {
+ "children": [
+ {
+ "text": "A divis\u00e3o de atividades vai ser:"
+ }
+ ],
+ "type": "p"
+ }
+ ]
+ },
+ "b9554437-b1a0-4867-be7b-084d79082326": {
+ "@type": "description"
+ },
+ "ba566acc-ff6e-41fa-8f59-2153b5417eb4": {
+ "@type": "title"
+ }
+ },
+ "blocks_layout": {
+ "items": [
+ "ba566acc-ff6e-41fa-8f59-2153b5417eb4",
+ "b9554437-b1a0-4867-be7b-084d79082326",
+ "6ce877c3-00bd-44d2-8578-d53f55986ead",
+ "2db27e83-e9ac-4fc5-a2cd-017c16c49a55",
+ "0919ff75-2480-4e88-a70f-e882c8f6417d",
+ "4f0520a7-e000-42c9-9015-59d8acd3fbbf"
+ ]
+ },
+ "created": "2025-06-17T22:51:41+00:00",
+ "description": "Entre 21 e 27 de outubro, S\u00e3o Paulo receber\u00e1 a Python Brasil",
+ "exclude_from_nav": false,
+ "exportimport.constrains": {},
+ "exportimport.conversation": [],
+ "id": "agenda",
+ "is_folderish": true,
+ "language": "##DEFAULT##",
+ "layout": "view",
+ "lock": {},
+ "modified": "2025-06-17T22:53:25+00:00",
+ "nav_title": null,
+ "preview_caption_link": null,
+ "review_state": "published",
+ "title": "Agenda",
+ "type_title": "Schedule",
+ "version": "current",
+ "workflow_history": {
+ "simple_publication_workflow": [
+ {
+ "action": null,
+ "actor": "admin",
+ "comments": "",
+ "review_state": "private",
+ "time": "2025-06-17T22:51:41+00:00"
+ },
+ {
+ "action": "publish",
+ "actor": "admin",
+ "comments": "",
+ "review_state": "published",
+ "time": "2025-06-17T22:53:25+00:00"
+ }
+ ]
+ },
+ "working_copy": null,
+ "working_copy_of": null
+}
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/3ae5a29af55148b2a69e2997155775ce/data.json b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/3ae5a29af55148b2a69e2997155775ce/data.json
new file mode 100644
index 0000000..cd2d941
--- /dev/null
+++ b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/3ae5a29af55148b2a69e2997155775ce/data.json
@@ -0,0 +1,40 @@
+{
+ "@id": "/images/sponsor-02-ouro.png",
+ "@type": "Image",
+ "UID": "3ae5a29af55148b2a69e2997155775ce",
+ "allow_discussion": null,
+ "contributors": [],
+ "created": "2025-06-16T19:30:41+00:00",
+ "creators": [
+ "admin"
+ ],
+ "description": "",
+ "effective": null,
+ "exclude_from_nav": false,
+ "expires": null,
+ "exportimport.constrains": {},
+ "exportimport.conversation": [],
+ "id": "sponsor-02-ouro.png",
+ "image": {
+ "blob_path": "3ae5a29af55148b2a69e2997155775ce/image/sponsor-02-ouro.png",
+ "content-type": "image/png",
+ "filename": "sponsor-02-ouro.png",
+ "height": 1080,
+ "size": 1642842,
+ "width": 1920
+ },
+ "is_folderish": false,
+ "language": "##DEFAULT##",
+ "layout": "image_view",
+ "lock": {},
+ "modified": "2025-06-16T19:30:41+00:00",
+ "review_state": null,
+ "rights": "",
+ "subjects": [],
+ "title": "sponsor-02-ouro.png",
+ "type_title": "Image",
+ "version": "current",
+ "workflow_history": {},
+ "working_copy": null,
+ "working_copy_of": null
+}
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/3ae5a29af55148b2a69e2997155775ce/image/sponsor-02-ouro.png b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/3ae5a29af55148b2a69e2997155775ce/image/sponsor-02-ouro.png
new file mode 100644
index 0000000..a1f1750
Binary files /dev/null and b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/3ae5a29af55148b2a69e2997155775ce/image/sponsor-02-ouro.png differ
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/4134ad329fa64a24863c48291a9f5668/data.json b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/4134ad329fa64a24863c48291a9f5668/data.json
new file mode 100644
index 0000000..9d1a29b
--- /dev/null
+++ b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/4134ad329fa64a24863c48291a9f5668/data.json
@@ -0,0 +1,79 @@
+{
+ "@id": "/patrocine/bronze/simples-consultoria",
+ "@type": "Sponsor",
+ "UID": "4134ad329fa64a24863c48291a9f5668",
+ "allow_discussion": null,
+ "created": "2025-06-16T19:47:52+00:00",
+ "description": "Apoiando as comunidade Python e Plone desde 2004",
+ "exclude_from_nav": false,
+ "exportimport.constrains": {},
+ "exportimport.conversation": [],
+ "id": "simples-consultoria",
+ "image": {
+ "blob_path": "4134ad329fa64a24863c48291a9f5668/image/simples.png",
+ "content-type": "image/png",
+ "filename": "simples.png",
+ "height": 768,
+ "size": 48023,
+ "width": 1024
+ },
+ "image_caption": null,
+ "is_folderish": true,
+ "language": "##DEFAULT##",
+ "layout": "view",
+ "lock": {},
+ "modified": "2025-06-16T19:47:56+00:00",
+ "review_state": "published",
+ "social_links": [
+ {
+ "@id": "a251bfcc-7e2f-4d1a-a17c-105293953b67",
+ "href": [
+ {
+ "@id": "https://simplesconsultoria.com.br/",
+ "title": "simplesconsultoria.com.br/"
+ }
+ ],
+ "id": "website",
+ "title": "Site"
+ },
+ {
+ "@id": "0b666b77-1bd6-405a-afe3-6398eb4d1a25",
+ "href": [
+ {
+ "@id": "https://github.com/simplesconsultoria",
+ "title": "github.com/simplesconsultoria"
+ }
+ ],
+ "id": "github",
+ "title": "GitHub"
+ }
+ ],
+ "text": {
+ "content-type": "text/html",
+ "data": "
A Simples Consultoria \u00e9 especializada em consultoria Python e Plone.
",
+ "encoding": "utf8"
+ },
+ "title": "Simples Consultoria",
+ "type_title": "Sponsor",
+ "version": "current",
+ "workflow_history": {
+ "simple_publication_workflow": [
+ {
+ "action": null,
+ "actor": "admin",
+ "comments": "",
+ "review_state": "private",
+ "time": "2025-06-16T19:47:52+00:00"
+ },
+ {
+ "action": "publish",
+ "actor": "admin",
+ "comments": "",
+ "review_state": "published",
+ "time": "2025-06-16T19:47:56+00:00"
+ }
+ ]
+ },
+ "working_copy": null,
+ "working_copy_of": null
+}
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/4134ad329fa64a24863c48291a9f5668/image/simples.png b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/4134ad329fa64a24863c48291a9f5668/image/simples.png
new file mode 100644
index 0000000..60f9837
Binary files /dev/null and b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/4134ad329fa64a24863c48291a9f5668/image/simples.png differ
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/573e6d9f0eca43b3a8b838c29a1c0053/data.json b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/573e6d9f0eca43b3a8b838c29a1c0053/data.json
deleted file mode 100644
index 6a2c21e..0000000
--- a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/573e6d9f0eca43b3a8b838c29a1c0053/data.json
+++ /dev/null
@@ -1,83 +0,0 @@
-{
- "@id": "/patrocine/bronze",
- "@type": "SponsorLevel",
- "UID": "573e6d9f0eca43b3a8b838c29a1c0053",
- "allow_discussion": null,
- "blocks": {
- "002ece3d-6612-4113-93ef-d9c3cef3eec8": {
- "@type": "slate",
- "plaintext": "",
- "styles": {},
- "value": [
- {
- "children": [
- {
- "text": ""
- }
- ],
- "type": "p"
- }
- ]
- },
- "64c86094-d931-4630-9716-526e24ad4cd9": {
- "@type": "description"
- },
- "e06184fc-0bf9-4baa-8fc5-178123c47ed5": {
- "@type": "title"
- }
- },
- "blocks_layout": {
- "items": [
- "e06184fc-0bf9-4baa-8fc5-178123c47ed5",
- "64c86094-d931-4630-9716-526e24ad4cd9",
- "002ece3d-6612-4113-93ef-d9c3cef3eec8"
- ]
- },
- "contributors": [],
- "created": "2025-01-30T21:49:34+00:00",
- "creators": [
- "e9ba8889-9bb3-4d41-9b0f-6c5dfbca6629"
- ],
- "description": "Patrocine o evento, conquiste seu espa\u00e7o e interaja com a comunidade ",
- "display_frontpage": false,
- "effective": null,
- "exclude_from_nav": false,
- "expires": null,
- "exportimport.constrains": {},
- "exportimport.conversation": [],
- "id": "bronze",
- "is_folderish": true,
- "language": "##DEFAULT##",
- "layout": "view",
- "lock": {},
- "modified": "2025-01-30T21:55:13+00:00",
- "nav_title": null,
- "preview_caption": null,
- "preview_image": {
- "blob_path": "573e6d9f0eca43b3a8b838c29a1c0053/preview_image/bronze.png",
- "content-type": "image/png",
- "filename": "bronze.png",
- "height": 900,
- "size": 466642,
- "width": 1600
- },
- "review_state": "private",
- "rights": "",
- "subjects": [],
- "title": "Bronze",
- "type_title": "Sponsorship Level",
- "version": "current",
- "workflow_history": {
- "simple_publication_workflow": [
- {
- "action": null,
- "actor": "e9ba8889-9bb3-4d41-9b0f-6c5dfbca6629",
- "comments": "",
- "review_state": "private",
- "time": "2025-01-30T21:49:34+00:00"
- }
- ]
- },
- "working_copy": null,
- "working_copy_of": null
-}
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/573e6d9f0eca43b3a8b838c29a1c0053/preview_image/bronze.png b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/573e6d9f0eca43b3a8b838c29a1c0053/preview_image/bronze.png
deleted file mode 100644
index 26d57d1..0000000
Binary files a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/573e6d9f0eca43b3a8b838c29a1c0053/preview_image/bronze.png and /dev/null differ
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/747b642b7b444a9ca08fcabd50a702c8/data.json b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/747b642b7b444a9ca08fcabd50a702c8/data.json
new file mode 100644
index 0000000..c7c0239
--- /dev/null
+++ b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/747b642b7b444a9ca08fcabd50a702c8/data.json
@@ -0,0 +1,40 @@
+{
+ "@id": "/images/sponsor-03-prata.png",
+ "@type": "Image",
+ "UID": "747b642b7b444a9ca08fcabd50a702c8",
+ "allow_discussion": null,
+ "contributors": [],
+ "created": "2025-06-16T19:30:40+00:00",
+ "creators": [
+ "admin"
+ ],
+ "description": "",
+ "effective": null,
+ "exclude_from_nav": false,
+ "expires": null,
+ "exportimport.constrains": {},
+ "exportimport.conversation": [],
+ "id": "sponsor-03-prata.png",
+ "image": {
+ "blob_path": "747b642b7b444a9ca08fcabd50a702c8/image/sponsor-03-prata.png",
+ "content-type": "image/png",
+ "filename": "sponsor-03-prata.png",
+ "height": 1080,
+ "size": 1385575,
+ "width": 1920
+ },
+ "is_folderish": false,
+ "language": "##DEFAULT##",
+ "layout": "image_view",
+ "lock": {},
+ "modified": "2025-06-16T19:30:40+00:00",
+ "review_state": null,
+ "rights": "",
+ "subjects": [],
+ "title": "sponsor-03-prata.png",
+ "type_title": "Image",
+ "version": "current",
+ "workflow_history": {},
+ "working_copy": null,
+ "working_copy_of": null
+}
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/747b642b7b444a9ca08fcabd50a702c8/image/sponsor-03-prata.png b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/747b642b7b444a9ca08fcabd50a702c8/image/sponsor-03-prata.png
new file mode 100644
index 0000000..75d296c
Binary files /dev/null and b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/747b642b7b444a9ca08fcabd50a702c8/image/sponsor-03-prata.png differ
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/75b28d31bea949fcae586531699f0f88/data.json b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/75b28d31bea949fcae586531699f0f88/data.json
new file mode 100644
index 0000000..a8affb2
--- /dev/null
+++ b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/75b28d31bea949fcae586531699f0f88/data.json
@@ -0,0 +1,40 @@
+{
+ "@id": "/images/sao-luiz.jpeg",
+ "@type": "Image",
+ "UID": "75b28d31bea949fcae586531699f0f88",
+ "allow_discussion": null,
+ "contributors": [],
+ "created": "2025-06-17T22:42:55+00:00",
+ "creators": [
+ "admin"
+ ],
+ "description": "",
+ "effective": null,
+ "exclude_from_nav": false,
+ "expires": null,
+ "exportimport.constrains": {},
+ "exportimport.conversation": [],
+ "id": "sao-luiz.jpeg",
+ "image": {
+ "blob_path": "75b28d31bea949fcae586531699f0f88/image/sao-luiz.jpeg",
+ "content-type": "image/jpeg",
+ "filename": "sao-luiz.jpeg",
+ "height": 808,
+ "size": 282488,
+ "width": 1339
+ },
+ "is_folderish": false,
+ "language": "##DEFAULT##",
+ "layout": "image_view",
+ "lock": {},
+ "modified": "2025-06-17T22:42:55+00:00",
+ "review_state": null,
+ "rights": "",
+ "subjects": [],
+ "title": "sao-luiz.jpeg",
+ "type_title": "Image",
+ "version": "current",
+ "workflow_history": {},
+ "working_copy": null,
+ "working_copy_of": null
+}
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/75b28d31bea949fcae586531699f0f88/image/sao-luiz.jpeg b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/75b28d31bea949fcae586531699f0f88/image/sao-luiz.jpeg
new file mode 100644
index 0000000..d880607
Binary files /dev/null and b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/75b28d31bea949fcae586531699f0f88/image/sao-luiz.jpeg differ
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/76b343b1ca41450db2728865ca5d459b/data.json b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/76b343b1ca41450db2728865ca5d459b/data.json
deleted file mode 100644
index a49026b..0000000
--- a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/76b343b1ca41450db2728865ca5d459b/data.json
+++ /dev/null
@@ -1,71 +0,0 @@
-{
- "@id": "/patrocine/prata",
- "@type": "SponsorLevel",
- "UID": "76b343b1ca41450db2728865ca5d459b",
- "allow_discussion": null,
- "blocks": {
- "2069887d-f202-4a3b-9148-83a37666f71d": {
- "@type": "description"
- },
- "373d7d21-2950-4b7c-852a-1b16775d0ff8": {
- "@type": "title"
- },
- "52b4994b-8a2e-47d7-b01c-754e0e089de2": {
- "@type": "slate"
- }
- },
- "blocks_layout": {
- "items": [
- "373d7d21-2950-4b7c-852a-1b16775d0ff8",
- "2069887d-f202-4a3b-9148-83a37666f71d",
- "52b4994b-8a2e-47d7-b01c-754e0e089de2"
- ]
- },
- "contributors": [],
- "created": "2024-10-21T00:30:23+00:00",
- "creators": [
- "e9ba8889-9bb3-4d41-9b0f-6c5dfbca6629"
- ],
- "description": "Cota prata da PythonBrasil 2025",
- "display_frontpage": false,
- "effective": null,
- "exclude_from_nav": false,
- "expires": null,
- "exportimport.constrains": {},
- "exportimport.conversation": [],
- "id": "prata",
- "is_folderish": true,
- "language": "##DEFAULT##",
- "layout": "view",
- "lock": {},
- "modified": "2025-01-30T21:55:01+00:00",
- "nav_title": null,
- "preview_caption": null,
- "preview_image": {
- "blob_path": "76b343b1ca41450db2728865ca5d459b/preview_image/prata.png",
- "content-type": "image/png",
- "filename": "prata.png",
- "height": 900,
- "size": 512770,
- "width": 1600
- },
- "review_state": "private",
- "rights": "",
- "subjects": [],
- "title": "Prata",
- "type_title": "Sponsorship Level",
- "version": "current",
- "workflow_history": {
- "simple_publication_workflow": [
- {
- "action": null,
- "actor": "e9ba8889-9bb3-4d41-9b0f-6c5dfbca6629",
- "comments": "",
- "review_state": "private",
- "time": "2024-10-21T00:30:23+00:00"
- }
- ]
- },
- "working_copy": null,
- "working_copy_of": null
-}
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/76b343b1ca41450db2728865ca5d459b/preview_image/prata.png b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/76b343b1ca41450db2728865ca5d459b/preview_image/prata.png
deleted file mode 100644
index 0e1791d..0000000
Binary files a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/76b343b1ca41450db2728865ca5d459b/preview_image/prata.png and /dev/null differ
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/818ea1c0827944c394330a1c3d658866/data.json b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/818ea1c0827944c394330a1c3d658866/data.json
deleted file mode 100644
index 8e2ee5a..0000000
--- a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/818ea1c0827944c394330a1c3d658866/data.json
+++ /dev/null
@@ -1,96 +0,0 @@
-{
- "@id": "/patrocine",
- "@type": "SponsorsDB",
- "UID": "818ea1c0827944c394330a1c3d658866",
- "allow_discussion": null,
- "blocks": {
- "0f0131a3-a98d-429e-9d6b-a1002be4f529": {
- "@type": "title"
- },
- "6fab02e8-5ef5-4fe5-a038-264682e9e84b": {
- "@type": "slate"
- },
- "a7e78dfc-7a34-40fb-a6f4-13509b2b9177": {
- "@type": "gridBlock",
- "blocks": {
- "9a1b36c6-57bd-406d-9982-3f8a16929fdc": {
- "@type": "__button",
- "href": [
- {
- "@id": "https://www.canva.com/design/DAGXPOZVdD0/9BKeLRxlSyHevEtM1TXDJQ/view?utm_content=DAGXPOZVdD0&utm_campaign=designshare&utm_medium=link2&utm_source=uniquelinks&utlId=h6c1ffd66be",
- "title": "www.canva.com/design/DAGXPOZVdD0/9BKeLRxlSyHevEtM1TXDJQ/view?utm_content=DAGXPOZVdD0&utm_campaign=designshare&utm_medium=link2&utm_source=uniquelinks&utlId=h6c1ffd66be"
- }
- ],
- "inneralign": "center",
- "styles": {
- "buttonAlign": "center"
- },
- "title": "Plano de patroc\u00ednio"
- }
- },
- "blocks_layout": {
- "items": [
- "9a1b36c6-57bd-406d-9982-3f8a16929fdc"
- ]
- },
- "styles": {}
- },
- "afc606a1-3620-46d1-8ad9-367ad7531ced": {
- "@type": "description"
- }
- },
- "blocks_layout": {
- "items": [
- "0f0131a3-a98d-429e-9d6b-a1002be4f529",
- "afc606a1-3620-46d1-8ad9-367ad7531ced",
- "a7e78dfc-7a34-40fb-a6f4-13509b2b9177",
- "6fab02e8-5ef5-4fe5-a038-264682e9e84b"
- ]
- },
- "contributors": [],
- "created": "2024-10-21T00:29:00+00:00",
- "creators": [
- "e9ba8889-9bb3-4d41-9b0f-6c5dfbca6629"
- ],
- "description": "Sua organiza\u00e7\u00e3o pode ser parte do maior evento de Python do Brasil",
- "effective": "2025-01-30T23:00:00+00:00",
- "exclude_from_nav": false,
- "expires": null,
- "exportimport.constrains": {},
- "exportimport.conversation": [],
- "id": "patrocine",
- "is_folderish": true,
- "language": "##DEFAULT##",
- "layout": "view",
- "lock": {},
- "modified": "2025-01-30T23:02:29+00:00",
- "nav_title": null,
- "preview_caption": null,
- "preview_image": null,
- "review_state": "published",
- "rights": "",
- "subjects": [],
- "title": "Patrocine",
- "type_title": "Sponsors Database",
- "version": "current",
- "workflow_history": {
- "simple_publication_workflow": [
- {
- "action": null,
- "actor": "e9ba8889-9bb3-4d41-9b0f-6c5dfbca6629",
- "comments": "",
- "review_state": "private",
- "time": "2024-10-21T00:29:00+00:00"
- },
- {
- "action": "publish",
- "actor": "be1f8aa4-b6c8-48ef-8d37-aa4fd88a4095",
- "comments": "",
- "review_state": "published",
- "time": "2025-01-30T23:00:43+00:00"
- }
- ]
- },
- "working_copy": null,
- "working_copy_of": null
-}
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/81bb6aa3c33644c296ffbc767b8c05c7/data.json b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/81bb6aa3c33644c296ffbc767b8c05c7/data.json
index dc2df7c..d71fcaf 100644
--- a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/81bb6aa3c33644c296ffbc767b8c05c7/data.json
+++ b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/81bb6aa3c33644c296ffbc767b8c05c7/data.json
@@ -4,13 +4,11 @@
"UID": "81bb6aa3c33644c296ffbc767b8c05c7",
"allow_discussion": null,
"blocks": {
- "64c5f2cd-d7d2-4ebc-af59-684adc87f2a1": {
- "@type": "title"
- },
- "c1c311fe-eef9-4b6b-9e48-7187d88428b3": {
+ "4b753790-992e-459f-babb-af0fe0add51b": {
"@type": "slate",
"plaintext": "",
"styles": {},
+ "theme": "default",
"value": [
{
"children": [
@@ -22,6 +20,104 @@
}
]
},
+ "64c5f2cd-d7d2-4ebc-af59-684adc87f2a1": {
+ "@type": "title"
+ },
+ "c1c311fe-eef9-4b6b-9e48-7187d88428b3": {
+ "@type": "gridBlock",
+ "blocks": {
+ "00321341-af7e-4afe-bbdf-0ca1ddec5de1": {
+ "@type": "teaser",
+ "description": "Saiba como chegar aos locais das atividades da Python Brasil 2025",
+ "head_title": null,
+ "href": [
+ {
+ "@id": "../resolveuid/ac949e0e29524a619dfb4caf015085ba",
+ "@type": "Document",
+ "Description": "Saiba como chegar aos locais das atividades da Python Brasil 2025",
+ "Subject": [],
+ "Title": "Local",
+ "description": "Saiba como chegar aos locais das atividades da Python Brasil 2025",
+ "effective": "2025-06-17T22:44:53+00:00",
+ "end": null,
+ "getObjSize": "0 KB",
+ "getRemoteUrl": null,
+ "hasPreviewImage": null,
+ "head_title": null,
+ "image_field": "",
+ "mime_type": "text/plain",
+ "nav_title": null,
+ "review_state": "published",
+ "start": null,
+ "title": "Local",
+ "type_title": "P\u00e1gina"
+ }
+ ],
+ "overwrite": true,
+ "preview_image": [
+ {
+ "@id": "../resolveuid/75b28d31bea949fcae586531699f0f88",
+ "image_field": "image",
+ "title": "sao-luiz.jpeg"
+ }
+ ],
+ "styles": {
+ "align": "left"
+ },
+ "theme": "default",
+ "title": "Local"
+ },
+ "bd1460d0-3525-48a9-a0c9-5b33e3548246": {
+ "@type": "teaser",
+ "description": "Tire suas d\u00favidas sobre a Python Brasil 2025",
+ "head_title": null,
+ "href": [
+ {
+ "@id": "../resolveuid/24689ede20f346c09ce7d50b68ff893b",
+ "@type": "Document",
+ "Description": "Tire suas d\u00favidas sobre a Python Brasil 2025",
+ "Subject": [],
+ "Title": "Perguntas Frequentes",
+ "description": "Tire suas d\u00favidas sobre a Python Brasil 2025",
+ "effective": "2025-01-30T21:38:00+00:00",
+ "end": null,
+ "getObjSize": "0 KB",
+ "getRemoteUrl": null,
+ "hasPreviewImage": null,
+ "head_title": null,
+ "image_field": "",
+ "mime_type": "text/plain",
+ "nav_title": null,
+ "review_state": "published",
+ "start": null,
+ "title": "Perguntas Frequentes",
+ "type_title": "P\u00e1gina"
+ }
+ ],
+ "overwrite": true,
+ "preview_image": [
+ {
+ "@id": "../resolveuid/c630576df3264cb0ad7799d28f52a393",
+ "image_field": "image",
+ "title": "pybr2022-treinamento.jpg"
+ }
+ ],
+ "styles": {
+ "align": "center"
+ },
+ "theme": "default",
+ "title": "Perguntas Frequentes"
+ }
+ },
+ "blocks_layout": {
+ "items": [
+ "bd1460d0-3525-48a9-a0c9-5b33e3548246",
+ "00321341-af7e-4afe-bbdf-0ca1ddec5de1"
+ ]
+ },
+ "styles": {},
+ "theme": "grey"
+ },
"f34f15b1-234f-45bb-ad95-50de70bfa4b3": {
"@type": "description"
}
@@ -30,7 +126,8 @@
"items": [
"64c5f2cd-d7d2-4ebc-af59-684adc87f2a1",
"f34f15b1-234f-45bb-ad95-50de70bfa4b3",
- "c1c311fe-eef9-4b6b-9e48-7187d88428b3"
+ "c1c311fe-eef9-4b6b-9e48-7187d88428b3",
+ "4b753790-992e-459f-babb-af0fe0add51b"
]
},
"changeNote": "",
@@ -53,7 +150,7 @@
"locked": false,
"stealable": true
},
- "modified": "2025-01-30T22:49:04+00:00",
+ "modified": "2025-06-17T22:53:53+00:00",
"preview_caption": null,
"preview_image": null,
"review_state": "published",
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/922ba8ede6da49dc850dc25a7e5061e2/data.json b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/922ba8ede6da49dc850dc25a7e5061e2/data.json
new file mode 100644
index 0000000..b8efbd6
--- /dev/null
+++ b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/922ba8ede6da49dc850dc25a7e5061e2/data.json
@@ -0,0 +1,274 @@
+{
+ "@id": "/patrocine/bronze",
+ "@type": "SponsorLevel",
+ "UID": "922ba8ede6da49dc850dc25a7e5061e2",
+ "allow_discussion": null,
+ "benefits": [
+ {
+ "@id": "df857d8a-538a-44a2-aaa6-01efdf405606",
+ "code": {
+ "title": "Marca: Logo no local do evento",
+ "token": "62861964-c29e-4ea1-b139-90c50884a541"
+ },
+ "id": "df857d8a-538a-44a2-aaa6-01efdf405606",
+ "title": "Marca: Logo no local do evento",
+ "value": null
+ },
+ {
+ "@id": "c85d39c9-25da-41ed-9311-369f4348a71e",
+ "code": {
+ "title": "Digital: Post agradecimento em redes sociais",
+ "token": "b3c20966-701e-44f2-af8c-9436fd78aff7"
+ },
+ "id": "c85d39c9-25da-41ed-9311-369f4348a71e",
+ "title": "Digital: Post agradecimento em redes sociais",
+ "value": null
+ },
+ {
+ "@id": "7a7471eb-b589-4cb6-baef-42d3260840ef",
+ "code": {
+ "title": "Digital: Logo no site",
+ "token": "750f4e1e-17ea-44f2-8af2-655d99e28a88"
+ },
+ "id": "7a7471eb-b589-4cb6-baef-42d3260840ef",
+ "title": "Digital: Logo no site",
+ "value": null
+ },
+ {
+ "@id": "fda55874-77d6-4312-941d-10d9988a38f7",
+ "code": {
+ "title": "Intera\u00e7\u00e3o: Palco principal",
+ "token": "5c18f964-94bf-407c-914b-83cc0998d6d9"
+ },
+ "id": "fda55874-77d6-4312-941d-10d9988a38f7",
+ "title": "Intera\u00e7\u00e3o: Palco principal",
+ "value": "1 minuto"
+ },
+ {
+ "@id": "aa14c6ed-c2ac-4d7a-9870-0037c4660613",
+ "code": {
+ "title": "Intera\u00e7\u00e3o: Kit do participante",
+ "token": "f01b8239-31ff-40fd-9b66-b3c655a2bd5c"
+ },
+ "id": "aa14c6ed-c2ac-4d7a-9870-0037c4660613",
+ "title": "Intera\u00e7\u00e3o: Kit do participante",
+ "value": null
+ },
+ {
+ "@id": "fda740f5-7e26-4822-8c34-e6d11d64852e",
+ "code": {
+ "title": "Ingressos: Inclusos",
+ "token": "9d3be2f0-e191-49b0-85a8-ac3b05519b45"
+ },
+ "id": "fda740f5-7e26-4822-8c34-e6d11d64852e",
+ "title": "Ingressos: Inclusos",
+ "value": "3"
+ },
+ {
+ "@id": "59db41fa-968d-4f70-a435-1ab290cb8003",
+ "code": {
+ "title": "Ingressos: Desconto",
+ "token": "57c3f9de-d97e-4d47-abae-f6e2318c826a"
+ },
+ "id": "59db41fa-968d-4f70-a435-1ab290cb8003",
+ "title": "Ingressos: Desconto",
+ "value": "15%"
+ }
+ ],
+ "blocks": {
+ "62cd57f3-756e-4299-8c87-5f7b3587cbc0": {
+ "@type": "slate"
+ },
+ "b995026a-4040-4585-9e2d-1731cd4a00de": {
+ "@type": "title"
+ },
+ "bec45a12-dae8-4762-ba24-628d39056f28": {
+ "@type": "sponsorLevelBlock",
+ "displayCTA": true,
+ "href": [
+ {
+ "@id": "../../resolveuid/005d63f8dd7b41818ae3e5e2ba1f36d9",
+ "@type": "Document",
+ "Description": "Garanta a sua vaga na Python Brasil 2025",
+ "Title": "Patrocine agora",
+ "hasPreviewImage": null,
+ "head_title": null,
+ "image_field": "",
+ "title": "Patrocine agora"
+ }
+ ],
+ "label": "Patrocine tamb\u00e9m!",
+ "styles": {
+ "align:noprefix": {
+ "--block-alignment": "var(--align-center)"
+ }
+ },
+ "title": "Patrocinadores"
+ },
+ "cd605377-66ed-4b53-82ae-f2c6fb5bdf15": {
+ "@type": "accordion",
+ "collapsed": false,
+ "data": {
+ "blocks": {
+ "24ffd234-53b5-4948-ae79-1422f61c1474": {
+ "@type": "accordionPanel",
+ "blocks": {
+ "19994ff9-faa9-4094-ad09-cbe990bf07bf": {
+ "@type": "slate",
+ "plaintext": "Sua logo aparecer\u00e1 em toda identidade visual no local do evento: banners, pain\u00e9is de foto, salas de palestra, v\u00eddeos exibidos nos intervalos de atividades!",
+ "styles": {},
+ "theme": "default",
+ "value": [
+ {
+ "children": [
+ {
+ "text": "Sua logo aparecer\u00e1 em toda identidade visual no local do evento: banners, pain\u00e9is de foto, salas de palestra, v\u00eddeos exibidos nos intervalos de atividades!"
+ }
+ ],
+ "type": "p"
+ }
+ ]
+ }
+ },
+ "blocks_layout": {
+ "items": [
+ "19994ff9-faa9-4094-ad09-cbe990bf07bf"
+ ]
+ },
+ "title": "Conquistando espa\u00e7o"
+ },
+ "49f25694-881e-4102-a036-a16159690900": {
+ "@type": "accordionPanel",
+ "blocks": {
+ "aaa9f9eb-3c43-41cc-a80a-171551c8ced2": {
+ "@type": "slate",
+ "plaintext": "Sua marca ser\u00e1 exibida nos intervalos das lives, no site do evento e ser\u00e1 divulgada nos posts de apresenta\u00e7\u00e3o e agradecimento de patrocinador",
+ "styles": {},
+ "theme": "default",
+ "value": [
+ {
+ "children": [
+ {
+ "text": "Sua marca ser\u00e1 exibida nos intervalos das lives, no site do evento e ser\u00e1 divulgada nos posts de apresenta\u00e7\u00e3o e agradecimento de patrocinador"
+ }
+ ],
+ "type": "p"
+ }
+ ]
+ }
+ },
+ "blocks_layout": {
+ "items": [
+ "aaa9f9eb-3c43-41cc-a80a-171551c8ced2"
+ ]
+ },
+ "title": "Chegando longe"
+ },
+ "513b0dbf-b5ed-4b07-bca5-14946a0d25c4": {
+ "@type": "accordionPanel",
+ "blocks": {
+ "1432010b-240c-4990-b2d2-6a96154e74b9": {
+ "@type": "slate",
+ "plaintext": "Voc\u00ea pode adicionar brindes na sacola dos participantes para divulgar sua marca e ter\u00e1 um tempo limitado no palco, sob os holofotes!",
+ "styles": {},
+ "theme": "default",
+ "value": [
+ {
+ "children": [
+ {
+ "text": "Voc\u00ea pode adicionar brindes na sacola dos participantes para divulgar sua marca e ter\u00e1 um tempo limitado no palco, sob os holofotes!"
+ }
+ ],
+ "type": "p"
+ }
+ ]
+ }
+ },
+ "blocks_layout": {
+ "items": [
+ "1432010b-240c-4990-b2d2-6a96154e74b9"
+ ]
+ },
+ "title": "Interagindo com a comunidade"
+ },
+ "642211c7-c318-4a76-9cca-4d998f0e790c": {
+ "@type": "accordionPanel",
+ "blocks": {
+ "0957ef69-8300-45f8-ba00-47a8e4f832bc": {
+ "@type": "levelBenefitsBlock",
+ "tableTitle": "Compare",
+ "title": " "
+ }
+ },
+ "blocks_layout": {
+ "items": [
+ "0957ef69-8300-45f8-ba00-47a8e4f832bc"
+ ]
+ },
+ "title": "Todos os Benef\u00edcios"
+ }
+ },
+ "blocks_layout": {
+ "items": [
+ "24ffd234-53b5-4948-ae79-1422f61c1474",
+ "49f25694-881e-4102-a036-a16159690900",
+ "513b0dbf-b5ed-4b07-bca5-14946a0d25c4",
+ "642211c7-c318-4a76-9cca-4d998f0e790c"
+ ]
+ }
+ },
+ "filtering": false,
+ "non_exclusive": false,
+ "right_arrows": true,
+ "styles": {},
+ "theme": "red"
+ }
+ },
+ "blocks_layout": {
+ "items": [
+ "b995026a-4040-4585-9e2d-1731cd4a00de",
+ "cd605377-66ed-4b53-82ae-f2c6fb5bdf15",
+ "bec45a12-dae8-4762-ba24-628d39056f28",
+ "62cd57f3-756e-4299-8c87-5f7b3587cbc0"
+ ]
+ },
+ "color": "#000000",
+ "created": "2025-06-16T19:14:21+00:00",
+ "description": "Conquistando espa\u00e7o",
+ "exclude_from_nav": false,
+ "exportimport.constrains": {},
+ "exportimport.conversation": [],
+ "id": "bronze",
+ "is_folderish": true,
+ "language": "##DEFAULT##",
+ "layout": "view",
+ "lock": {},
+ "modified": "2025-06-17T20:39:22+00:00",
+ "nav_title": null,
+ "preview_caption_link": null,
+ "price": "R$10.000,00",
+ "review_state": "published",
+ "title": "Bronze",
+ "type_title": "Sponsorship Level",
+ "version": "current",
+ "workflow_history": {
+ "simple_publication_workflow": [
+ {
+ "action": null,
+ "actor": "admin",
+ "comments": "",
+ "review_state": "private",
+ "time": "2025-06-16T19:14:21+00:00"
+ },
+ {
+ "action": "publish",
+ "actor": "admin",
+ "comments": "",
+ "review_state": "published",
+ "time": "2025-06-16T19:20:41+00:00"
+ }
+ ]
+ },
+ "working_copy": null,
+ "working_copy_of": null
+}
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/96fdfa7c97784194b9f4cd0f0819e7f1/data.json b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/96fdfa7c97784194b9f4cd0f0819e7f1/data.json
deleted file mode 100644
index 8628d29..0000000
--- a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/96fdfa7c97784194b9f4cd0f0819e7f1/data.json
+++ /dev/null
@@ -1,71 +0,0 @@
-{
- "@id": "/patrocine/platina",
- "@type": "SponsorLevel",
- "UID": "96fdfa7c97784194b9f4cd0f0819e7f1",
- "allow_discussion": null,
- "blocks": {
- "08b3d90f-e87e-406b-88b0-e0e80d3f294f": {
- "@type": "title"
- },
- "43844faa-68c5-4c52-b085-133600ac83b4": {
- "@type": "slate"
- },
- "e9f040ac-74ea-4ebb-9c07-f80940f689b1": {
- "@type": "description"
- }
- },
- "blocks_layout": {
- "items": [
- "08b3d90f-e87e-406b-88b0-e0e80d3f294f",
- "e9f040ac-74ea-4ebb-9c07-f80940f689b1",
- "43844faa-68c5-4c52-b085-133600ac83b4"
- ]
- },
- "contributors": [],
- "created": "2024-10-21T00:29:50+00:00",
- "creators": [
- "e9ba8889-9bb3-4d41-9b0f-6c5dfbca6629"
- ],
- "description": "Cota platina da PythonBrasil 2025",
- "display_frontpage": false,
- "effective": null,
- "exclude_from_nav": false,
- "expires": null,
- "exportimport.constrains": {},
- "exportimport.conversation": [],
- "id": "platina",
- "is_folderish": true,
- "language": "##DEFAULT##",
- "layout": "view",
- "lock": {},
- "modified": "2025-01-30T21:52:07+00:00",
- "nav_title": null,
- "preview_caption": null,
- "preview_image": {
- "blob_path": "96fdfa7c97784194b9f4cd0f0819e7f1/preview_image/platina.png",
- "content-type": "image/png",
- "filename": "platina.png",
- "height": 900,
- "size": 618366,
- "width": 1600
- },
- "review_state": "private",
- "rights": "",
- "subjects": [],
- "title": "Platina",
- "type_title": "Sponsorship Level",
- "version": "current",
- "workflow_history": {
- "simple_publication_workflow": [
- {
- "action": null,
- "actor": "e9ba8889-9bb3-4d41-9b0f-6c5dfbca6629",
- "comments": "",
- "review_state": "private",
- "time": "2024-10-21T00:29:50+00:00"
- }
- ]
- },
- "working_copy": null,
- "working_copy_of": null
-}
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/96fdfa7c97784194b9f4cd0f0819e7f1/preview_image/platina.png b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/96fdfa7c97784194b9f4cd0f0819e7f1/preview_image/platina.png
deleted file mode 100644
index de91600..0000000
Binary files a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/96fdfa7c97784194b9f4cd0f0819e7f1/preview_image/platina.png and /dev/null differ
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/__metadata__.json b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/__metadata__.json
index d2948e7..2dce9ce 100644
--- a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/__metadata__.json
+++ b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/__metadata__.json
@@ -1,7 +1,6 @@
{
"__version__": "1.0.0",
"_blob_files_": [
- "fa4f3a56ff634ab7a5ebb1f106126dfd/file/2025-pythonbrasil-patrocinio.pdf",
"0d05308db57c450da4ae80e8a3c47ece/image/logo-slim.svg",
"8077308bcd7c43f88a5055932ec3cc6b/image/logo-splash.png",
"2f992ae440894d7191a24d75d669de4a/image/logo.svg",
@@ -9,20 +8,23 @@
"6fef01c46be34684bb42ac0e4d990a2f/image/pybr2022-plateia.jpg",
"c630576df3264cb0ad7799d28f52a393/image/pybr2022-treinamento.jpg",
"c2d0e0645016413f9e5d719b628fb72d/image/pybr2024.jpg",
- "573e6d9f0eca43b3a8b838c29a1c0053/preview_image/bronze.png",
- "28be0c28818647be98201618302a142c/preview_image/diamante.png",
- "f9db2eccb58a4e9eb32b43708a0ebc0a/preview_image/ouro.png",
- "96fdfa7c97784194b9f4cd0f0819e7f1/preview_image/platina.png",
- "76b343b1ca41450db2728865ca5d459b/preview_image/prata.png"
+ "c8e59c9637414aeb957e5d8eb7625648/image/apyb.png",
+ "e04f2f42f76d4742a4c8d648339ca6b9/image/sponsor-01-platina.png",
+ "bb8dcc0085c64d9cbc2757a4df392701/image/sponsor-04-bronze.png",
+ "747b642b7b444a9ca08fcabd50a702c8/image/sponsor-03-prata.png",
+ "3ae5a29af55148b2a69e2997155775ce/image/sponsor-02-ouro.png",
+ "4134ad329fa64a24863c48291a9f5668/image/simples.png",
+ "75b28d31bea949fcae586531699f0f88/image/sao-luiz.jpeg"
],
"_data_files_": [
"plone_site_root/data.json",
- "fa4f3a56ff634ab7a5ebb1f106126dfd/data.json",
- "b1279249bca341d78e0762bc2a12094f/data.json",
+ "315a2084d7dd400584a2d47cf87b1c89/data.json",
"81bb6aa3c33644c296ffbc767b8c05c7/data.json",
"52e0e3e2d1564eca97eb22eae2fbebbf/data.json",
"f17ec2cb79cf4a75896ce3a6b5bc8f54/data.json",
"1e6a267195ba41459ce3a869ac4714f6/data.json",
+ "ac949e0e29524a619dfb4caf015085ba/data.json",
+ "ad3efc4190bd4ac6b1cc077751d473f0/data.json",
"24689ede20f346c09ce7d50b68ff893b/data.json",
"aba03e63fe93484685256445d8e4f646/data.json",
"a720393b3c0240e5bd27c43fcd2cfd1e/data.json",
@@ -33,39 +35,56 @@
"6fef01c46be34684bb42ac0e4d990a2f/data.json",
"c630576df3264cb0ad7799d28f52a393/data.json",
"c2d0e0645016413f9e5d719b628fb72d/data.json",
+ "75b28d31bea949fcae586531699f0f88/data.json",
+ "e04f2f42f76d4742a4c8d648339ca6b9/data.json",
+ "3ae5a29af55148b2a69e2997155775ce/data.json",
+ "747b642b7b444a9ca08fcabd50a702c8/data.json",
+ "bb8dcc0085c64d9cbc2757a4df392701/data.json",
"64ae8a06559f4255b20152220da6fba3/data.json",
- "818ea1c0827944c394330a1c3d658866/data.json",
- "573e6d9f0eca43b3a8b838c29a1c0053/data.json",
- "28be0c28818647be98201618302a142c/data.json",
- "f9db2eccb58a4e9eb32b43708a0ebc0a/data.json",
- "96fdfa7c97784194b9f4cd0f0819e7f1/data.json",
- "76b343b1ca41450db2728865ca5d459b/data.json"
+ "17000670d687482992d5a85fdb1f82e6/data.json",
+ "922ba8ede6da49dc850dc25a7e5061e2/data.json",
+ "4134ad329fa64a24863c48291a9f5668/data.json",
+ "092354832f23462aa392f34597ce4d39/data.json",
+ "c8e59c9637414aeb957e5d8eb7625648/data.json",
+ "cc193578bdf2480c8274e682b06dbfb9/data.json",
+ "005d63f8dd7b41818ae3e5e2ba1f36d9/data.json",
+ "de070eedcb854959a6a4be4d87c083e3/data.json",
+ "0b7437380fe441aa8673ceaa662e92c5/data.json"
],
"default_page": {},
"local_permissions": {
+ "005d63f8dd7b41818ae3e5e2ba1f36d9": {},
"03e3d75a791d4fa98378626ba8f62d07": {},
+ "092354832f23462aa392f34597ce4d39": {},
+ "0b7437380fe441aa8673ceaa662e92c5": {},
"0d05308db57c450da4ae80e8a3c47ece": {},
+ "17000670d687482992d5a85fdb1f82e6": {},
"1e6a267195ba41459ce3a869ac4714f6": {},
"24689ede20f346c09ce7d50b68ff893b": {},
- "28be0c28818647be98201618302a142c": {},
"2f992ae440894d7191a24d75d669de4a": {},
+ "315a2084d7dd400584a2d47cf87b1c89": {},
+ "3ae5a29af55148b2a69e2997155775ce": {},
+ "4134ad329fa64a24863c48291a9f5668": {},
"52e0e3e2d1564eca97eb22eae2fbebbf": {},
- "573e6d9f0eca43b3a8b838c29a1c0053": {},
"64ae8a06559f4255b20152220da6fba3": {},
"6fef01c46be34684bb42ac0e4d990a2f": {},
- "76b343b1ca41450db2728865ca5d459b": {},
+ "747b642b7b444a9ca08fcabd50a702c8": {},
+ "75b28d31bea949fcae586531699f0f88": {},
"8077308bcd7c43f88a5055932ec3cc6b": {},
- "818ea1c0827944c394330a1c3d658866": {},
"81bb6aa3c33644c296ffbc767b8c05c7": {},
- "96fdfa7c97784194b9f4cd0f0819e7f1": {},
+ "922ba8ede6da49dc850dc25a7e5061e2": {},
"a720393b3c0240e5bd27c43fcd2cfd1e": {},
"aba03e63fe93484685256445d8e4f646": {},
- "b1279249bca341d78e0762bc2a12094f": {},
+ "ac949e0e29524a619dfb4caf015085ba": {},
+ "ad3efc4190bd4ac6b1cc077751d473f0": {},
+ "bb8dcc0085c64d9cbc2757a4df392701": {},
"c2d0e0645016413f9e5d719b628fb72d": {},
"c630576df3264cb0ad7799d28f52a393": {},
+ "c8e59c9637414aeb957e5d8eb7625648": {},
+ "cc193578bdf2480c8274e682b06dbfb9": {},
+ "de070eedcb854959a6a4be4d87c083e3": {},
+ "e04f2f42f76d4742a4c8d648339ca6b9": {},
"f17ec2cb79cf4a75896ce3a6b5bc8f54": {},
- "f9db2eccb58a4e9eb32b43708a0ebc0a": {},
- "fa4f3a56ff634ab7a5ebb1f106126dfd": {},
"plone_site_root": {
"Add portal member": {
"acquire": false,
@@ -119,6 +138,10 @@
"Authenticated"
]
},
+ "collective.techevent: Add SponsorsDB": {
+ "acquire": false,
+ "roles": []
+ },
"plone.resource: Export ZIP file": {
"acquire": false,
"roles": [
@@ -135,6 +158,13 @@
}
},
"local_roles": {
+ "005d63f8dd7b41818ae3e5e2ba1f36d9": {
+ "local_roles": {
+ "admin": [
+ "Owner"
+ ]
+ }
+ },
"03e3d75a791d4fa98378626ba8f62d07": {
"local_roles": {
"admin": [
@@ -142,6 +172,20 @@
]
}
},
+ "092354832f23462aa392f34597ce4d39": {
+ "local_roles": {
+ "admin": [
+ "Owner"
+ ]
+ }
+ },
+ "0b7437380fe441aa8673ceaa662e92c5": {
+ "local_roles": {
+ "admin": [
+ "Owner"
+ ]
+ }
+ },
"0d05308db57c450da4ae80e8a3c47ece": {
"local_roles": {
"admin": [
@@ -149,6 +193,13 @@
]
}
},
+ "17000670d687482992d5a85fdb1f82e6": {
+ "local_roles": {
+ "admin": [
+ "Owner"
+ ]
+ }
+ },
"1e6a267195ba41459ce3a869ac4714f6": {
"local_roles": {
"admin": [
@@ -169,34 +220,35 @@
]
}
},
- "28be0c28818647be98201618302a142c": {
+ "2f992ae440894d7191a24d75d669de4a": {
"local_roles": {
"admin": [
"Owner"
- ],
- "e9ba8889-9bb3-4d41-9b0f-6c5dfbca6629": [
- "Owner"
]
}
},
- "2f992ae440894d7191a24d75d669de4a": {
+ "315a2084d7dd400584a2d47cf87b1c89": {
"local_roles": {
"admin": [
"Owner"
]
}
},
- "52e0e3e2d1564eca97eb22eae2fbebbf": {
+ "3ae5a29af55148b2a69e2997155775ce": {
"local_roles": {
"admin": [
"Owner"
- ],
- "e9ba8889-9bb3-4d41-9b0f-6c5dfbca6629": [
+ ]
+ }
+ },
+ "4134ad329fa64a24863c48291a9f5668": {
+ "local_roles": {
+ "admin": [
"Owner"
]
}
},
- "573e6d9f0eca43b3a8b838c29a1c0053": {
+ "52e0e3e2d1564eca97eb22eae2fbebbf": {
"local_roles": {
"admin": [
"Owner"
@@ -226,27 +278,21 @@
]
}
},
- "76b343b1ca41450db2728865ca5d459b": {
+ "747b642b7b444a9ca08fcabd50a702c8": {
"local_roles": {
"admin": [
"Owner"
- ],
- "e9ba8889-9bb3-4d41-9b0f-6c5dfbca6629": [
- "Owner"
]
}
},
- "8077308bcd7c43f88a5055932ec3cc6b": {
+ "75b28d31bea949fcae586531699f0f88": {
"local_roles": {
"admin": [
"Owner"
- ],
- "e9ba8889-9bb3-4d41-9b0f-6c5dfbca6629": [
- "Owner"
]
}
},
- "818ea1c0827944c394330a1c3d658866": {
+ "8077308bcd7c43f88a5055932ec3cc6b": {
"local_roles": {
"admin": [
"Owner"
@@ -266,13 +312,10 @@
]
}
},
- "96fdfa7c97784194b9f4cd0f0819e7f1": {
+ "922ba8ede6da49dc850dc25a7e5061e2": {
"local_roles": {
"admin": [
"Owner"
- ],
- "e9ba8889-9bb3-4d41-9b0f-6c5dfbca6629": [
- "Owner"
]
}
},
@@ -293,12 +336,23 @@
]
}
},
- "b1279249bca341d78e0762bc2a12094f": {
+ "ac949e0e29524a619dfb4caf015085ba": {
"local_roles": {
"admin": [
"Owner"
- ],
- "be1f8aa4-b6c8-48ef-8d37-aa4fd88a4095": [
+ ]
+ }
+ },
+ "ad3efc4190bd4ac6b1cc077751d473f0": {
+ "local_roles": {
+ "admin": [
+ "Owner"
+ ]
+ }
+ },
+ "bb8dcc0085c64d9cbc2757a4df392701": {
+ "local_roles": {
+ "admin": [
"Owner"
]
}
@@ -323,27 +377,35 @@
]
}
},
- "f17ec2cb79cf4a75896ce3a6b5bc8f54": {
+ "c8e59c9637414aeb957e5d8eb7625648": {
"local_roles": {
"admin": [
"Owner"
- ],
- "e9ba8889-9bb3-4d41-9b0f-6c5dfbca6629": [
+ ]
+ }
+ },
+ "cc193578bdf2480c8274e682b06dbfb9": {
+ "local_roles": {
+ "admin": [
"Owner"
]
}
},
- "f9db2eccb58a4e9eb32b43708a0ebc0a": {
+ "de070eedcb854959a6a4be4d87c083e3": {
"local_roles": {
"admin": [
"Owner"
- ],
- "e9ba8889-9bb3-4d41-9b0f-6c5dfbca6629": [
+ ]
+ }
+ },
+ "e04f2f42f76d4742a4c8d648339ca6b9": {
+ "local_roles": {
+ "admin": [
"Owner"
]
}
},
- "fa4f3a56ff634ab7a5ebb1f106126dfd": {
+ "f17ec2cb79cf4a75896ce3a6b5bc8f54": {
"local_roles": {
"admin": [
"Owner"
@@ -362,29 +424,38 @@
}
},
"ordering": {
+ "005d63f8dd7b41818ae3e5e2ba1f36d9": 5,
"03e3d75a791d4fa98378626ba8f62d07": 2,
+ "092354832f23462aa392f34597ce4d39": 4,
+ "0b7437380fe441aa8673ceaa662e92c5": 2,
"0d05308db57c450da4ae80e8a3c47ece": 0,
- "1e6a267195ba41459ce3a869ac4714f6": 3,
- "24689ede20f346c09ce7d50b68ff893b": 2,
- "28be0c28818647be98201618302a142c": 0,
+ "17000670d687482992d5a85fdb1f82e6": 45,
+ "1e6a267195ba41459ce3a869ac4714f6": 2,
+ "24689ede20f346c09ce7d50b68ff893b": 1,
"2f992ae440894d7191a24d75d669de4a": 1,
- "52e0e3e2d1564eca97eb22eae2fbebbf": 1,
- "573e6d9f0eca43b3a8b838c29a1c0053": 4,
+ "315a2084d7dd400584a2d47cf87b1c89": 43,
+ "3ae5a29af55148b2a69e2997155775ce": 10,
+ "4134ad329fa64a24863c48291a9f5668": 0,
+ "52e0e3e2d1564eca97eb22eae2fbebbf": 5,
"64ae8a06559f4255b20152220da6fba3": 44,
"6fef01c46be34684bb42ac0e4d990a2f": 5,
- "76b343b1ca41450db2728865ca5d459b": 3,
+ "747b642b7b444a9ca08fcabd50a702c8": 9,
+ "75b28d31bea949fcae586531699f0f88": 11,
"8077308bcd7c43f88a5055932ec3cc6b": 3,
- "818ea1c0827944c394330a1c3d658866": 45,
- "81bb6aa3c33644c296ffbc767b8c05c7": 43,
- "96fdfa7c97784194b9f4cd0f0819e7f1": 1,
+ "81bb6aa3c33644c296ffbc767b8c05c7": 42,
+ "922ba8ede6da49dc850dc25a7e5061e2": 3,
"a720393b3c0240e5bd27c43fcd2cfd1e": 41,
- "aba03e63fe93484685256445d8e4f646": 4,
- "b1279249bca341d78e0762bc2a12094f": 42,
+ "aba03e63fe93484685256445d8e4f646": 3,
+ "ac949e0e29524a619dfb4caf015085ba": 0,
+ "ad3efc4190bd4ac6b1cc077751d473f0": 0,
+ "bb8dcc0085c64d9cbc2757a4df392701": 8,
"c2d0e0645016413f9e5d719b628fb72d": 4,
"c630576df3264cb0ad7799d28f52a393": 6,
- "f17ec2cb79cf4a75896ce3a6b5bc8f54": 0,
- "f9db2eccb58a4e9eb32b43708a0ebc0a": 2,
- "fa4f3a56ff634ab7a5ebb1f106126dfd": 46
+ "c8e59c9637414aeb957e5d8eb7625648": 0,
+ "cc193578bdf2480c8274e682b06dbfb9": 1,
+ "de070eedcb854959a6a4be4d87c083e3": 0,
+ "e04f2f42f76d4742a4c8d648339ca6b9": 7,
+ "f17ec2cb79cf4a75896ce3a6b5bc8f54": 4
},
"relations": []
}
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/a720393b3c0240e5bd27c43fcd2cfd1e/data.json b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/a720393b3c0240e5bd27c43fcd2cfd1e/data.json
index 01c817f..099421b 100644
--- a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/a720393b3c0240e5bd27c43fcd2cfd1e/data.json
+++ b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/a720393b3c0240e5bd27c43fcd2cfd1e/data.json
@@ -58,7 +58,7 @@
"locked": false,
"stealable": true
},
- "modified": "2025-01-31T20:38:00+00:00",
+ "modified": "2025-06-17T22:42:55+00:00",
"preview_caption": null,
"preview_image": null,
"review_state": "published",
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/ac949e0e29524a619dfb4caf015085ba/data.json b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/ac949e0e29524a619dfb4caf015085ba/data.json
new file mode 100644
index 0000000..e4b7788
--- /dev/null
+++ b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/ac949e0e29524a619dfb4caf015085ba/data.json
@@ -0,0 +1,131 @@
+{
+ "@id": "/evento/local",
+ "@type": "Document",
+ "UID": "ac949e0e29524a619dfb4caf015085ba",
+ "allow_discussion": null,
+ "blocks": {
+ "618a99b7-2665-4bf8-aadc-c71e7689a16a": {
+ "@type": "gridBlock",
+ "blocks": {
+ "c0951022-174f-4782-97bc-3d506f63dbbc": {
+ "@type": "teaser",
+ "description": "As palestras ser\u00e3o realizadas no Centro de Evento S\u00e3o Luiz, na regi\u00e3o da Avenida Paulista",
+ "head_title": "Palestras",
+ "href": [
+ {
+ "@id": "../../resolveuid/ad3efc4190bd4ac6b1cc077751d473f0",
+ "@type": "Venue",
+ "Description": "As palestras ser\u00e3o realizadas no Centro de Evento S\u00e3o Luiz, na regi\u00e3o da Avenida Paulista",
+ "Title": "Centro de Eventos S\u00e3o Lu\u00eds",
+ "effective": "2025-06-17T22:41:12+00:00",
+ "end": null,
+ "getRemoteUrl": null,
+ "hasPreviewImage": null,
+ "head_title": null,
+ "image_field": "preview_image_link",
+ "start": null,
+ "title": "Centro de Eventos S\u00e3o Lu\u00eds"
+ }
+ ],
+ "overwrite": true,
+ "styles": {
+ "align": "center"
+ },
+ "theme": "default",
+ "title": "Dias 24, 25 e 26/10"
+ },
+ "c2aec521-21c9-4832-bb7c-7f1bc38dc6af": {
+ "@type": "empty"
+ }
+ },
+ "blocks_layout": {
+ "items": [
+ "c0951022-174f-4782-97bc-3d506f63dbbc",
+ "c2aec521-21c9-4832-bb7c-7f1bc38dc6af"
+ ]
+ },
+ "styles": {},
+ "theme": "grey"
+ },
+ "6d52009f-86bc-4b55-8cb6-c9b7aa35cb9b": {
+ "@type": "slate",
+ "plaintext": "",
+ "styles": {},
+ "theme": "default",
+ "value": [
+ {
+ "children": [
+ {
+ "text": ""
+ }
+ ],
+ "type": "p"
+ }
+ ]
+ },
+ "8d107b52-69b8-412d-9c0a-5bddebb7885e": {
+ "@type": "title"
+ },
+ "fce4a358-3e0e-4a2c-8d82-dacbf091360b": {
+ "@type": "description"
+ }
+ },
+ "blocks_layout": {
+ "items": [
+ "8d107b52-69b8-412d-9c0a-5bddebb7885e",
+ "fce4a358-3e0e-4a2c-8d82-dacbf091360b",
+ "618a99b7-2665-4bf8-aadc-c71e7689a16a",
+ "6d52009f-86bc-4b55-8cb6-c9b7aa35cb9b"
+ ]
+ },
+ "changeNote": "",
+ "contributors": [],
+ "created": "2025-06-17T22:38:23+00:00",
+ "creators": [
+ "admin"
+ ],
+ "description": "Saiba como chegar aos locais das atividades da Python Brasil 2025",
+ "effective": "2025-06-17T22:44:53+00:00",
+ "exclude_from_nav": false,
+ "expires": null,
+ "exportimport.constrains": {},
+ "exportimport.conversation": [],
+ "id": "local",
+ "is_folderish": true,
+ "language": "##DEFAULT##",
+ "layout": "document_view",
+ "lock": {
+ "locked": false,
+ "stealable": true
+ },
+ "modified": "2025-06-17T22:44:53+00:00",
+ "preview_caption": null,
+ "preview_image": null,
+ "review_state": "published",
+ "rights": "",
+ "subjects": [],
+ "title": "Local",
+ "type_title": "Page",
+ "version": "current",
+ "versioning_enabled": true,
+ "workflow_history": {
+ "simple_publication_workflow": [
+ {
+ "action": null,
+ "actor": "admin",
+ "comments": "",
+ "review_state": "private",
+ "time": "2025-06-17T22:38:23+00:00"
+ },
+ {
+ "action": "publish",
+ "actor": "admin",
+ "comments": "",
+ "review_state": "published",
+ "time": "2025-06-17T22:44:53+00:00"
+ }
+ ]
+ },
+ "working_copy": null,
+ "working_copy_of": null
+}
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/ad3efc4190bd4ac6b1cc077751d473f0/data.json b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/ad3efc4190bd4ac6b1cc077751d473f0/data.json
new file mode 100644
index 0000000..4210a6f
--- /dev/null
+++ b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/ad3efc4190bd4ac6b1cc077751d473f0/data.json
@@ -0,0 +1,92 @@
+{
+ "@id": "/evento/local/centro-de-eventos-sao-luis",
+ "@type": "Venue",
+ "UID": "ad3efc4190bd4ac6b1cc077751d473f0",
+ "allow_discussion": null,
+ "blocks": {
+ "423dbca9-917a-4b10-af2d-a9a83e18a247": {
+ "@type": "slate",
+ "plaintext": "O local de palestras ser\u00e1 no Centro de Eventos S\u00e3o Lu\u00eds no bairro da Consola\u00e7\u00e3o.",
+ "styles": {},
+ "theme": "default",
+ "value": [
+ {
+ "children": [
+ {
+ "text": "O local de palestras ser\u00e1 no "
+ },
+ {
+ "children": [
+ {
+ "text": "Centro de Eventos S\u00e3o Lu\u00eds"
+ }
+ ],
+ "type": "strong"
+ },
+ {
+ "text": " no bairro da Consola\u00e7\u00e3o."
+ }
+ ],
+ "type": "p"
+ }
+ ]
+ },
+ "c6125ab9-82a0-4a73-80aa-0a3c0fde1b96": {
+ "@type": "maps",
+ "align": "wide",
+ "styles": {},
+ "url": "https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3657.342797469134!2d-46.6606522!3d-23.5561288!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x94ce591edc929247%3A0x371544b32f805933!2sCentro%20de%20Eventos%20S%C3%A3o%20Lu%C3%ADs!5e0!3m2!1sen!2sbr!4v1740007196765!5m2!1sen!2sbr"
+ },
+ "e5fcb1cb-88aa-4ddc-b3cf-332cf4862a18": {
+ "@type": "title"
+ },
+ "fb71cee0-593f-45b0-a2cb-1eb5bbd2bebe": {
+ "@type": "description"
+ }
+ },
+ "blocks_layout": {
+ "items": [
+ "e5fcb1cb-88aa-4ddc-b3cf-332cf4862a18",
+ "fb71cee0-593f-45b0-a2cb-1eb5bbd2bebe",
+ "423dbca9-917a-4b10-af2d-a9a83e18a247",
+ "c6125ab9-82a0-4a73-80aa-0a3c0fde1b96"
+ ]
+ },
+ "created": "2025-06-17T22:41:04+00:00",
+ "description": "As palestras ser\u00e3o realizadas no Centro de Evento S\u00e3o Luiz, na regi\u00e3o da Avenida Paulista",
+ "exclude_from_nav": false,
+ "exportimport.constrains": {},
+ "exportimport.conversation": [],
+ "id": "centro-de-eventos-sao-luis",
+ "is_folderish": true,
+ "language": "##DEFAULT##",
+ "layout": "view",
+ "lock": {},
+ "modified": "2025-06-17T22:43:18+00:00",
+ "nav_title": null,
+ "preview_caption_link": null,
+ "review_state": "published",
+ "title": "Centro de Eventos S\u00e3o Lu\u00eds",
+ "type_title": "Venue",
+ "version": "current",
+ "workflow_history": {
+ "simple_publication_workflow": [
+ {
+ "action": null,
+ "actor": "admin",
+ "comments": "",
+ "review_state": "private",
+ "time": "2025-06-17T22:41:04+00:00"
+ },
+ {
+ "action": "publish",
+ "actor": "admin",
+ "comments": "",
+ "review_state": "published",
+ "time": "2025-06-17T22:41:12+00:00"
+ }
+ ]
+ },
+ "working_copy": null,
+ "working_copy_of": null
+}
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/b1279249bca341d78e0762bc2a12094f/data.json b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/b1279249bca341d78e0762bc2a12094f/data.json
deleted file mode 100644
index 54351d8..0000000
--- a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/b1279249bca341d78e0762bc2a12094f/data.json
+++ /dev/null
@@ -1,124 +0,0 @@
-{
- "@id": "/agenda",
- "@type": "Document",
- "UID": "b1279249bca341d78e0762bc2a12094f",
- "allow_discussion": null,
- "blocks": {
- "2387af39-5340-4857-8539-6bb2798b0338": {
- "@type": "title"
- },
- "7616b19c-a222-4c60-afea-6210f0593feb": {
- "@type": "slate",
- "plaintext": "A divis\u00e3o de atividades vai ser:",
- "styles": {},
- "value": [
- {
- "children": [
- {
- "text": "A divis\u00e3o de atividades vai ser:"
- }
- ],
- "type": "p"
- }
- ]
- },
- "964d5554-15be-4d69-93e6-296114dbdbe6": {
- "@type": "description"
- },
- "a660d1a8-033c-4a67-8dca-42007fa5e148": {
- "@type": "slate",
- "override_toc": false,
- "plaintext": "Entre os dias 21 a 23 teremos os tutoriais. Tutoriais s\u00e3o mini cursos pr\u00e1ticos ministrados pela comunidade Entre os dias 24 a 26 teremos o evento principal com palestras dadas pela comunidade No dia 27 teremos as sprints. Sprints s\u00e3o atividades em conjunto para a contribui\u00e7\u00e3o em reposit\u00f3rios de c\u00f3digo aberto.",
- "styles": {},
- "value": [
- {
- "children": [
- {
- "children": [
- {
- "text": "Entre os dias 21 a 23 teremos os tutoriais. Tutoriais s\u00e3o mini cursos pr\u00e1ticos ministrados pela comunidade"
- }
- ],
- "type": "li"
- },
- {
- "children": [
- {
- "text": "Entre os dias 24 a 26 teremos o evento principal com palestras dadas pela comunidade"
- }
- ],
- "type": "li"
- },
- {
- "children": [
- {
- "text": "No dia 27 teremos as sprints. Sprints s\u00e3o atividades em conjunto para a contribui\u00e7\u00e3o em reposit\u00f3rios de c\u00f3digo aberto."
- }
- ],
- "type": "li"
- }
- ],
- "type": "ol"
- }
- ]
- }
- },
- "blocks_layout": {
- "items": [
- "2387af39-5340-4857-8539-6bb2798b0338",
- "964d5554-15be-4d69-93e6-296114dbdbe6",
- "7616b19c-a222-4c60-afea-6210f0593feb",
- "a660d1a8-033c-4a67-8dca-42007fa5e148"
- ]
- },
- "changeNote": "",
- "contributors": [],
- "created": "2025-01-22T22:14:02+00:00",
- "creators": [
- "be1f8aa4-b6c8-48ef-8d37-aa4fd88a4095"
- ],
- "description": "De 21 a 27 de outubro de 2025",
- "effective": "2025-01-30T22:12:00+00:00",
- "exclude_from_nav": false,
- "expires": null,
- "exportimport.constrains": {},
- "exportimport.conversation": [],
- "id": "agenda",
- "is_folderish": true,
- "language": "##DEFAULT##",
- "layout": "document_view",
- "lock": {
- "locked": false,
- "stealable": true
- },
- "modified": "2025-01-30T22:29:57+00:00",
- "preview_caption": null,
- "preview_image": null,
- "review_state": "published",
- "rights": "",
- "subjects": [],
- "title": "Agenda",
- "type_title": "Page",
- "version": "current",
- "versioning_enabled": true,
- "workflow_history": {
- "simple_publication_workflow": [
- {
- "action": null,
- "actor": "be1f8aa4-b6c8-48ef-8d37-aa4fd88a4095",
- "comments": "",
- "review_state": "private",
- "time": "2025-01-22T22:14:02+00:00"
- },
- {
- "action": "publish",
- "actor": "be1f8aa4-b6c8-48ef-8d37-aa4fd88a4095",
- "comments": "",
- "review_state": "published",
- "time": "2025-01-30T22:12:11+00:00"
- }
- ]
- },
- "working_copy": null,
- "working_copy_of": null
-}
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/bb8dcc0085c64d9cbc2757a4df392701/data.json b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/bb8dcc0085c64d9cbc2757a4df392701/data.json
new file mode 100644
index 0000000..3b5cd10
--- /dev/null
+++ b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/bb8dcc0085c64d9cbc2757a4df392701/data.json
@@ -0,0 +1,40 @@
+{
+ "@id": "/images/sponsor-04-bronze.png",
+ "@type": "Image",
+ "UID": "bb8dcc0085c64d9cbc2757a4df392701",
+ "allow_discussion": null,
+ "contributors": [],
+ "created": "2025-06-16T19:30:40+00:00",
+ "creators": [
+ "admin"
+ ],
+ "description": "",
+ "effective": null,
+ "exclude_from_nav": false,
+ "expires": null,
+ "exportimport.constrains": {},
+ "exportimport.conversation": [],
+ "id": "sponsor-04-bronze.png",
+ "image": {
+ "blob_path": "bb8dcc0085c64d9cbc2757a4df392701/image/sponsor-04-bronze.png",
+ "content-type": "image/png",
+ "filename": "sponsor-04-bronze.png",
+ "height": 1080,
+ "size": 1425368,
+ "width": 1920
+ },
+ "is_folderish": false,
+ "language": "##DEFAULT##",
+ "layout": "image_view",
+ "lock": {},
+ "modified": "2025-06-16T19:30:40+00:00",
+ "review_state": null,
+ "rights": "",
+ "subjects": [],
+ "title": "sponsor-04-bronze.png",
+ "type_title": "Image",
+ "version": "current",
+ "workflow_history": {},
+ "working_copy": null,
+ "working_copy_of": null
+}
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/bb8dcc0085c64d9cbc2757a4df392701/image/sponsor-04-bronze.png b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/bb8dcc0085c64d9cbc2757a4df392701/image/sponsor-04-bronze.png
new file mode 100644
index 0000000..4114c81
Binary files /dev/null and b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/bb8dcc0085c64d9cbc2757a4df392701/image/sponsor-04-bronze.png differ
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/c8e59c9637414aeb957e5d8eb7625648/data.json b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/c8e59c9637414aeb957e5d8eb7625648/data.json
new file mode 100644
index 0000000..c1e86cb
--- /dev/null
+++ b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/c8e59c9637414aeb957e5d8eb7625648/data.json
@@ -0,0 +1,90 @@
+{
+ "@id": "/patrocine/organizacao/apyb",
+ "@type": "Sponsor",
+ "UID": "c8e59c9637414aeb957e5d8eb7625648",
+ "allow_discussion": null,
+ "created": "2025-06-16T19:19:38+00:00",
+ "description": "",
+ "exclude_from_nav": false,
+ "exportimport.constrains": {},
+ "exportimport.conversation": [],
+ "id": "apyb",
+ "image": {
+ "blob_path": "c8e59c9637414aeb957e5d8eb7625648/image/apyb.png",
+ "content-type": "image/png",
+ "filename": "apyb.png",
+ "height": 768,
+ "size": 68886,
+ "width": 1024
+ },
+ "image_caption": null,
+ "is_folderish": true,
+ "language": "##DEFAULT##",
+ "layout": "view",
+ "lock": {},
+ "modified": "2025-06-16T19:19:45+00:00",
+ "review_state": "published",
+ "social_links": [
+ {
+ "@id": "d71a9732-75ce-4775-b574-ed29c43028c1",
+ "href": [
+ {
+ "@id": "https://python.org.br/apyb/",
+ "title": "python.org.br/apyb/"
+ }
+ ],
+ "id": "website",
+ "title": "Site"
+ },
+ {
+ "@id": "7222db66-493f-4c0a-928c-e42cc349d778",
+ "href": [
+ {
+ "@id": "https://github.com/pythonbrasil",
+ "title": "github.com/pythonbrasil"
+ }
+ ],
+ "id": "github",
+ "title": "GitHub"
+ },
+ {
+ "@id": "ff58dbc8-e601-4d1a-ba95-cb067c5d2933",
+ "href": [
+ {
+ "@id": "https://twitter.com/apyb",
+ "title": "twitter.com/apyb"
+ }
+ ],
+ "id": "x",
+ "title": "X"
+ }
+ ],
+ "text": {
+ "content-type": "text/html",
+ "data": "A Associa\u00e7\u00e3o Python Brasil (APyB), tamb\u00e9m conhecida como Associa\u00e7\u00e3o Python Brasil, \u00e9 uma organiza\u00e7\u00e3o sem fins lucrativos formada com o objetivo principal de nutrir e apoiar a comunidade da linguagem de programa\u00e7\u00e3o Python no Brasil. Fundada em 2007 para promover o crescimento e a dissemina\u00e7\u00e3o de conhecimentos e tecnologias relacionadas ao Python, a APyB tem sido uma for\u00e7a motriz na promo\u00e7\u00e3o de uma comunidade Python vibrante no pa\u00eds. Desde a sua cria\u00e7\u00e3o, a associa\u00e7\u00e3o tem desempenhado um papel fundamental na organiza\u00e7\u00e3o de eventos, confer\u00eancias e encontros que re\u00fanem entusiastas, desenvolvedores e profissionais de Python de diversas origens.
",
+ "encoding": "utf8"
+ },
+ "title": "APyB",
+ "type_title": "Sponsor",
+ "version": "current",
+ "workflow_history": {
+ "simple_publication_workflow": [
+ {
+ "action": null,
+ "actor": "admin",
+ "comments": "",
+ "review_state": "private",
+ "time": "2025-06-16T19:19:38+00:00"
+ },
+ {
+ "action": "publish",
+ "actor": "admin",
+ "comments": "",
+ "review_state": "published",
+ "time": "2025-06-16T19:19:45+00:00"
+ }
+ ]
+ },
+ "working_copy": null,
+ "working_copy_of": null
+}
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/c8e59c9637414aeb957e5d8eb7625648/image/apyb.png b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/c8e59c9637414aeb957e5d8eb7625648/image/apyb.png
new file mode 100644
index 0000000..64cd322
Binary files /dev/null and b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/c8e59c9637414aeb957e5d8eb7625648/image/apyb.png differ
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/cc193578bdf2480c8274e682b06dbfb9/data.json b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/cc193578bdf2480c8274e682b06dbfb9/data.json
new file mode 100644
index 0000000..7ffa560
--- /dev/null
+++ b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/cc193578bdf2480c8274e682b06dbfb9/data.json
@@ -0,0 +1,379 @@
+{
+ "@id": "/patrocine/ouro",
+ "@type": "SponsorLevel",
+ "UID": "cc193578bdf2480c8274e682b06dbfb9",
+ "allow_discussion": null,
+ "benefits": [
+ {
+ "@id": "39d51c33-f33b-4a02-a9cc-81208b886a2f",
+ "code": {
+ "title": "Marca: V\u00eddeo keynotes",
+ "token": "0480a40f-de48-4706-8ed4-b2066d82dcb7"
+ },
+ "id": "39d51c33-f33b-4a02-a9cc-81208b886a2f",
+ "title": "Marca: V\u00eddeo keynotes",
+ "value": "30s"
+ },
+ {
+ "@id": "81abf951-d0c5-4dd6-8e98-66187292f877",
+ "code": {
+ "title": "Marca: Logo no local do evento",
+ "token": "62861964-c29e-4ea1-b139-90c50884a541"
+ },
+ "id": "81abf951-d0c5-4dd6-8e98-66187292f877",
+ "title": "Marca: Logo no local do evento",
+ "value": null
+ },
+ {
+ "@id": "6e03db8b-e0e1-41ae-8674-2e89472f8938",
+ "code": {
+ "title": "Digital: Logo em v\u00eddeos",
+ "token": "83700ec1-4229-4467-aacc-03a2e3de17eb"
+ },
+ "id": "6e03db8b-e0e1-41ae-8674-2e89472f8938",
+ "title": "Digital: Logo em v\u00eddeos",
+ "value": null
+ },
+ {
+ "@id": "7f9804c8-0f22-4b0c-b25a-fcc189922d97",
+ "code": {
+ "title": "Digital: Post personalizado em redes sociais",
+ "token": "2f9fda0a-32f9-47a0-9ca6-1b6c20caf46a"
+ },
+ "id": "7f9804c8-0f22-4b0c-b25a-fcc189922d97",
+ "title": "Digital: Post personalizado em redes sociais",
+ "value": "3"
+ },
+ {
+ "@id": "3b3d5ebe-e6a2-47eb-a3cf-70821a2d11c6",
+ "code": {
+ "title": "Digital: Post agradecimento em redes sociais",
+ "token": "b3c20966-701e-44f2-af8c-9436fd78aff7"
+ },
+ "id": "3b3d5ebe-e6a2-47eb-a3cf-70821a2d11c6",
+ "title": "Digital: Post agradecimento em redes sociais",
+ "value": null
+ },
+ {
+ "@id": "79fa197c-143b-4b0b-ac4c-a8dce68f514b",
+ "code": {
+ "title": "Digital: Logo no site",
+ "token": "750f4e1e-17ea-44f2-8af2-655d99e28a88"
+ },
+ "id": "79fa197c-143b-4b0b-ac4c-a8dce68f514b",
+ "title": "Digital: Logo no site",
+ "value": null
+ },
+ {
+ "@id": "01269865-cdc3-47e5-b342-8f9b0fcbf57c",
+ "code": {
+ "title": "Intera\u00e7\u00e3o: Estande",
+ "token": "fbb995d8-a03f-471a-ae93-5da5db6dd3e6"
+ },
+ "id": "01269865-cdc3-47e5-b342-8f9b0fcbf57c",
+ "title": "Intera\u00e7\u00e3o: Estande",
+ "value": null
+ },
+ {
+ "@id": "198cea3a-8e60-4c7d-9fab-fbae89ff2ed5",
+ "code": {
+ "title": "Intera\u00e7\u00e3o: Atividades",
+ "token": "b2193c1b-7bbf-4f27-b495-f4a76793b791"
+ },
+ "id": "198cea3a-8e60-4c7d-9fab-fbae89ff2ed5",
+ "title": "Intera\u00e7\u00e3o: Atividades",
+ "value": null
+ },
+ {
+ "@id": "8892e1f7-f073-49c2-bc68-52449f6bbd32",
+ "code": {
+ "title": "Intera\u00e7\u00e3o: E-mail",
+ "token": "162d91e1-1d01-40a0-952f-da40f9c7f9fb"
+ },
+ "id": "8892e1f7-f073-49c2-bc68-52449f6bbd32",
+ "title": "Intera\u00e7\u00e3o: E-mail",
+ "value": "1"
+ },
+ {
+ "@id": "683884e7-93ff-4933-bd43-e1deedab75d4",
+ "code": {
+ "title": "Intera\u00e7\u00e3o: Palco principal",
+ "token": "5c18f964-94bf-407c-914b-83cc0998d6d9"
+ },
+ "id": "683884e7-93ff-4933-bd43-e1deedab75d4",
+ "title": "Intera\u00e7\u00e3o: Palco principal",
+ "value": "3 minutos"
+ },
+ {
+ "@id": "ea672914-179a-4ef5-a8bf-8b2ec2771a73",
+ "code": {
+ "title": "Intera\u00e7\u00e3o: Kit do participante",
+ "token": "f01b8239-31ff-40fd-9b66-b3c655a2bd5c"
+ },
+ "id": "ea672914-179a-4ef5-a8bf-8b2ec2771a73",
+ "title": "Intera\u00e7\u00e3o: Kit do participante",
+ "value": null
+ },
+ {
+ "@id": "140c5a51-577a-4293-a67f-db21e575742d",
+ "code": {
+ "title": "Ingressos: Inclusos",
+ "token": "9d3be2f0-e191-49b0-85a8-ac3b05519b45"
+ },
+ "id": "140c5a51-577a-4293-a67f-db21e575742d",
+ "title": "Ingressos: Inclusos",
+ "value": "7"
+ },
+ {
+ "@id": "c8ac15f5-653d-400d-a629-1d34cef20d15",
+ "code": {
+ "title": "Ingressos: Desconto",
+ "token": "57c3f9de-d97e-4d47-abae-f6e2318c826a"
+ },
+ "id": "c8ac15f5-653d-400d-a629-1d34cef20d15",
+ "title": "Ingressos: Desconto",
+ "value": "25%"
+ }
+ ],
+ "blocks": {
+ "3ac565a7-8831-4079-90e5-5502d6c63993": {
+ "@type": "sponsorLevelBlock",
+ "displayCTA": true,
+ "href": [
+ {
+ "@id": "../../resolveuid/005d63f8dd7b41818ae3e5e2ba1f36d9",
+ "@type": "Document",
+ "Description": "Garanta a sua vaga na Python Brasil 2025",
+ "Title": "Patrocine agora",
+ "hasPreviewImage": null,
+ "head_title": null,
+ "image_field": "",
+ "title": "Patrocine agora"
+ }
+ ],
+ "label": "Patrocine!",
+ "styles": {
+ "align:noprefix": {
+ "--block-alignment": "var(--align-center)"
+ }
+ },
+ "title": "Seja o primeiro"
+ },
+ "67db731e-1342-4a3b-bc6d-195bfdef8c19": {
+ "@type": "accordion",
+ "collapsed": false,
+ "data": {
+ "blocks": {
+ "24ffd234-53b5-4948-ae79-1422f61c1474": {
+ "@type": "accordionPanel",
+ "blocks": {
+ "19994ff9-faa9-4094-ad09-cbe990bf07bf": {
+ "@type": "slate",
+ "plaintext": "Voc\u00ea poder\u00e1 exibir um v\u00eddeo de 30s em um dos momentos de maior visibilidade do evento: na abertura dos keynotes, nossas palestras com convidados especiais!",
+ "styles": {},
+ "theme": "default",
+ "value": [
+ {
+ "children": [
+ {
+ "text": "Voc\u00ea poder\u00e1 exibir um v\u00eddeo de 30s em um dos momentos de maior visibilidade do evento: na abertura dos keynotes, nossas palestras com convidados especiais!"
+ }
+ ],
+ "type": "p"
+ }
+ ]
+ }
+ },
+ "blocks_layout": {
+ "items": [
+ "19994ff9-faa9-4094-ad09-cbe990bf07bf"
+ ]
+ },
+ "title": "Todos os olhos em voc\u00ea"
+ },
+ "49f25694-881e-4102-a036-a16159690900": {
+ "@type": "accordionPanel",
+ "blocks": {
+ "4540c587-8ac8-419b-81bd-ac21e09423d7": {
+ "@type": "slate",
+ "plaintext": "Al\u00e9m disso, ela tamb\u00e9m aparecer\u00e1 em propor\u00e7\u00e3o maior nas nossas m\u00eddias impressas (banner de boas vindas, painel de fotos e salas de palestras)",
+ "styles": {},
+ "theme": "default",
+ "value": [
+ {
+ "children": [
+ {
+ "text": "Al\u00e9m disso, ela tamb\u00e9m aparecer\u00e1 em propor\u00e7\u00e3o maior nas nossas m\u00eddias impressas (banner de boas vindas, painel de fotos e salas de palestras)"
+ }
+ ],
+ "type": "p"
+ }
+ ]
+ },
+ "b042282e-6cfe-4f3b-baeb-c5729d602468": {
+ "@type": "slate",
+ "plaintext": "Sua logo aparecer\u00e1 em nossas transmiss\u00f5es no YouTube, grava\u00e7\u00f5es e intervalos entre as palestras.",
+ "value": [
+ {
+ "children": [
+ {
+ "text": "Sua logo aparecer\u00e1 em nossas transmiss\u00f5es no YouTube, grava\u00e7\u00f5es e intervalos entre as palestras."
+ }
+ ],
+ "type": "p"
+ }
+ ]
+ }
+ },
+ "blocks_layout": {
+ "items": [
+ "b042282e-6cfe-4f3b-baeb-c5729d602468",
+ "4540c587-8ac8-419b-81bd-ac21e09423d7"
+ ]
+ },
+ "title": "Sua marca por toda a parte"
+ },
+ "513b0dbf-b5ed-4b07-bca5-14946a0d25c4": {
+ "@type": "accordionPanel",
+ "blocks": {
+ "628c3054-6173-416c-99b8-9d1c07b8e613": {
+ "@type": "slate",
+ "plaintext": "Voc\u00ea poder\u00e1 enviar um e-mail para os participantes doevento anunciando vagas, produtos ou o assunto que lhe interessar!",
+ "styles": {},
+ "theme": "default",
+ "value": [
+ {
+ "children": [
+ {
+ "text": "Voc\u00ea poder\u00e1 enviar um e-mail para os participantes doevento anunciando vagas, produtos ou o assunto que lhe interessar!"
+ }
+ ],
+ "type": "p"
+ }
+ ]
+ },
+ "87bc49f6-b2bd-4148-887a-482f85a877b3": {
+ "@type": "slate",
+ "plaintext": "Monte um espa\u00e7o dedicado no evento para interagir com os participantes!",
+ "styles": {},
+ "theme": "default",
+ "value": [
+ {
+ "children": [
+ {
+ "text": "Monte um espa\u00e7o dedicado no evento para interagir com os participantes!"
+ }
+ ],
+ "type": "p"
+ }
+ ]
+ },
+ "ed2fc39a-e4ba-4655-b952-adf0969f75ed": {
+ "@type": "slate",
+ "plaintext": "Ter\u00e1 um espa\u00e7o na programa\u00e7\u00e3o para apresentar umaatividade a ser revisada pela organiza\u00e7\u00e3o",
+ "styles": {},
+ "theme": "default",
+ "value": [
+ {
+ "children": [
+ {
+ "text": "Ter\u00e1 um espa\u00e7o na programa\u00e7\u00e3o para apresentar umaatividade a ser revisada pela organiza\u00e7\u00e3o"
+ }
+ ],
+ "type": "p"
+ }
+ ]
+ }
+ },
+ "blocks_layout": {
+ "items": [
+ "87bc49f6-b2bd-4148-887a-482f85a877b3",
+ "628c3054-6173-416c-99b8-9d1c07b8e613",
+ "ed2fc39a-e4ba-4655-b952-adf0969f75ed"
+ ]
+ },
+ "title": "Conquiste a comunidade"
+ },
+ "642211c7-c318-4a76-9cca-4d998f0e790c": {
+ "@type": "accordionPanel",
+ "blocks": {
+ "0957ef69-8300-45f8-ba00-47a8e4f832bc": {
+ "@type": "levelBenefitsBlock",
+ "tableTitle": "Compare",
+ "title": " "
+ }
+ },
+ "blocks_layout": {
+ "items": [
+ "0957ef69-8300-45f8-ba00-47a8e4f832bc"
+ ]
+ },
+ "title": "Todos os Benef\u00edcios"
+ }
+ },
+ "blocks_layout": {
+ "items": [
+ "24ffd234-53b5-4948-ae79-1422f61c1474",
+ "49f25694-881e-4102-a036-a16159690900",
+ "513b0dbf-b5ed-4b07-bca5-14946a0d25c4",
+ "642211c7-c318-4a76-9cca-4d998f0e790c"
+ ]
+ }
+ },
+ "filtering": false,
+ "non_exclusive": false,
+ "right_arrows": true,
+ "styles": {},
+ "theme": "red"
+ },
+ "c25809f5-beb0-4a00-a74d-0c8ba4bf24b4": {
+ "@type": "title"
+ }
+ },
+ "blocks_layout": {
+ "items": [
+ "c25809f5-beb0-4a00-a74d-0c8ba4bf24b4",
+ "67db731e-1342-4a3b-bc6d-195bfdef8c19",
+ "3ac565a7-8831-4079-90e5-5502d6c63993"
+ ]
+ },
+ "color": "#000000",
+ "created": "2025-06-16T19:13:19+00:00",
+ "description": "Todos os olhos em voc\u00ea",
+ "exclude_from_nav": false,
+ "exportimport.constrains": {},
+ "exportimport.conversation": [],
+ "id": "ouro",
+ "is_folderish": true,
+ "language": "##DEFAULT##",
+ "layout": "view",
+ "lock": {},
+ "modified": "2025-06-17T20:38:31+00:00",
+ "nav_title": null,
+ "preview_caption_link": null,
+ "price": "R$40.000,00",
+ "review_state": "published",
+ "title": "Ouro",
+ "type_title": "Sponsorship Level",
+ "version": "current",
+ "workflow_history": {
+ "simple_publication_workflow": [
+ {
+ "action": null,
+ "actor": "admin",
+ "comments": "",
+ "review_state": "private",
+ "time": "2025-06-16T19:13:19+00:00"
+ },
+ {
+ "action": "publish",
+ "actor": "admin",
+ "comments": "",
+ "review_state": "published",
+ "time": "2025-06-16T19:20:41+00:00"
+ }
+ ]
+ },
+ "working_copy": null,
+ "working_copy_of": null
+}
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/de070eedcb854959a6a4be4d87c083e3/data.json b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/de070eedcb854959a6a4be4d87c083e3/data.json
new file mode 100644
index 0000000..079dd4f
--- /dev/null
+++ b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/de070eedcb854959a6a4be4d87c083e3/data.json
@@ -0,0 +1,463 @@
+{
+ "@id": "/patrocine/platina",
+ "@type": "SponsorLevel",
+ "UID": "de070eedcb854959a6a4be4d87c083e3",
+ "allow_discussion": null,
+ "benefits": [
+ {
+ "@id": "db7a087a-4ad3-4bbc-9945-0d9fe6fa0fb8",
+ "code": {
+ "title": "Marca: V\u00eddeo abertura / encerramento",
+ "token": "3b1a1e54-ea33-4b5e-a823-4c1f21bba321"
+ },
+ "id": "db7a087a-4ad3-4bbc-9945-0d9fe6fa0fb8",
+ "title": "Marca: V\u00eddeo abertura / encerramento",
+ "value": null
+ },
+ {
+ "@id": "b6ba288f-824a-443d-82b8-29b06ca05ae6",
+ "code": {
+ "title": "Marca: Crach\u00e1",
+ "token": "f74e57ce-5307-48f8-976f-704912947eea"
+ },
+ "id": "b6ba288f-824a-443d-82b8-29b06ca05ae6",
+ "title": "Marca: Crach\u00e1",
+ "value": null
+ },
+ {
+ "@id": "9438b3f0-bde1-4ee3-b179-e8b74612b9b7",
+ "code": {
+ "title": "Marca: V\u00eddeo keynotes",
+ "token": "0480a40f-de48-4706-8ed4-b2066d82dcb7"
+ },
+ "id": "9438b3f0-bde1-4ee3-b179-e8b74612b9b7",
+ "title": "Marca: V\u00eddeo keynotes",
+ "value": "1m"
+ },
+ {
+ "@id": "cad39470-4ce3-47f0-83f3-e0a51c00ffa5",
+ "code": {
+ "title": "Marca: Logo no local do evento",
+ "token": "62861964-c29e-4ea1-b139-90c50884a541"
+ },
+ "id": "cad39470-4ce3-47f0-83f3-e0a51c00ffa5",
+ "title": "Marca: Logo no local do evento",
+ "value": null
+ },
+ {
+ "@id": "18543c71-9367-48b3-840a-bf40f1a7f455",
+ "code": {
+ "title": "Digital: Destaque no site",
+ "token": "50f0be38-488a-4744-8bd1-7e90ebfbb681"
+ },
+ "id": "18543c71-9367-48b3-840a-bf40f1a7f455",
+ "title": "Digital: Destaque no site",
+ "value": null
+ },
+ {
+ "@id": "8524e0ad-9b3e-4dc3-bb5c-0ee9c65052f4",
+ "code": {
+ "title": "Digital: Logo em v\u00eddeos",
+ "token": "83700ec1-4229-4467-aacc-03a2e3de17eb"
+ },
+ "id": "8524e0ad-9b3e-4dc3-bb5c-0ee9c65052f4",
+ "title": "Digital: Logo em v\u00eddeos",
+ "value": null
+ },
+ {
+ "@id": "0711ac49-215f-4559-ad9d-9b1bc2e9236b",
+ "code": {
+ "title": "Digital: Post personalizado em redes sociais",
+ "token": "2f9fda0a-32f9-47a0-9ca6-1b6c20caf46a"
+ },
+ "id": "0711ac49-215f-4559-ad9d-9b1bc2e9236b",
+ "title": "Digital: Post personalizado em redes sociais",
+ "value": "5"
+ },
+ {
+ "@id": "36007391-8323-4d16-80d6-e9d3cc0c9c06",
+ "code": {
+ "title": "Digital: Post agradecimento em redes sociais",
+ "token": "b3c20966-701e-44f2-af8c-9436fd78aff7"
+ },
+ "id": "36007391-8323-4d16-80d6-e9d3cc0c9c06",
+ "title": "Digital: Post agradecimento em redes sociais",
+ "value": null
+ },
+ {
+ "@id": "382798cf-1929-4a39-840a-361ad8f22cc6",
+ "code": {
+ "title": "Digital: Logo no site",
+ "token": "750f4e1e-17ea-44f2-8af2-655d99e28a88"
+ },
+ "id": "382798cf-1929-4a39-840a-361ad8f22cc6",
+ "title": "Digital: Logo no site",
+ "value": null
+ },
+ {
+ "@id": "90a12ad1-c8bf-441c-8811-14b223782c5c",
+ "code": {
+ "title": "Intera\u00e7\u00e3o: Estande",
+ "token": "fbb995d8-a03f-471a-ae93-5da5db6dd3e6"
+ },
+ "id": "90a12ad1-c8bf-441c-8811-14b223782c5c",
+ "title": "Intera\u00e7\u00e3o: Estande",
+ "value": null
+ },
+ {
+ "@id": "649e4791-4ddd-4fbc-b342-c85b047966de",
+ "code": {
+ "title": "Intera\u00e7\u00e3o: Atividades",
+ "token": "b2193c1b-7bbf-4f27-b495-f4a76793b791"
+ },
+ "id": "649e4791-4ddd-4fbc-b342-c85b047966de",
+ "title": "Intera\u00e7\u00e3o: Atividades",
+ "value": "1 de cada"
+ },
+ {
+ "@id": "c65a0cd7-3cf9-4cc9-a9e8-96a3e2bdfc37",
+ "code": {
+ "title": "Intera\u00e7\u00e3o: E-mail",
+ "token": "162d91e1-1d01-40a0-952f-da40f9c7f9fb"
+ },
+ "id": "c65a0cd7-3cf9-4cc9-a9e8-96a3e2bdfc37",
+ "title": "Intera\u00e7\u00e3o: E-mail",
+ "value": "3"
+ },
+ {
+ "@id": "7f95ad1e-919b-4281-832e-eb904ad153ff",
+ "code": {
+ "title": "Intera\u00e7\u00e3o: Palco principal",
+ "token": "5c18f964-94bf-407c-914b-83cc0998d6d9"
+ },
+ "id": "7f95ad1e-919b-4281-832e-eb904ad153ff",
+ "title": "Intera\u00e7\u00e3o: Palco principal",
+ "value": "5m"
+ },
+ {
+ "@id": "c8ebb64b-ba35-4a78-8272-b5ebd9153f45",
+ "code": {
+ "title": "Intera\u00e7\u00e3o: Kit do participante",
+ "token": "f01b8239-31ff-40fd-9b66-b3c655a2bd5c"
+ },
+ "id": "c8ebb64b-ba35-4a78-8272-b5ebd9153f45",
+ "title": "Intera\u00e7\u00e3o: Kit do participante",
+ "value": null
+ },
+ {
+ "@id": "89dc5aad-d211-4a3e-b606-568319b15584",
+ "code": {
+ "title": "Ingressos: Inclusos",
+ "token": "9d3be2f0-e191-49b0-85a8-ac3b05519b45"
+ },
+ "id": "89dc5aad-d211-4a3e-b606-568319b15584",
+ "title": "Ingressos: Inclusos",
+ "value": "11"
+ },
+ {
+ "@id": "843f9ce1-6cbe-40fc-87f9-5825f44f493c",
+ "code": {
+ "title": "Ingressos: Desconto",
+ "token": "57c3f9de-d97e-4d47-abae-f6e2318c826a"
+ },
+ "id": "843f9ce1-6cbe-40fc-87f9-5825f44f493c",
+ "title": "Ingressos: Desconto",
+ "value": "30%"
+ }
+ ],
+ "blocks": {
+ "2507fc22-e710-49dc-b75f-8d444fdafa79": {
+ "@type": "slate",
+ "plaintext": "",
+ "styles": {},
+ "theme": "default",
+ "value": [
+ {
+ "children": [
+ {
+ "text": ""
+ }
+ ],
+ "type": "p"
+ }
+ ]
+ },
+ "dee66b60-1ac3-49b7-a476-52477b44dc4d": {
+ "@type": "sponsorLevelBlock",
+ "displayCTA": true,
+ "href": [
+ {
+ "@id": "../../resolveuid/005d63f8dd7b41818ae3e5e2ba1f36d9",
+ "@type": "Document",
+ "Description": "Garanta a sua vaga na Python Brasil 2025",
+ "Title": "Patrocine agora",
+ "hasPreviewImage": null,
+ "head_title": null,
+ "image_field": "",
+ "title": "Patrocine agora"
+ }
+ ],
+ "label": "Patrocine!",
+ "styles": {
+ "align:noprefix": {
+ "--block-alignment": "var(--align-center)"
+ }
+ },
+ "title": "Seja o primeiro"
+ },
+ "e3d31cef-fb2c-45e9-a73e-1c666b1c5b90": {
+ "@type": "title"
+ },
+ "ec7960d8-603b-4743-95c4-4a2eaf028b6f": {
+ "@type": "accordion",
+ "collapsed": false,
+ "data": {
+ "blocks": {
+ "24ffd234-53b5-4948-ae79-1422f61c1474": {
+ "@type": "accordionPanel",
+ "blocks": {
+ "19994ff9-faa9-4094-ad09-cbe990bf07bf": {
+ "@type": "slate",
+ "plaintext": "Sua logo estar\u00e1 nos nossos crach\u00e1s",
+ "styles": {},
+ "theme": "default",
+ "value": [
+ {
+ "children": [
+ {
+ "text": "Sua logo estar\u00e1 nos nossos crach\u00e1s"
+ }
+ ],
+ "type": "p"
+ }
+ ]
+ }
+ },
+ "blocks_layout": {
+ "items": [
+ "19994ff9-faa9-4094-ad09-cbe990bf07bf"
+ ]
+ },
+ "title": "Nossos participantes com sua marca no peito!"
+ },
+ "49f25694-881e-4102-a036-a16159690900": {
+ "@type": "accordionPanel",
+ "blocks": {
+ "11b9cf4f-2c96-4f27-ae98-74584ef6a098": {
+ "@type": "slate",
+ "plaintext": "Sua logo ter\u00e1 destaque em nosso site, al\u00e9m de aparecer em nossas transmiss\u00f5es no YouTube, grava\u00e7\u00f5es e intervalos entre as palestras.",
+ "styles": {},
+ "theme": "default",
+ "value": [
+ {
+ "children": [
+ {
+ "text": "Sua logo ter\u00e1\u00a0"
+ },
+ {
+ "children": [
+ {
+ "text": "destaque"
+ }
+ ],
+ "type": "strong"
+ },
+ {
+ "text": "\u00a0em nosso site, al\u00e9m de aparecer em nossas transmiss\u00f5es no YouTube, grava\u00e7\u00f5es e intervalos entre as palestras."
+ }
+ ],
+ "type": "p"
+ }
+ ]
+ },
+ "a68c25ed-f416-4c8d-9c63-4ffe89622c7e": {
+ "@type": "slate",
+ "plaintext": "Ah! ela tamb\u00e9m aparecer\u00e1 em propor\u00e7\u00e3o maior nas nossas m\u00eddias impressas (banner de boas vindas,painel de fotos e salas de palestras",
+ "styles": {},
+ "theme": "default",
+ "value": [
+ {
+ "children": [
+ {
+ "text": "Ah! ela tamb\u00e9m aparecer\u00e1 em propor\u00e7\u00e3o maior nas nossas m\u00eddias impressas (banner de boas vindas,painel de fotos e salas de palestras"
+ }
+ ],
+ "type": "p"
+ }
+ ]
+ }
+ },
+ "blocks_layout": {
+ "items": [
+ "11b9cf4f-2c96-4f27-ae98-74584ef6a098",
+ "a68c25ed-f416-4c8d-9c63-4ffe89622c7e"
+ ]
+ },
+ "title": "Sua marca em destaque"
+ },
+ "513b0dbf-b5ed-4b07-bca5-14946a0d25c4": {
+ "@type": "accordionPanel",
+ "blocks": {
+ "1432010b-240c-4990-b2d2-6a96154e74b9": {
+ "@type": "slate",
+ "plaintext": "Voc\u00ea poder\u00e1 exibir um v\u00eddeo nos momentos de maior visibilidade do evento: na abertura e encerramento do evento al\u00e9m de na abertura dos nossos keyynotes!",
+ "styles": {},
+ "theme": "default",
+ "value": [
+ {
+ "children": [
+ {
+ "text": "Voc\u00ea poder\u00e1 exibir um v\u00eddeo nos momentos de maior visibilidade do evento: na abertura e encerramento do evento al\u00e9m de na abertura dos nossos keyynotes!"
+ }
+ ],
+ "type": "p"
+ }
+ ]
+ }
+ },
+ "blocks_layout": {
+ "items": [
+ "1432010b-240c-4990-b2d2-6a96154e74b9"
+ ]
+ },
+ "title": "Todos os olhos em voc\u00ea"
+ },
+ "642211c7-c318-4a76-9cca-4d998f0e790c": {
+ "@type": "accordionPanel",
+ "blocks": {
+ "0957ef69-8300-45f8-ba00-47a8e4f832bc": {
+ "@type": "levelBenefitsBlock",
+ "tableTitle": "Compare",
+ "title": " "
+ }
+ },
+ "blocks_layout": {
+ "items": [
+ "0957ef69-8300-45f8-ba00-47a8e4f832bc"
+ ]
+ },
+ "title": "Todos os Benef\u00edcios"
+ },
+ "6433ca2c-cb5d-4978-80b8-0ac2f3b91621": {
+ "@type": "accordionPanel",
+ "blocks": {
+ "675d6bd1-f051-4e56-923c-5ec441d5b376": {
+ "@type": "slate",
+ "plaintext": "Monte um espa\u00e7o dedicado no evento para interagir com os participantes!",
+ "value": [
+ {
+ "children": [
+ {
+ "text": "Monte um espa\u00e7o dedicado no evento para interagir com os participantes!"
+ }
+ ],
+ "type": "p"
+ }
+ ]
+ },
+ "78ff9bab-be46-4ee4-8055-7be604f9c259": {
+ "@type": "slate",
+ "plaintext": "Ter\u00e1 um espa\u00e7o na programa\u00e7\u00e3o para apresentar duas atividades a serem revisada pela organiza\u00e7\u00e3o",
+ "styles": {},
+ "theme": "default",
+ "value": [
+ {
+ "children": [
+ {
+ "text": "Ter\u00e1 um espa\u00e7o na programa\u00e7\u00e3o para apresentar duas atividades a serem revisada pela organiza\u00e7\u00e3o"
+ }
+ ],
+ "type": "p"
+ }
+ ]
+ },
+ "b7ef89eb-6528-4dad-a9b3-8a017b039aef": {
+ "@type": "slate",
+ "plaintext": "At\u00e9 3 e-mails pra voc\u00ea enviar para os participantes do evento anunciando vagas, produtos ou o assunto que lhe interessar!",
+ "value": [
+ {
+ "children": [
+ {
+ "text": "At\u00e9 3 e-mails pra voc\u00ea enviar para os participantes do evento anunciando vagas, produtos ou o assunto que lhe interessar!"
+ }
+ ],
+ "type": "p"
+ }
+ ]
+ }
+ },
+ "blocks_layout": {
+ "items": [
+ "675d6bd1-f051-4e56-923c-5ec441d5b376",
+ "b7ef89eb-6528-4dad-a9b3-8a017b039aef",
+ "78ff9bab-be46-4ee4-8055-7be604f9c259"
+ ]
+ },
+ "title": "Conquiste a comunidade"
+ }
+ },
+ "blocks_layout": {
+ "items": [
+ "24ffd234-53b5-4948-ae79-1422f61c1474",
+ "49f25694-881e-4102-a036-a16159690900",
+ "513b0dbf-b5ed-4b07-bca5-14946a0d25c4",
+ "6433ca2c-cb5d-4978-80b8-0ac2f3b91621",
+ "642211c7-c318-4a76-9cca-4d998f0e790c"
+ ]
+ }
+ },
+ "filtering": false,
+ "non_exclusive": false,
+ "right_arrows": true,
+ "styles": {},
+ "theme": "red"
+ }
+ },
+ "blocks_layout": {
+ "items": [
+ "e3d31cef-fb2c-45e9-a73e-1c666b1c5b90",
+ "ec7960d8-603b-4743-95c4-4a2eaf028b6f",
+ "dee66b60-1ac3-49b7-a476-52477b44dc4d",
+ "2507fc22-e710-49dc-b75f-8d444fdafa79"
+ ]
+ },
+ "color": "#000000",
+ "created": "2025-06-16T19:12:44+00:00",
+ "description": "Sua marca em destaque!",
+ "exclude_from_nav": false,
+ "exportimport.constrains": {},
+ "exportimport.conversation": [],
+ "id": "platina",
+ "is_folderish": true,
+ "language": "##DEFAULT##",
+ "layout": "view",
+ "lock": {},
+ "modified": "2025-06-17T20:38:08+00:00",
+ "nav_title": null,
+ "preview_caption_link": null,
+ "price": "R$65.000,00",
+ "review_state": "published",
+ "title": "Platina",
+ "type_title": "Sponsorship Level",
+ "version": "current",
+ "workflow_history": {
+ "simple_publication_workflow": [
+ {
+ "action": null,
+ "actor": "admin",
+ "comments": "",
+ "review_state": "private",
+ "time": "2025-06-16T19:12:44+00:00"
+ },
+ {
+ "action": "publish",
+ "actor": "admin",
+ "comments": "",
+ "review_state": "published",
+ "time": "2025-06-16T19:20:41+00:00"
+ }
+ ]
+ },
+ "working_copy": null,
+ "working_copy_of": null
+}
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/e04f2f42f76d4742a4c8d648339ca6b9/data.json b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/e04f2f42f76d4742a4c8d648339ca6b9/data.json
new file mode 100644
index 0000000..bddef99
--- /dev/null
+++ b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/e04f2f42f76d4742a4c8d648339ca6b9/data.json
@@ -0,0 +1,40 @@
+{
+ "@id": "/images/sponsor-01-platina.png",
+ "@type": "Image",
+ "UID": "e04f2f42f76d4742a4c8d648339ca6b9",
+ "allow_discussion": null,
+ "contributors": [],
+ "created": "2025-06-16T19:30:39+00:00",
+ "creators": [
+ "admin"
+ ],
+ "description": "",
+ "effective": null,
+ "exclude_from_nav": false,
+ "expires": null,
+ "exportimport.constrains": {},
+ "exportimport.conversation": [],
+ "id": "sponsor-01-platina.png",
+ "image": {
+ "blob_path": "e04f2f42f76d4742a4c8d648339ca6b9/image/sponsor-01-platina.png",
+ "content-type": "image/png",
+ "filename": "sponsor-01-platina.png",
+ "height": 1080,
+ "size": 1558097,
+ "width": 1920
+ },
+ "is_folderish": false,
+ "language": "##DEFAULT##",
+ "layout": "image_view",
+ "lock": {},
+ "modified": "2025-06-16T19:30:39+00:00",
+ "review_state": null,
+ "rights": "",
+ "subjects": [],
+ "title": "sponsor-01-platina.png",
+ "type_title": "Image",
+ "version": "current",
+ "workflow_history": {},
+ "working_copy": null,
+ "working_copy_of": null
+}
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/e04f2f42f76d4742a4c8d648339ca6b9/image/sponsor-01-platina.png b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/e04f2f42f76d4742a4c8d648339ca6b9/image/sponsor-01-platina.png
new file mode 100644
index 0000000..dc5c7f9
Binary files /dev/null and b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/e04f2f42f76d4742a4c8d648339ca6b9/image/sponsor-01-platina.png differ
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/f9db2eccb58a4e9eb32b43708a0ebc0a/data.json b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/f9db2eccb58a4e9eb32b43708a0ebc0a/data.json
deleted file mode 100644
index af7bf55..0000000
--- a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/f9db2eccb58a4e9eb32b43708a0ebc0a/data.json
+++ /dev/null
@@ -1,71 +0,0 @@
-{
- "@id": "/patrocine/ouro",
- "@type": "SponsorLevel",
- "UID": "f9db2eccb58a4e9eb32b43708a0ebc0a",
- "allow_discussion": null,
- "blocks": {
- "144e532e-dcb9-4174-92ae-947bd95838de": {
- "@type": "slate"
- },
- "ab959845-0363-4a5c-9654-757569757414": {
- "@type": "title"
- },
- "c3cbafbe-ba10-4350-b1da-6cb696b30eb0": {
- "@type": "description"
- }
- },
- "blocks_layout": {
- "items": [
- "ab959845-0363-4a5c-9654-757569757414",
- "c3cbafbe-ba10-4350-b1da-6cb696b30eb0",
- "144e532e-dcb9-4174-92ae-947bd95838de"
- ]
- },
- "contributors": [],
- "created": "2024-10-21T00:30:07+00:00",
- "creators": [
- "e9ba8889-9bb3-4d41-9b0f-6c5dfbca6629"
- ],
- "description": "Cota ouro da PythonBrasil 2025",
- "display_frontpage": false,
- "effective": null,
- "exclude_from_nav": false,
- "expires": null,
- "exportimport.constrains": {},
- "exportimport.conversation": [],
- "id": "ouro",
- "is_folderish": true,
- "language": "##DEFAULT##",
- "layout": "view",
- "lock": {},
- "modified": "2025-01-30T21:54:49+00:00",
- "nav_title": null,
- "preview_caption": null,
- "preview_image": {
- "blob_path": "f9db2eccb58a4e9eb32b43708a0ebc0a/preview_image/ouro.png",
- "content-type": "image/png",
- "filename": "ouro.png",
- "height": 900,
- "size": 564202,
- "width": 1600
- },
- "review_state": "private",
- "rights": "",
- "subjects": [],
- "title": "Ouro",
- "type_title": "Sponsorship Level",
- "version": "current",
- "workflow_history": {
- "simple_publication_workflow": [
- {
- "action": null,
- "actor": "e9ba8889-9bb3-4d41-9b0f-6c5dfbca6629",
- "comments": "",
- "review_state": "private",
- "time": "2024-10-21T00:30:07+00:00"
- }
- ]
- },
- "working_copy": null,
- "working_copy_of": null
-}
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/f9db2eccb58a4e9eb32b43708a0ebc0a/preview_image/ouro.png b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/f9db2eccb58a4e9eb32b43708a0ebc0a/preview_image/ouro.png
deleted file mode 100644
index 24f44df..0000000
Binary files a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/f9db2eccb58a4e9eb32b43708a0ebc0a/preview_image/ouro.png and /dev/null differ
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/fa4f3a56ff634ab7a5ebb1f106126dfd/data.json b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/fa4f3a56ff634ab7a5ebb1f106126dfd/data.json
deleted file mode 100644
index 57204e3..0000000
--- a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/fa4f3a56ff634ab7a5ebb1f106126dfd/data.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "@id": "/2025-pythonbrasil-patrocinio.pdf",
- "@type": "File",
- "UID": "fa4f3a56ff634ab7a5ebb1f106126dfd",
- "allow_discussion": null,
- "contributors": [],
- "created": "2025-01-13T12:24:08+00:00",
- "creators": [
- "e9ba8889-9bb3-4d41-9b0f-6c5dfbca6629"
- ],
- "description": "",
- "effective": null,
- "exclude_from_nav": false,
- "expires": null,
- "exportimport.constrains": {},
- "exportimport.conversation": [],
- "file": {
- "blob_path": "fa4f3a56ff634ab7a5ebb1f106126dfd/file/2025-pythonbrasil-patrocinio.pdf",
- "content-type": "application/pdf",
- "filename": "2025-pythonbrasil-patrocinio.pdf",
- "size": 19552542
- },
- "id": "2025-pythonbrasil-patrocinio.pdf",
- "is_folderish": false,
- "language": "##DEFAULT##",
- "layout": "file_view",
- "lock": {},
- "modified": "2025-01-13T12:24:08+00:00",
- "review_state": null,
- "rights": "",
- "subjects": [],
- "title": "2025-pythonbrasil-patrocinio.pdf",
- "type_title": "File",
- "version": "current",
- "workflow_history": {},
- "working_copy": null,
- "working_copy_of": null
-}
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/fa4f3a56ff634ab7a5ebb1f106126dfd/file/2025-pythonbrasil-patrocinio.pdf b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/fa4f3a56ff634ab7a5ebb1f106126dfd/file/2025-pythonbrasil-patrocinio.pdf
deleted file mode 100644
index b724071..0000000
Binary files a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/fa4f3a56ff634ab7a5ebb1f106126dfd/file/2025-pythonbrasil-patrocinio.pdf and /dev/null differ
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/plone_site_root/data.json b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/plone_site_root/data.json
index 705d3ff..41114e3 100644
--- a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/plone_site_root/data.json
+++ b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/content/plone_site_root/data.json
@@ -3,6 +3,26 @@
"@type": "Plone Site",
"UID": "plone_site_root",
"allow_discussion": null,
+ "audience": [
+ {
+ "@id": "f59d4635-5f42-4775-8641-9fbff8df46de",
+ "color": "#000000",
+ "id": "f59d4635-5f42-4775-8641-9fbff8df46de",
+ "title": "Desenvolvedor"
+ },
+ {
+ "@id": "1b882a1a-2f75-44bf-af32-c4095d47829c",
+ "color": "#000000",
+ "id": "1b882a1a-2f75-44bf-af32-c4095d47829c",
+ "title": "SysAdmin"
+ },
+ {
+ "@id": "3e0faf55-6d23-447f-bbc3-3e7636b2384a",
+ "color": "#000000",
+ "id": "3e0faf55-6d23-447f-bbc3-3e7636b2384a",
+ "title": "Cientista de Dados"
+ }
+ ],
"blocks": {
"31f67a28-5a49-40c0-bb4a-6d2279057163": {
"@type": "gridBlock",
@@ -18,7 +38,7 @@
],
"label": "Submeta sua proposta",
"styles": {},
- "theme": "default",
+ "theme": "grey",
"title": "Submiss\u00e3o de atividades"
},
"af098dc9-9fc6-4600-b40f-161a88513807": {
@@ -32,6 +52,7 @@
],
"label": "Garanta seu Ingresso",
"styles": {},
+ "theme": "grey",
"title": "Ingressos \u00e0 venda"
}
},
@@ -59,13 +80,26 @@
],
"label": "Plano de Patroc\u00ednio",
"styles": {},
- "theme": "grey",
- "title": "Patrocine"
+ "theme": "grey"
+ },
+ "d8734f0c-a866-4bae-8bb6-9be55e8fd203": {
+ "@type": "gridCTA",
+ "description": "Associate your company with the largest Python event in Latin America!\n\n",
+ "href": [
+ {
+ "@id": "https://www.canva.com/design/DAGe_yZ0SdI/myPIGUAEQAnrwKhJE_7Bag/view?utm_content=DAGe_yZ0SdI&utm_campaign=designshare&utm_medium=link2&utm_source=uniquelinks&utlId=h7f3e8c2330",
+ "title": "www.canva.com/design/DAGe_yZ0SdI/myPIGUAEQAnrwKhJE_7Bag/view?utm_content=DAGe_yZ0SdI&utm_campaign=designshare&utm_medium=link2&utm_source=uniquelinks&utlId=h7f3e8c2330"
+ }
+ ],
+ "label": "Sponsorship Plan",
+ "styles": {},
+ "theme": "grey"
}
},
"blocks_layout": {
"items": [
- "7fe2ce92-edb0-4125-8e1a-898ed523de70"
+ "7fe2ce92-edb0-4125-8e1a-898ed523de70",
+ "d8734f0c-a866-4bae-8bb6-9be55e8fd203"
]
},
"headline": "Patrocine",
@@ -79,23 +113,32 @@
"credit": {},
"description": "",
"image_field": "image",
- "size": "l",
+ "size": "m",
"styles": {
"blockWidth:noprefix": {
"--block-width": "100%"
},
- "size:noprefix": "large"
+ "size:noprefix": "medium"
},
"theme": "grey",
"title": "main.png",
"url": "resolveuid/03e3d75a791d4fa98378626ba8f62d07"
+ },
+ "801b9ea5-f374-48ec-836f-0d293b9e11f0": {
+ "@type": "sponsorsShowcaseBlock",
+ "styles": {
+ "align:noprefix": {
+ "--block-alignment": "var(--align-center)"
+ }
+ }
}
},
"blocks_layout": {
"items": [
"42165e4a-c5c1-4229-8161-00f96b0deab0",
"31f67a28-5a49-40c0-bb4a-6d2279057163",
- "345e2281-cedc-44c2-9aa3-600a885d1bb0"
+ "345e2281-cedc-44c2-9aa3-600a885d1bb0",
+ "801b9ea5-f374-48ec-836f-0d293b9e11f0"
]
},
"contributors": [],
@@ -103,7 +146,42 @@
"admin"
],
"description": "Encontro da comunidade Python brasileira, entre 21 a 27 de Outubro, em S\u00e3o Paulo, SP",
+ "durations_keynote": [
+ {
+ "@id": "e9a4d1d1-1917-45d4-b2f6-0ad27155fb8e",
+ "color": "#000000",
+ "duration": 60,
+ "id": "e9a4d1d1-1917-45d4-b2f6-0ad27155fb8e",
+ "title": "Keynote"
+ }
+ ],
+ "durations_talk": [
+ {
+ "@id": "bb30e5d6-d8cd-4ab1-805c-2b135a084e23",
+ "color": "#000000",
+ "duration": 43,
+ "id": "bb30e5d6-d8cd-4ab1-805c-2b135a084e23",
+ "title": "Palestra"
+ }
+ ],
+ "durations_training": [
+ {
+ "@id": "3377164e-b54f-4a38-8496-81ea7929c293",
+ "color": "#000000",
+ "duration": 210,
+ "id": "3377164e-b54f-4a38-8496-81ea7929c293",
+ "title": "Tutorial Curto"
+ },
+ {
+ "@id": "2ef0c0ce-9ed1-4305-8177-65ba1abd2053",
+ "color": "#000000",
+ "duration": 420,
+ "id": "2ef0c0ce-9ed1-4305-8177-65ba1abd2053",
+ "title": "Tutorial Longo"
+ }
+ ],
"effective": null,
+ "end": "2025-10-27T21:00:00",
"exclude_from_nav": false,
"expires": null,
"exportimport.constrains": {},
@@ -117,7 +195,6 @@
{
"@id": "resolveuid/f17ec2cb79cf4a75896ce3a6b5bc8f54",
"@type": "Document",
- "Description": "Entre em contato com a organiza\u00e7\u00e3o da Python Brasil 2025",
"Title": "Fale Conosco",
"title": "Fale Conosco"
}
@@ -130,7 +207,6 @@
{
"@id": "resolveuid/24689ede20f346c09ce7d50b68ff893b",
"@type": "Document",
- "Description": "Tire suas d\u00favidas sobre a Python Brasil 2025",
"Title": "Perguntas Frequentes",
"title": "Perguntas Frequentes"
}
@@ -143,7 +219,6 @@
{
"@id": "resolveuid/52e0e3e2d1564eca97eb22eae2fbebbf",
"@type": "Document",
- "Description": "Todos os participantes, instrutores e organizadores da confer\u00eancia concordam em cumprir o C\u00f3digo de Conduta da PythonBrasil.",
"Title": "C\u00f3digo de Conduta",
"title": "C\u00f3digo de Conduta"
}
@@ -153,8 +228,34 @@
],
"id": "Plone",
"is_folderish": true,
- "items_total": 5,
+ "items_total": 4,
"language": "##DEFAULT##",
+ "levels": [
+ {
+ "@id": "cf82dd87-e832-46c4-93d9-ab732b0c2796",
+ "color": "#b022fc",
+ "id": "cf82dd87-e832-46c4-93d9-ab732b0c2796",
+ "title": "N\u00e3o t\u00e9cnico"
+ },
+ {
+ "@id": "bf82dd87-e832-46c4-93d9-ab732b0c2796",
+ "color": "#f228ad",
+ "id": "bf82dd87-e832-46c4-93d9-ab732b0c2796",
+ "title": "Iniciante"
+ },
+ {
+ "@id": "00dfc721-461f-413a-bf93-8d32b7652938",
+ "color": "#608cfc",
+ "id": "00dfc721-461f-413a-bf93-8d32b7652938",
+ "title": "Intermedi\u00e1rio"
+ },
+ {
+ "@id": "db001064-afc5-4a62-a185-9621794835ee",
+ "color": "#65ffac",
+ "id": "db001064-afc5-4a62-a185-9621794835ee",
+ "title": "Avan\u00e7ado"
+ }
+ ],
"lock": {
"locked": false,
"stealable": true
@@ -165,7 +266,7 @@
"share_social_data": true,
"social_links": [
{
- "@id": "c67e5d80-1744-43f0-9bd8-4f58511194ad",
+ "@id": "92f5e920-4b62-4a2d-a946-88aade142c92",
"href": [
{
"@id": "https://pynews.com.br/@pythonbrasil",
@@ -176,7 +277,7 @@
"title": "Mastodon"
},
{
- "@id": "444ef18c-b773-43ea-8594-131e6d35a645",
+ "@id": "2aac5536-5845-46dc-8d92-5a37d42408f3",
"href": [
{
"@id": "https://x.com/pythonbrasil/",
@@ -187,7 +288,7 @@
"title": "X"
},
{
- "@id": "2fc33af3-8aa5-4e94-a783-845a5add2ded",
+ "@id": "3573b116-6600-4b46-9f74-4eba989069d1",
"href": [
{
"@id": "https://instagram.com/pythonbrasil/",
@@ -198,7 +299,7 @@
"title": "Instagram"
},
{
- "@id": "5889d02c-a6a1-43e0-9799-b17e899843fc",
+ "@id": "55509911-d37c-4f39-abba-023d3a5d039d",
"href": [
{
"@id": "https://bsky.app/profile/pythonbrasil.bsky.social",
@@ -209,7 +310,7 @@
"title": "BlueSky"
},
{
- "@id": "360468f5-d9a3-41f1-a2c6-e66a79aebda9",
+ "@id": "fa748813-7100-4e67-9446-f37dffdd1be0",
"href": [
{
"@id": "https://www.linkedin.com/company/apyb/",
@@ -220,7 +321,7 @@
"title": "LinkedIn APyB"
},
{
- "@id": "b91a5edc-c0bc-4907-98a5-4e57dd45a154",
+ "@id": "95c6ef13-c200-43be-89f9-724133210ccc",
"href": [
{
"@id": "https://www.youtube.com/c/pythonbrasiloficial",
@@ -231,8 +332,17 @@
"title": "YouTube"
}
],
+ "start": "2025-10-21T12:00:00",
"subjects": [],
"title": "PythonBrasil 2025",
+ "tracks": [
+ {
+ "@id": "0194e593-f268-4df2-a217-b6bfd0b0cf8b",
+ "color": "#000000",
+ "id": "0194e593-f268-4df2-a217-b6bfd0b0cf8b",
+ "title": "Ci\u00eancia e An\u00e1lise de Dados"
+ }
+ ],
"type_title": "Plone Site",
"workflow_history": {},
"working_copy": null,
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/discussions.json b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/discussions.json
new file mode 100644
index 0000000..0967ef4
--- /dev/null
+++ b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/discussions.json
@@ -0,0 +1 @@
+{}
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/portlets.json b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/portlets.json
new file mode 100644
index 0000000..d9df1dc
--- /dev/null
+++ b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/portlets.json
@@ -0,0 +1,67 @@
+[
+ {
+ "@id": "http://nohost/Plone",
+ "UID": "plone_site_root",
+ "portlets": {
+ "plone.footerportlets": [
+ {
+ "assignment": {
+ "macro": "",
+ "template": "@@footer"
+ },
+ "type": "portlets.Classic",
+ "visible": true
+ },
+ {
+ "assignment": {
+ "category": "site_actions",
+ "default_icon": "action_icon.png",
+ "ptitle": "site_actions",
+ "show_icons": false,
+ "show_title": false
+ },
+ "type": "portlets.Actions",
+ "visible": true
+ },
+ {
+ "assignment": {
+ "macro": "",
+ "template": "colophon"
+ },
+ "type": "portlets.Classic",
+ "visible": true
+ }
+ ],
+ "plone.leftcolumn": [
+ {
+ "assignment": {
+ "bottomLevel": 0,
+ "currentFolderOnly": false,
+ "includeTop": false,
+ "name": "",
+ "no_icons": false,
+ "no_thumbs": false,
+ "root_uid": null,
+ "thumb_scale": null,
+ "topLevel": 1
+ },
+ "type": "portlets.Navigation",
+ "visible": true
+ }
+ ],
+ "plone.rightcolumn": [
+ {
+ "assignment": {
+ "count": 5,
+ "no_thumbs": false,
+ "search_base_uid": null,
+ "state": null,
+ "thumb_scale": null
+ },
+ "type": "portlets.Events",
+ "visible": true
+ }
+ ]
+ }
+ }
+]
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/principals.json b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/principals.json
new file mode 100644
index 0000000..1cd68ad
--- /dev/null
+++ b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/principals.json
@@ -0,0 +1,38 @@
+{
+ "groups": [
+ {
+ "description": "",
+ "email": "",
+ "groupid": "Administrators",
+ "groups": [],
+ "principals": [],
+ "roles": [
+ "Manager"
+ ],
+ "title": "Administrators"
+ },
+ {
+ "description": "",
+ "email": "",
+ "groupid": "Reviewers",
+ "groups": [],
+ "principals": [],
+ "roles": [
+ "Reviewer"
+ ],
+ "title": "Reviewers"
+ },
+ {
+ "description": "",
+ "email": "",
+ "groupid": "Site Administrators",
+ "groups": [],
+ "principals": [],
+ "roles": [
+ "Site Administrator"
+ ],
+ "title": "Site Administrators"
+ }
+ ],
+ "members": []
+}
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/redirects.json b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/redirects.json
index 8e4c5da..30ccb14 100644
--- a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/redirects.json
+++ b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/redirects.json
@@ -1,6 +1,5 @@
{
"/Plone/evento/fale-conosco": "/Plone/evento/contato",
- "/Plone/programacao": "/Plone/agenda",
"/Plone/sobre": "/Plone/evento",
"/Plone/sobre/codigo-de-conduta": "/Plone/evento/codigo-de-conduta"
}
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/relations.json b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/relations.json
index 96d3fbc..0045582 100644
--- a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/relations.json
+++ b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/relations.json
@@ -1,7 +1,102 @@
[
{
"from_attribute": "isReferencing",
- "from_uuid": "3f772cc1b1104023b2a7865f89a1f5be",
+ "from_uuid": "0b7437380fe441aa8673ceaa662e92c5",
+ "to_uuid": "005d63f8dd7b41818ae3e5e2ba1f36d9"
+ },
+ {
+ "from_attribute": "preview_image_link",
+ "from_uuid": "0b7437380fe441aa8673ceaa662e92c5",
+ "to_uuid": "747b642b7b444a9ca08fcabd50a702c8"
+ },
+ {
+ "from_attribute": "isReferencing",
+ "from_uuid": "17000670d687482992d5a85fdb1f82e6",
+ "to_uuid": "0b7437380fe441aa8673ceaa662e92c5"
+ },
+ {
+ "from_attribute": "isReferencing",
+ "from_uuid": "17000670d687482992d5a85fdb1f82e6",
+ "to_uuid": "922ba8ede6da49dc850dc25a7e5061e2"
+ },
+ {
+ "from_attribute": "isReferencing",
+ "from_uuid": "17000670d687482992d5a85fdb1f82e6",
+ "to_uuid": "cc193578bdf2480c8274e682b06dbfb9"
+ },
+ {
+ "from_attribute": "isReferencing",
+ "from_uuid": "17000670d687482992d5a85fdb1f82e6",
+ "to_uuid": "de070eedcb854959a6a4be4d87c083e3"
+ },
+ {
+ "from_attribute": "isReferencing",
+ "from_uuid": "2348cfad095c4831957c3f87a5194f7b",
"to_uuid": "03e3d75a791d4fa98378626ba8f62d07"
+ },
+ {
+ "from_attribute": "isReferencing",
+ "from_uuid": "315a2084d7dd400584a2d47cf87b1c89",
+ "to_uuid": "ad3efc4190bd4ac6b1cc077751d473f0"
+ },
+ {
+ "from_attribute": "isReferencing",
+ "from_uuid": "81bb6aa3c33644c296ffbc767b8c05c7",
+ "to_uuid": "24689ede20f346c09ce7d50b68ff893b"
+ },
+ {
+ "from_attribute": "isReferencing",
+ "from_uuid": "81bb6aa3c33644c296ffbc767b8c05c7",
+ "to_uuid": "75b28d31bea949fcae586531699f0f88"
+ },
+ {
+ "from_attribute": "isReferencing",
+ "from_uuid": "81bb6aa3c33644c296ffbc767b8c05c7",
+ "to_uuid": "ac949e0e29524a619dfb4caf015085ba"
+ },
+ {
+ "from_attribute": "isReferencing",
+ "from_uuid": "81bb6aa3c33644c296ffbc767b8c05c7",
+ "to_uuid": "c630576df3264cb0ad7799d28f52a393"
+ },
+ {
+ "from_attribute": "isReferencing",
+ "from_uuid": "922ba8ede6da49dc850dc25a7e5061e2",
+ "to_uuid": "005d63f8dd7b41818ae3e5e2ba1f36d9"
+ },
+ {
+ "from_attribute": "preview_image_link",
+ "from_uuid": "922ba8ede6da49dc850dc25a7e5061e2",
+ "to_uuid": "bb8dcc0085c64d9cbc2757a4df392701"
+ },
+ {
+ "from_attribute": "isReferencing",
+ "from_uuid": "ac949e0e29524a619dfb4caf015085ba",
+ "to_uuid": "ad3efc4190bd4ac6b1cc077751d473f0"
+ },
+ {
+ "from_attribute": "preview_image_link",
+ "from_uuid": "ad3efc4190bd4ac6b1cc077751d473f0",
+ "to_uuid": "75b28d31bea949fcae586531699f0f88"
+ },
+ {
+ "from_attribute": "isReferencing",
+ "from_uuid": "cc193578bdf2480c8274e682b06dbfb9",
+ "to_uuid": "005d63f8dd7b41818ae3e5e2ba1f36d9"
+ },
+ {
+ "from_attribute": "preview_image_link",
+ "from_uuid": "cc193578bdf2480c8274e682b06dbfb9",
+ "to_uuid": "3ae5a29af55148b2a69e2997155775ce"
+ },
+ {
+ "from_attribute": "isReferencing",
+ "from_uuid": "de070eedcb854959a6a4be4d87c083e3",
+ "to_uuid": "005d63f8dd7b41818ae3e5e2ba1f36d9"
+ },
+ {
+ "from_attribute": "preview_image_link",
+ "from_uuid": "de070eedcb854959a6a4be4d87c083e3",
+ "to_uuid": "e04f2f42f76d4742a4c8d648339ca6b9"
}
]
diff --git a/backend/src/pythonbrasil/site/setuphandlers/examplecontent/translations.json b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/translations.json
new file mode 100644
index 0000000..fe51488
--- /dev/null
+++ b/backend/src/pythonbrasil/site/setuphandlers/examplecontent/translations.json
@@ -0,0 +1 @@
+[]
diff --git a/backend/src/pythonbrasil/site/upgrades/configure.zcml b/backend/src/pythonbrasil/site/upgrades/configure.zcml
index 4b65075..d508db4 100644
--- a/backend/src/pythonbrasil/site/upgrades/configure.zcml
+++ b/backend/src/pythonbrasil/site/upgrades/configure.zcml
@@ -4,6 +4,7 @@
>
+
diff --git a/backend/src/pythonbrasil/site/upgrades/v20250616001/__init__.py b/backend/src/pythonbrasil/site/upgrades/v20250616001/__init__.py
new file mode 100644
index 0000000..ffc6326
--- /dev/null
+++ b/backend/src/pythonbrasil/site/upgrades/v20250616001/__init__.py
@@ -0,0 +1,30 @@
+from pathlib import Path
+from plone import api
+from Products.GenericSetup.tool import SetupTool
+from pythonbrasil.site import logger
+from pythonbrasil.site.setuphandlers.initial import create_example_content
+
+
+BASE_PATH = Path(__file__).parent
+
+
+def remove_pasta_patrocinio(setup_tool: SetupTool):
+ """Remove a pasta /patrocine."""
+ logger.info("Removendo a pasta /patrocine")
+ pasta = api.content.get(path="/patrocine")
+ api.content.delete(pasta, check_linkintegrity=False)
+ logger.info("Pasta /patrocine removida")
+
+
+def remove_pasta_agenda(setup_tool: SetupTool):
+ """Remove a pasta /agenda."""
+ logger.info("Removendo a pasta /agenda")
+ pasta = api.content.get(path="/agenda")
+ api.content.delete(pasta, check_linkintegrity=False)
+ logger.info("Pasta /agenda removida")
+
+
+def configura_techevent(setup_tool: SetupTool):
+ """Configura techevent."""
+ create_example_content(setup_tool)
+ logger.info("Atualizando o conteúdo do site")
diff --git a/backend/src/pythonbrasil/site/upgrades/v20250616001/configure.zcml b/backend/src/pythonbrasil/site/upgrades/v20250616001/configure.zcml
new file mode 100644
index 0000000..8daca39
--- /dev/null
+++ b/backend/src/pythonbrasil/site/upgrades/v20250616001/configure.zcml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/backend/tests/setup/test_setup_install.py b/backend/tests/setup/test_setup_install.py
index 4ec9b3b..b007627 100644
--- a/backend/tests/setup/test_setup_install.py
+++ b/backend/tests/setup/test_setup_install.py
@@ -14,4 +14,4 @@ def test_browserlayer(self, browser_layers):
def test_latest_version(self, profile_last_version):
"""Test latest version of default profile."""
- assert profile_last_version(f"{PACKAGE_NAME}:default") == "20250425001"
+ assert profile_last_version(f"{PACKAGE_NAME}:default") == "20250616001"
diff --git a/backend/uv.lock b/backend/uv.lock
index 07e9806..aa7573e 100644
--- a/backend/uv.lock
+++ b/backend/uv.lock
@@ -42,6 +42,7 @@ constraints = [
{ name = "collective-recipe-omelette", specifier = "==2.0.0" },
{ name = "collective-recipe-template", specifier = "==2.2" },
{ name = "collective-recipe-vscode", specifier = "==0.1.9" },
+ { name = "collective-techevent", specifier = "==1.0.0a5" },
{ name = "collective-xmltestreport", specifier = "==2.0.2" },
{ name = "collective-z3cform-datagridfield", specifier = "==3.0.3" },
{ name = "colorama", specifier = "==0.4.6" },
@@ -117,7 +118,7 @@ constraints = [
{ name = "outcome", specifier = "==1.3.0.post0" },
{ name = "overrides", specifier = "==7.7.0" },
{ name = "packaging", specifier = "==24.2" },
- { name = "pas-plugins-authomatic", specifier = "==2.0.0rc3" },
+ { name = "pas-plugins-authomatic", specifier = "==2.0.0" },
{ name = "paste", specifier = "==3.10.1" },
{ name = "pastedeploy", specifier = "==3.1.0" },
{ name = "pdbpp", specifier = "==0.10.3" },
@@ -233,7 +234,7 @@ constraints = [
{ name = "plone-versioncheck", specifier = "==1.8.2" },
{ name = "plone-volto", specifier = "==5.0.4" },
{ name = "plone-z3cform", specifier = "==2.0.4" },
- { name = "plonegovbr-socialmedia", specifier = "==2.0.0a5" },
+ { name = "plonegovbr-socialmedia", specifier = ">=2.0.0a5" },
{ name = "plonetheme-barceloneta", specifier = "==3.2.3" },
{ name = "pluggy", specifier = "==1.5.0" },
{ name = "products-btreefolder2", specifier = "==5.1" },
@@ -753,6 +754,23 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/84/89/02f5a44aeae4a415c2c93ae4174941fa1b99669d91705e58161afa8613f4/collective_monkeypatcher-2.0.0-py3-none-any.whl", hash = "sha256:8cde16accc65770ddc7a151540267c711d44afb1e7ce3815711b39c6497ad628", size = 12930 },
]
+[[package]]
+name = "collective-techevent"
+version = "1.0.0a5"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "collective-z3cform-datagridfield" },
+ { name = "plone-api" },
+ { name = "plone-restapi" },
+ { name = "plone-volto" },
+ { name = "plonegovbr-socialmedia" },
+ { name = "products-cmfplone" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/79/18/7a9fbc5f84d5f7b24dfde8225c39901fabc0b73b2884ddceafaf78dc0f83/collective_techevent-1.0.0a5.tar.gz", hash = "sha256:d390100880648d61eaab411425ad7b7df1fae677385047a6bc8c1e6196139065", size = 3535526 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/90/24/002f5f4cacfd7c574a58ac1936227632852eade5036a25b246cfa4cca520/collective_techevent-1.0.0a5-py3-none-any.whl", hash = "sha256:c5126f2cc3f079a58a0bafdf98d3bf3f1afd8a431e45b69d092850c27fafa57f", size = 3581370 },
+]
+
[[package]]
name = "collective-volto-formsupport"
version = "3.2.3"
@@ -794,6 +812,27 @@ dependencies = [
]
sdist = { url = "https://files.pythonhosted.org/packages/40/b2/943899f15dd832e1f004318fa77fa5fe825eebccd237e750efa64c1abd43/collective.volto.otp-1.0.1.tar.gz", hash = "sha256:8b54dd62995a61a0318bed48e4f8f2d4da5984a73d333d6359d425f71a0c58d1", size = 28687 }
+[[package]]
+name = "collective-z3cform-datagridfield"
+version = "3.0.3"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "plone-app-dexterity" },
+ { name = "plone-app-z3cform" },
+ { name = "plone-autoform" },
+ { name = "plone-base" },
+ { name = "plone-dexterity" },
+ { name = "plone-restapi" },
+ { name = "plone-supermodel" },
+ { name = "products-genericsetup" },
+ { name = "setuptools" },
+ { name = "z3c-form" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/2b/69/fb5f0e9828b25fe946b3f65c83e4a8e7618de17252c377b71361ceb5d4a3/collective_z3cform_datagridfield-3.0.3.tar.gz", hash = "sha256:8cd37430680909433fd54c42e2349d5d011877591431af1cb282b7373d27b678", size = 559398 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/61/b8/362a2394c861c0fa66bd471b68b7a4644000c843a17314e992cc74ffdea5/collective.z3cform.datagridfield-3.0.3-py3-none-any.whl", hash = "sha256:645c2323e638cf275776c5ef66171cc24f785e2950ee2469e090c8c8489499d3", size = 391106 },
+]
+
[[package]]
name = "colorama"
version = "0.4.6"
@@ -1432,7 +1471,7 @@ wheels = [
[[package]]
name = "pas-plugins-authomatic"
-version = "2.0.0rc3"
+version = "2.0.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "authomatic" },
@@ -1440,9 +1479,9 @@ dependencies = [
{ name = "plone-restapi" },
{ name = "products-cmfplone" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/c9/7f/d7ad945decb6d32048d56a5b242ac45f64b1f5bafd2d763c23d950e026a4/pas_plugins_authomatic-2.0.0rc3.tar.gz", hash = "sha256:f7affc49c094380ef612583f3d3c56c8c16fd2cdbfcddac70106b223cb941610", size = 185098 }
+sdist = { url = "https://files.pythonhosted.org/packages/2c/7b/84920c8cb580432134c542a7137c2c3569a182f0a1fb25b1328fa7239995/pas_plugins_authomatic-2.0.0.tar.gz", hash = "sha256:7c6b9eb2558c8ff6aa6703578d6498cf291bd3d5684753ee753e1bf61ccaf709", size = 184905 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/32/b3/15cdc58097dd9a253c5914f455d0254989caeeafe7c073bcbbcc25816525/pas_plugins_authomatic-2.0.0rc3-py3-none-any.whl", hash = "sha256:9e90e35ae92a3edc76611f71a8b5f2c91889c8f26707b8c559ea60e9ea2fc6f2", size = 62851 },
+ { url = "https://files.pythonhosted.org/packages/e8/52/4ff1fe71cffc3a9318c314115899172b18b46cf3c684767d0f3e1f204f7e/pas_plugins_authomatic-2.0.0-py3-none-any.whl", hash = "sha256:41ce9149c93dc1ddec5098a1a7a4b8c737662d3454d3499ad237430619a2b853", size = 62564 },
]
[[package]]
@@ -4370,6 +4409,7 @@ name = "pythonbrasil-site"
source = { editable = "." }
dependencies = [
{ name = "collective-honeypot" },
+ { name = "collective-techevent" },
{ name = "collective-volto-formsupport" },
{ name = "pas-plugins-authomatic" },
{ name = "plone-api" },
@@ -4405,8 +4445,9 @@ test = [
[package.metadata]
requires-dist = [
{ name = "collective-honeypot" },
+ { name = "collective-techevent", specifier = "==1.0.0a5" },
{ name = "collective-volto-formsupport" },
- { name = "pas-plugins-authomatic", specifier = "==2.0.0rc3" },
+ { name = "pas-plugins-authomatic", specifier = "==2.0.0" },
{ name = "plone-api" },
{ name = "plone-app-discussion" },
{ name = "plone-app-upgrade" },
diff --git a/frontend/mrs.developer.json b/frontend/mrs.developer.json
index 2b2bc7b..5f1f16e 100644
--- a/frontend/mrs.developer.json
+++ b/frontend/mrs.developer.json
@@ -4,6 +4,7 @@
"package": "@plone/volto",
"url": "git@github.com:plone/volto.git",
"https": "https://github.com/plone/volto.git",
- "tag": "18.14.0"
+ "tag": "18.23.0",
+ "filterBlobs": true
}
}
diff --git a/frontend/packages/volto-pythonbrasil-site/news/+authomatic.internal b/frontend/packages/volto-pythonbrasil-site/news/+authomatic.internal
new file mode 100644
index 0000000..251e533
--- /dev/null
+++ b/frontend/packages/volto-pythonbrasil-site/news/+authomatic.internal
@@ -0,0 +1 @@
+Atualiza `@plone-collective/volto-authomatic` para versão 3.0.0-alpha.3. @ericof
diff --git a/frontend/packages/volto-pythonbrasil-site/news/+techevent.feature b/frontend/packages/volto-pythonbrasil-site/news/+techevent.feature
new file mode 100644
index 0000000..46f193c
--- /dev/null
+++ b/frontend/packages/volto-pythonbrasil-site/news/+techevent.feature
@@ -0,0 +1 @@
+Adiciona `@plone-collective/volto-techevent`. @ericof
diff --git a/frontend/packages/volto-pythonbrasil-site/news/+vlt.internal b/frontend/packages/volto-pythonbrasil-site/news/+vlt.internal
new file mode 100644
index 0000000..0297693
--- /dev/null
+++ b/frontend/packages/volto-pythonbrasil-site/news/+vlt.internal
@@ -0,0 +1 @@
+Atualiza `@kitconcept/voltolighttheme` para versão 7.0.0-alpha.10. @ericof
diff --git a/frontend/packages/volto-pythonbrasil-site/news/+volto.internal b/frontend/packages/volto-pythonbrasil-site/news/+volto.internal
new file mode 100644
index 0000000..413f098
--- /dev/null
+++ b/frontend/packages/volto-pythonbrasil-site/news/+volto.internal
@@ -0,0 +1 @@
+Atualiza `@plone/volto` para versão 18.23.0. @ericof
diff --git a/frontend/packages/volto-pythonbrasil-site/package.json b/frontend/packages/volto-pythonbrasil-site/package.json
index 9ffd7e4..23d9e7d 100644
--- a/frontend/packages/volto-pythonbrasil-site/package.json
+++ b/frontend/packages/volto-pythonbrasil-site/package.json
@@ -27,6 +27,7 @@
"release-alpha": "release-it --preRelease=alpha"
},
"addons": [
+ "@eeacms/volto-matomo",
"@eeacms/volto-accordion-block",
"@kitconcept/volto-slider-block",
"@kitconcept/volto-social-blocks",
@@ -39,25 +40,28 @@
"@plone-collective/volto-authomatic",
"@plone-collective/volto-eventbrite-block",
"@kitconcept/volto-heading-block",
- "@kitconcept/volto-light-theme",
- "@eeacms/volto-matomo"
+ "@plone-collective/volto-techevent",
+ "@kitconcept/volto-light-theme"
],
"dependencies": {
"@plone/components": "workspace:*",
"@plone/registry": "workspace:*",
"@eeacms/volto-matomo": "*",
"@eeacms/volto-statistic-block": "*",
- "@kitconcept/volto-light-theme": "^6.0.0-alpha.22",
+ "@plone-collective/volto-techevent": "1.0.0-alpha.5",
+ "@kitconcept/volto-light-theme": "7.0.0-alpha.10",
"@kitconcept/volto-social-blocks": "1.0.0-alpha.8",
"@mbarde/volto-image-crop-widget": "0.5.1",
- "@plone-collective/volto-authomatic": "2.0.1",
+ "@plone-collective/volto-authomatic": "3.0.0-alpha.3",
"@plone-collective/volto-eventbrite-block": "^1.0.0-alpha.2",
- "@plonegovbr/volto-social-media": "^2.0.0-alpha.5",
+ "@plonegovbr/volto-social-media": "^2.0.0-alpha.6",
"volto-form-block": "*"
},
"peerDependencies": {
"react": "18.2.0",
- "react-dom": "18.2.0"
+ "react-dom": "18.2.0",
+ "react-portal": "*",
+ "@eeacms/volto-accordion-block": "*"
},
"devDependencies": {
"@plone/scripts": "workspace:*",
diff --git a/frontend/packages/volto-pythonbrasil-site/src/components/Blocks/Teaser/SimpleBodyTemplate.jsx b/frontend/packages/volto-pythonbrasil-site/src/components/Blocks/Teaser/SimpleBodyTemplate.jsx
deleted file mode 100644
index e7e4e5b..0000000
--- a/frontend/packages/volto-pythonbrasil-site/src/components/Blocks/Teaser/SimpleBodyTemplate.jsx
+++ /dev/null
@@ -1,9 +0,0 @@
-import TeaserDefaultTemplate from '@plone/volto/components/manage/Blocks/Teaser/DefaultBody';
-
-const SimpleBodyTemplate = (props) => {
- let { className } = props;
- className = `${className} simpleTemplate`;
- return ;
-};
-
-export default SimpleBodyTemplate;
diff --git a/frontend/packages/volto-pythonbrasil-site/src/config/blocks.ts b/frontend/packages/volto-pythonbrasil-site/src/config/blocks.ts
index d9d74af..dafbe65 100644
--- a/frontend/packages/volto-pythonbrasil-site/src/config/blocks.ts
+++ b/frontend/packages/volto-pythonbrasil-site/src/config/blocks.ts
@@ -4,9 +4,6 @@ import { composeSchema } from '@plone/volto/helpers/Extensions';
import { defaultStylingSchema } from '@kitconcept/volto-light-theme/components/Blocks/schema';
// Blocks
-/// Teaser
-import TeaserDefaultTemplate from '@plone/volto/components/manage/Blocks/Teaser/DefaultBody';
-
/// GridCTA
import GridCTAEdit from '@plonegovbr/volto-pythonbrasil-site/components/Blocks/GridCTA/Edit';
import GridCTAView from '@plonegovbr/volto-pythonbrasil-site/components/Blocks/GridCTA/View';
@@ -21,6 +18,7 @@ import chamadaSVG from '@plone/volto/icons/asterisk.svg';
declare module '@plone/types' {
export interface BlocksConfigData {
+ accordion: BlockConfigBase;
gridCTA: BlockConfigBase;
chamadaBlock: BlockConfigBase;
}
@@ -69,26 +67,6 @@ function installBlocks(config: ConfigType) {
return config;
}
-function installTeaserVariations(config: ConfigType) {
- const teaserVariations = [
- {
- id: 'default',
- isDefault: true,
- title: 'Default',
- template: TeaserDefaultTemplate,
- },
- ];
- config.blocks.blocksConfig.teaser = {
- ...config.blocks.blocksConfig.teaser,
- variations: teaserVariations,
- };
- config.blocks.blocksConfig.gridBlock.blocksConfig.teaser = {
- ...config.blocks.blocksConfig.gridBlock.blocksConfig.teaser,
- variations: teaserVariations,
- };
- return config;
-}
-
function installBlockTheme(config: ConfigType) {
// Palettes
config.blocks.themes = [
@@ -162,7 +140,6 @@ function installBlockTheme(config: ConfigType) {
export default function install(config: ConfigType) {
installBlocks(config);
installBlockTheme(config);
- installTeaserVariations(config);
config.blocks.blocksConfig.gridCTA.schemaEnhancer =
composeSchema(defaultStylingSchema);
config.blocks.blocksConfig.chamadaBlock.schemaEnhancer =
@@ -170,6 +147,16 @@ export default function install(config: ConfigType) {
config.blocks.blocksConfig.image.schemaEnhancer =
composeSchema(defaultStylingSchema);
+ config.blocks.blocksConfig.accordion = {
+ ...config.blocks.blocksConfig.accordion,
+ blocksConfig: {
+ ...config.blocks.blocksConfig,
+ },
+ allowedBlocks: [
+ ...config.blocks.blocksConfig.accordion.allowedBlocks,
+ 'levelBenefitsBlock',
+ ],
+ };
config.blocks.blocksConfig.gridBlock = {
...config.blocks.blocksConfig.gridBlock,
blocksConfig: {
@@ -181,6 +168,7 @@ export default function install(config: ConfigType) {
'testimonials',
'__button',
'gridCTA',
+ 'levelBenefitsBlock',
],
};
return config;
diff --git a/frontend/packages/volto-pythonbrasil-site/src/config/settings.ts b/frontend/packages/volto-pythonbrasil-site/src/config/settings.ts
index 0c2c1d5..604d967 100644
--- a/frontend/packages/volto-pythonbrasil-site/src/config/settings.ts
+++ b/frontend/packages/volto-pythonbrasil-site/src/config/settings.ts
@@ -17,7 +17,7 @@ export default function install(config: ConfigType) {
GET_CONTENT: ['inherit'],
querystring: {
'expand.inherit.behaviors':
- 'plonegovbr.socialmedia.settings,pythonbrasil.footer',
+ 'collective.techevent.event_settings,plonegovbr.socialmedia.settings,pythonbrasil.footer',
},
},
];
diff --git a/frontend/packages/volto-pythonbrasil-site/src/customizations/@eeacms/volto-accordion-block/components/manage/Blocks/Accordion/Edit.jsx b/frontend/packages/volto-pythonbrasil-site/src/customizations/@eeacms/volto-accordion-block/components/manage/Blocks/Accordion/Edit.jsx
new file mode 100644
index 0000000..fc14d17
--- /dev/null
+++ b/frontend/packages/volto-pythonbrasil-site/src/customizations/@eeacms/volto-accordion-block/components/manage/Blocks/Accordion/Edit.jsx
@@ -0,0 +1,477 @@
+import {
+ BlocksForm,
+ Icon,
+ SidebarPortal,
+ BlocksToolbar,
+ BlockDataForm,
+} from '@plone/volto/components';
+import {
+ emptyBlocksForm,
+ getBlocksLayoutFieldname,
+ withBlockExtensions,
+} from '@plone/volto/helpers';
+import { cloneDeepSchema } from '@plone/volto/helpers/Utils/Utils';
+import helpSVG from '@plone/volto/icons/help.svg';
+import { isEmpty, without, pickBy } from 'lodash';
+import React, { useState } from 'react';
+import { Button, Segment } from 'semantic-ui-react';
+import { defineMessages, useIntl } from 'react-intl';
+import AccordionEdit from '@eeacms/volto-accordion-block/components/manage/Blocks/Accordion/AccordionEdit';
+import AccordionFilter from '@eeacms/volto-accordion-block/components/manage/Blocks/Accordion/AccordionFilter';
+import EditBlockWrapper from '@eeacms/volto-accordion-block/components/manage/Blocks/Accordion/EditBlockWrapper';
+import '@eeacms/volto-accordion-block/components/manage/Blocks/Accordion/editor.less';
+import { AccordionBlockSchema } from '@eeacms/volto-accordion-block/components/manage/Blocks/Accordion/Schema';
+import {
+ emptyAccordion,
+ getPanels,
+} from '@eeacms/volto-accordion-block/components/manage/Blocks/Accordion/util';
+import config from '@plone/volto/registry';
+
+const messages = defineMessages({
+ SectionHelp: {
+ id: 'Section help',
+ defaultMessage: 'Section help',
+ },
+ AccordionBlock: {
+ id: 'Accordion block',
+ defaultMessage: 'Accordion block',
+ },
+ Accordion: {
+ id: 'Accordion',
+ defaultMessage: 'Accordion',
+ },
+});
+
+const Edit = (props) => {
+ const [selectedBlock, setSelectedBlock] = useState({});
+ const [multiSelected, setMultiSelected] = useState([]);
+ const [filterValue, setFilterValue] = useState('');
+ const {
+ block,
+ data,
+ onChangeBlock,
+ onChangeField,
+ pathname,
+ selected,
+ manage,
+ formDescription,
+ content,
+ } = props;
+
+ const intl = useIntl();
+ const properties = isEmpty(data?.data?.blocks)
+ ? emptyAccordion(3)
+ : data.data;
+ const metadata = props.metadata || props.properties;
+ const [currentUid, setCurrentUid] = useState('');
+
+ const onSelectBlock = (uid, id, isMultipleSelection, event, activeBlock) => {
+ let newMultiSelected = [];
+ let selected = id;
+
+ if (Object.values(activeBlock || {})?.length > 0) {
+ activeBlock = Object.values(activeBlock)[0];
+ }
+ if (data?.data?.blocks?.hasOwnProperty(uid) && isMultipleSelection) {
+ selected = null;
+ const blocksLayoutFieldname = getBlocksLayoutFieldname(
+ data.data.blocks[uid],
+ );
+
+ const blocks_layout = data.data.blocks[uid][blocksLayoutFieldname].items;
+
+ if (event.shiftKey) {
+ const anchor =
+ multiSelected.length > 0
+ ? blocks_layout.indexOf(multiSelected[0])
+ : blocks_layout.indexOf(activeBlock);
+ const focus = blocks_layout.indexOf(id);
+ if (anchor === focus) {
+ newMultiSelected = [id];
+ } else if (focus > anchor) {
+ newMultiSelected = [...blocks_layout.slice(anchor, focus + 1)];
+ } else {
+ newMultiSelected = [...blocks_layout.slice(focus, anchor + 1)];
+ }
+ }
+ if ((event.ctrlKey || event.metaKey) && !event.shiftKey) {
+ if (multiSelected.includes(id)) {
+ selected = null;
+ newMultiSelected = without(multiSelected, id);
+ } else {
+ newMultiSelected = [...(multiSelected || []), id];
+ }
+ }
+ }
+
+ setSelectedBlock({ [uid]: selected });
+ setCurrentUid(uid);
+ setMultiSelected(newMultiSelected);
+ };
+
+ const searchElementInMultiSelection = (uid, blockprops) => {
+ return !!multiSelected.find((el) => el === blockprops.block);
+ };
+
+ const applySchemaEnhancer = (originalSchema) => {
+ let schema, schemaEnhancer;
+ const formData = data;
+ const { blocks } = config;
+
+ const blockType = formData['@type'];
+ const variations = blocks?.blocksConfig[blockType]?.variations || [];
+
+ if (variations.length === 0) {
+ // No variations present but anyways
+ // finalize the schema with a schemaEnhancer in the block config is present
+ schemaEnhancer = blocks.blocksConfig?.[blockType]?.schemaEnhancer;
+ if (schemaEnhancer)
+ schema = schemaEnhancer({ schema: originalSchema, formData, intl });
+ }
+
+ const activeItemName = formData?.variation;
+ let activeItem = variations.find((item) => item.id === activeItemName);
+ if (!activeItem) activeItem = variations.find((item) => item.isDefault);
+
+ schemaEnhancer = activeItem?.['schemaEnhancer'];
+
+ schema = schemaEnhancer
+ ? schemaEnhancer({
+ schema: cloneDeepSchema(originalSchema),
+ formData,
+ intl,
+ })
+ : cloneDeepSchema(originalSchema);
+
+ return schema;
+ };
+
+ /**
+ * Will set field values from schema, by matching the default values
+ * @returns {Object} defaultValues
+ */
+ const setInitialData = () => {
+ const accordionSchema = applySchemaEnhancer(AccordionBlockSchema({ intl }));
+ const defaultValues = Object.keys(accordionSchema.properties).reduce(
+ (accumulator, currentVal) => {
+ return accordionSchema.properties[currentVal].default
+ ? {
+ ...accumulator,
+ [currentVal]: accordionSchema.properties[currentVal].default,
+ }
+ : accumulator;
+ },
+ {},
+ );
+
+ return {
+ ...defaultValues,
+ ...data,
+ data: {
+ ...properties,
+ },
+ };
+ };
+
+ React.useEffect(() => {
+ if (isEmpty(data?.data)) {
+ onChangeBlock(block, setInitialData());
+ }
+ /* eslint-disable-next-line */
+ }, []);
+
+ React.useEffect(() => {
+ properties.blocks_layout.items.map((item) => {
+ if (isEmpty(properties.blocks[item]?.blocks)) {
+ return onChangeBlock(block, {
+ ...data,
+ data: {
+ ...properties,
+ blocks: {
+ ...properties.blocks,
+ [item]: emptyBlocksForm(),
+ },
+ },
+ });
+ }
+ return undefined;
+ });
+ }, [
+ onChangeBlock,
+ properties,
+ selectedBlock,
+ block,
+ data,
+ properties.blocks,
+ ]);
+
+ const blockState = {};
+ const panelData = properties;
+ const panels = getPanels(panelData);
+
+ const handleTitleChange = (e, value) => {
+ const [uid, panel] = value;
+ const modifiedBlock = {
+ ...panel,
+ title: e.target.value,
+ '@type': 'accordionPanel',
+ };
+ onChangeBlock(block, {
+ ...data,
+ data: {
+ ...panelData,
+ blocks: {
+ ...panelData.blocks,
+ [uid]: modifiedBlock,
+ },
+ },
+ });
+ };
+
+ const handleFilteredValueChange = (value) => {
+ setFilterValue(value);
+ };
+
+ // Get editing instructions from block settings or props
+ let instructions = data?.instructions?.data || data?.instructions;
+ if (!instructions || instructions === '
') {
+ instructions = formDescription;
+ }
+
+ const changeBlockData = (newBlockData) => {
+ const selectedIndex =
+ data.data.blocks[currentUid].blocks_layout.items.indexOf(
+ Object.values(selectedBlock)[0],
+ ) + 1;
+ let pastedBlocks = Object.entries(newBlockData.blocks).filter((block) => {
+ let key = block[0];
+
+ return !data?.data?.blocks[currentUid].blocks_layout.items.find(
+ (x) => x === key,
+ );
+ });
+
+ let blockLayout = pastedBlocks.map((el) => el[0]);
+
+ onChangeBlock(block, {
+ ...data,
+ data: {
+ blocks: {
+ ...data.data.blocks,
+ [currentUid]: {
+ ...data.data.blocks[currentUid],
+ ...newBlockData,
+ blocks_layout: {
+ items: [
+ ...data.data.blocks[currentUid].blocks_layout.items.slice(
+ 0,
+ selectedIndex,
+ ),
+ ...blockLayout,
+ ...data.data.blocks[currentUid].blocks_layout.items.slice(
+ selectedIndex,
+ ),
+ ],
+ },
+ },
+ },
+ blocks_layout: data.data.blocks_layout,
+ },
+ });
+ };
+
+ const blockConfig = config.blocks.blocksConfig.accordion;
+ const blocksConfig = blockConfig.blocksConfig || props.blocksConfig;
+ // The accordion is able to get the allowedBlocks info from the custom DX layout
+ // Fallback to the blockConfig one
+ const allowedBlocks = data.allowedBlocks || blockConfig.allowedBlocks;
+
+ const allowedBlocksConfig = allowedBlocks
+ ? pickBy(blocksConfig, (value, key) => allowedBlocks.includes(key))
+ : blocksConfig;
+
+ const schema = AccordionBlockSchema({ intl });
+ return (
+ <>
+ {data.headline && {data.headline} }
+
+ {
+ setSelectedBlock({});
+ props.setSidebarTab(1);
+ }}
+ aria-hidden="true"
+ >
+ {data.title || 'Accordion'}
+
+ {data.filtering && (
+
+ )}
+ {panels
+ .filter(
+ (panel) =>
+ !data.filtering ||
+ filterValue === '' ||
+ (filterValue !== '' &&
+ panel[1].title
+ ?.toLowerCase()
+ .includes(filterValue.toLowerCase())),
+ )
+ .map(([uid, panel], index) => (
+ setSelectedBlock({})}
+ data={data}
+ index={index}
+ key={`accordion-${index}`}
+ >
+ {
+ const isMultipleSelection = e
+ ? e.shiftKey || e.ctrlKey || e.metaKey
+ : false;
+ onSelectBlock(uid, id, isMultipleSelection, e, selectedBlock);
+ }}
+ onChangeFormData={(newFormData) => {
+ onChangeBlock(block, {
+ ...data,
+ data: {
+ ...panelData,
+ blocks: {
+ ...panelData.blocks,
+ [uid]: newFormData,
+ },
+ },
+ });
+ }}
+ onChangeField={(id, value) => {
+ if (['blocks', 'blocks_layout'].indexOf(id) > -1) {
+ blockState[id] = value;
+ onChangeBlock(block, {
+ ...data,
+ data: {
+ ...panelData,
+ blocks: {
+ ...panelData.blocks,
+ [uid]: {
+ ...panelData.blocks?.[uid],
+ ...blockState,
+ },
+ },
+ },
+ });
+ } else {
+ onChangeField(id, value);
+ }
+ }}
+ pathname={pathname}
+ >
+ {({ draginfo }, editBlock, blockProps) => {
+ return (
+
+ {instructions && (
+ <>
+ {
+ setSelectedBlock({});
+ const tab = manage ? 0 : 1;
+ props.setSidebarTab(tab);
+ }}
+ >
+
+
+ >
+ )}
+ >
+ }
+ >
+ {editBlock}
+
+ );
+ }}
+
+
+ ))}
+ {selected ? (
+ {
+ setMultiSelected(blockIds);
+ }}
+ onSelectBlock={(id, l, e) => {
+ const isMultipleSelection = e
+ ? e.shiftKey || e.ctrlKey || e.metaKey
+ : false;
+
+ onSelectBlock(id, isMultipleSelection, e, selectedBlock);
+ }}
+ onChangeBlocks={(newBlockData) => {
+ changeBlockData(newBlockData);
+ }}
+ />
+ ) : (
+ ''
+ )}
+
+
+ {instructions && (
+
+
+
+ )}
+ {!data?.readOnlySettings && (
+ {
+ onChangeBlock(block, {
+ ...data,
+ [id]: value,
+ });
+ }}
+ formData={data}
+ block={block}
+ blocksConfig={blocksConfig}
+ onChangeBlock={onChangeBlock}
+ />
+ )}
+
+
+ >
+ );
+};
+
+export default withBlockExtensions(Edit);
diff --git a/frontend/packages/volto-pythonbrasil-site/src/customizations/@eeacms/volto-accordion-block/components/manage/Blocks/Accordion/EditBlockWrapper.jsx b/frontend/packages/volto-pythonbrasil-site/src/customizations/@eeacms/volto-accordion-block/components/manage/Blocks/Accordion/EditBlockWrapper.jsx
new file mode 100644
index 0000000..dafe9b1
--- /dev/null
+++ b/frontend/packages/volto-pythonbrasil-site/src/customizations/@eeacms/volto-accordion-block/components/manage/Blocks/Accordion/EditBlockWrapper.jsx
@@ -0,0 +1,152 @@
+import React from 'react';
+import { Icon } from '@plone/volto/components';
+import {
+ blockHasValue,
+ buildStyleClassNamesFromData,
+} from '@plone/volto/helpers';
+import config from '@plone/volto/registry';
+import { Button } from 'semantic-ui-react';
+import includes from 'lodash/includes';
+import isBoolean from 'lodash/isBoolean';
+import { defineMessages, injectIntl } from 'react-intl';
+import cx from 'classnames';
+import NewBlockAddButton from '@eeacms/volto-accordion-block/components/manage/Blocks/Accordion/NewBlockAddButton';
+
+import dragSVG from '@plone/volto/icons/drag.svg';
+import trashSVG from '@plone/volto/icons/delete.svg';
+
+const messages = defineMessages({
+ unknownBlock: {
+ id: 'Unknown Block',
+ defaultMessage: 'Unknown Block {block}',
+ },
+ delete: {
+ id: 'delete',
+ defaultMessage: 'delete',
+ },
+ dragAndDrop: {
+ id: 'Drag and drop',
+ defaultMessage: 'Drag and drop',
+ },
+ removeBlock: {
+ id: 'Remove block',
+ defaultMessage: 'Remove block',
+ },
+});
+
+class EditBlockWrapper extends React.Component {
+ render() {
+ const {
+ intl,
+ blockProps,
+ draginfo,
+ extraControls,
+ disabled,
+ children,
+ baseProperties,
+ } = this.props;
+
+ const {
+ block,
+ data,
+ onDeleteBlock,
+ onInsertBlock,
+ onSelectBlock,
+ selected,
+ index,
+ blocksConfig,
+ } = blockProps;
+ const type = data['@type'];
+ const { disableNewBlocks } = data;
+ const dragVisible = !data.fixed;
+ const visible = selected;
+
+ const required = isBoolean(data.required)
+ ? data.required
+ : includes(config.blocks.requiredBlocks, type);
+
+ const styles = buildStyleClassNamesFromData(data.styles);
+
+ return (
+
+
+ {(!selected || !visible || disabled) && (
+
+ )}
+ {visible && (
+
+ {extraControls}
+
+ {!disabled && (
+ <>
+
+
+
+
+
+
+ {!disableNewBlocks && !blockHasValue(data) && (
+
{
+ onSelectBlock(onInsertBlock(id, value));
+ }}
+ />
+ )}
+
+ {!required && (
+ onDeleteBlock(block)}
+ className="delete-button-accordion-block"
+ aria-label={intl.formatMessage(messages.delete)}
+ >
+
+
+ )}
+ >
+ )}
+
+ )}
+
+
+ {children}
+
+
+
+ );
+ }
+}
+
+export default injectIntl(EditBlockWrapper);
diff --git a/frontend/packages/volto-pythonbrasil-site/src/customizations/@eeacms/volto-accordion-block/components/manage/Blocks/Accordion/NewBlockAddButton.jsx b/frontend/packages/volto-pythonbrasil-site/src/customizations/@eeacms/volto-accordion-block/components/manage/Blocks/Accordion/NewBlockAddButton.jsx
new file mode 100644
index 0000000..e176dfd
--- /dev/null
+++ b/frontend/packages/volto-pythonbrasil-site/src/customizations/@eeacms/volto-accordion-block/components/manage/Blocks/Accordion/NewBlockAddButton.jsx
@@ -0,0 +1,96 @@
+import React from 'react';
+import { defineMessages, injectIntl } from 'react-intl';
+import { Button, Ref } from 'semantic-ui-react';
+import { BlockChooser, Icon } from '@plone/volto/components';
+import { usePopper } from 'react-popper';
+import { Portal } from 'react-portal';
+import addSVG from '@plone/volto/icons/add.svg';
+
+const messages = defineMessages({
+ AddBlockInPosition: {
+ id: 'add_block_in_position',
+ defaultMessage: 'Add block in position',
+ },
+});
+
+const OpenedBlocksChooser = (props) => {
+ const { blocksConfig, block, onInsertBlock, baseProperties } = props;
+ const ref = React.useRef(null);
+
+ function handleClickOutside(event) {
+ if (ref.current && !ref.current.contains(event.target)) {
+ props.setOpenMenu(false);
+ }
+ }
+
+ React.useEffect(() => {
+ document.body.addEventListener('mousedown', handleClickOutside);
+ return () => {
+ document.body.removeEventListener('mousedown', handleClickOutside);
+ };
+ });
+
+ return (
+
+ );
+};
+
+const NewBlockAddButton = (props) => {
+ const { index, intl } = props;
+ const [isOpenMenu, setOpenMenu] = React.useState(false);
+
+ const [referenceElement, setReferenceElement] = React.useState(null);
+ const [popperElement, setPopperElement] = React.useState(null);
+ const { styles, attributes } = usePopper(referenceElement, popperElement, {
+ placement: 'left',
+ modifiers: [
+ {
+ name: 'offset',
+ options: {
+ offset: [0, 0],
+ },
+ },
+ {
+ name: 'flip',
+ },
+ ],
+ });
+
+ return (
+ <>
+ [
+ ] setOpenMenu(true)}
+ className="add-block-button"
+ aria-label={`${intl.formatMessage(
+ messages.AddBlockInPosition,
+ )} ${index}`}
+ >
+
+
+
+
+
+ {isOpenMenu ? (
+
+ ) : null}
+
+
+ >
+ );
+};
+
+export default injectIntl(NewBlockAddButton);
diff --git a/frontend/packages/volto-pythonbrasil-site/src/customizations/@plone-collective/volto-techevent/components/Blocks/Sponsors/LevelComparison/View.tsx b/frontend/packages/volto-pythonbrasil-site/src/customizations/@plone-collective/volto-techevent/components/Blocks/Sponsors/LevelComparison/View.tsx
new file mode 100644
index 0000000..e372f72
--- /dev/null
+++ b/frontend/packages/volto-pythonbrasil-site/src/customizations/@plone-collective/volto-techevent/components/Blocks/Sponsors/LevelComparison/View.tsx
@@ -0,0 +1,115 @@
+import React from 'react';
+import cx from 'classnames';
+import { useIntl } from 'react-intl';
+import { Container } from '@plone/components';
+import Image from '@plone/volto/components/theme/Image/Image';
+import { useEventSettings } from '@plone-collective/volto-techevent/hooks/useEventSettings';
+import { useSponsors } from '@plone-collective/volto-techevent/hooks/useSponsors';
+import type { BlockViewProps } from '@plone/types';
+import messages from '@plone-collective/volto-techevent/messages';
+
+const BenefitHeaderRow = ({ title, displayLevels }) => {
+ return (
+
+
+ {title}
+
+ {displayLevels.map((level, idx) => (
+
+
+
+ ))}
+
+ );
+};
+
+const BenefitRow = ({ benefit, displayLevels }) => {
+ return (
+
+
+ {benefit.title}
+
+ {benefit.description}
+
+ {displayLevels.map((level, idx) => {
+ const value = benefit.levels[level.id];
+ const displayValue = value === undefined ? '' : value || '✅';
+ return (
+
+ {displayValue}
+
+ );
+ })}
+
+ );
+};
+
+const View: React.FC = ({
+ data,
+ className,
+ style,
+ content,
+ properties,
+}) => {
+ const { title, tableTitle } = data;
+ const intl = useIntl();
+
+ // Use hook only if eventRoot exists
+ const eventRoot = useEventSettings()?.eventRoot;
+ const { benefits, levels } = useSponsors(eventRoot ?? '');
+ const allBenefits =
+ benefits &&
+ benefits.reduce((obj, benefit) => {
+ obj[benefit.id] = benefit;
+ return obj;
+ }, {});
+ const displayLevels = levels
+ ? levels.filter((level) => !level.exclude_from_nav)
+ : [];
+ const benefitsIds = benefits ? benefits.map((benefit) => benefit.id) : [];
+ const displayTable = benefitsIds && benefitsIds.length > 0 && displayLevels;
+ return (
+
+ {title && (
+ {title}
+ )}
+ {displayTable && (
+
+
+
+
+
+
+ {benefitsIds.map((benefitId, idy) => {
+ const benefit = allBenefits[benefitId];
+ return (
+ benefit && (
+
+ )
+ );
+ })}
+
+
+
+ )}
+
+ );
+};
+
+export default View;
diff --git a/frontend/packages/volto-pythonbrasil-site/src/theme/_layout.scss b/frontend/packages/volto-pythonbrasil-site/src/theme/_layout.scss
index b2710de..171320d 100644
--- a/frontend/packages/volto-pythonbrasil-site/src/theme/_layout.scss
+++ b/frontend/packages/volto-pythonbrasil-site/src/theme/_layout.scss
@@ -5,11 +5,21 @@ body {
background-repeat: repeat-x;
background-size: 400px;
&.view-contentsview {
- background: var(--primary-foreground-color);
+ background: #fff;
#content {
padding-top: $spacing-small;
}
}
+ #page-document {
+ background-color: unset;
+ }
+ #page-add,
+ #page-edit {
+ .form.ui {
+ margin-bottom: $spacing-small;
+ background-color: #fff;
+ }
+ }
}
.content-area {
.q.container {
diff --git a/frontend/packages/volto-pythonbrasil-site/src/theme/_main.scss b/frontend/packages/volto-pythonbrasil-site/src/theme/_main.scss
index 7cdf46c..f21ce45 100644
--- a/frontend/packages/volto-pythonbrasil-site/src/theme/_main.scss
+++ b/frontend/packages/volto-pythonbrasil-site/src/theme/_main.scss
@@ -8,6 +8,7 @@
@import 'components/breadcrumbs';
@import 'components/footer';
@import 'blocks/accordion';
+@import 'blocks/description';
@import 'blocks/button';
@import 'blocks/eventbrite';
@import 'blocks/followus';
@@ -16,4 +17,8 @@
@import 'blocks/heading';
@import 'blocks/chamada';
@import 'blocks/image';
+@import 'blocks/block_sponsorlevel';
+@import 'blocks/block_sponsors_showcase';
+@import 'blocks/block_sponsors_levelcomparison';
+@import 'blocks/sponsor_benefits';
@import 'sections/home';
diff --git a/frontend/packages/volto-pythonbrasil-site/src/theme/_root.scss b/frontend/packages/volto-pythonbrasil-site/src/theme/_root.scss
index 9355bd9..abf92b3 100644
--- a/frontend/packages/volto-pythonbrasil-site/src/theme/_root.scss
+++ b/frontend/packages/volto-pythonbrasil-site/src/theme/_root.scss
@@ -4,24 +4,51 @@
--default-container-width: 1024px;
--layout-container-width: 1440px;
// Theme
- --primary-color: #e2001a;
- --primary-foreground-color: #f0f0f7;
+ --primary-color: #f0f0f7;
+ --primary-foreground-color: #e2001a;
--secondary-color: #3e3841;
--secondary-foreground-color: #f0f0f7;
--accent-color: #ad0015;
--accent-foreground-color: #f0f0f7;
+
--theme-color: var(--primary-color);
--theme-foreground-color: var(--primary-foreground-color);
+
+ // CTA
+ --cta-color-start: #e2001a;
+ --cta-color-end: var(--accent-color);
+ --cta-color-fg: var(--accent-foreground-color);
+
+ // Header
--header-background: var(--accent-color);
+ --header-foreground: var(--accent-foreground-color);
+
+ // Breadcrumbs
--breadcrumbs-background: var(--secondary-color);
- --breadcrumbs-foreground: var(var(--secondary-foreground-color));
- --background-color: #c3c8ca;
+ --breadcrumbs-foreground: var(--secondary-foreground-color);
+
+ // Fat Menu
+ --fatmenu-background: var(--secondary-color);
+ --fatmenu-foreground: var(--secondary-foreground-color);
+
+ // Search bar
+ --search-background: var(--secondary-color);
+ --search-foreground: var(--secondary-foreground-color);
+
--text-color: rgb(39 38 38);
+ --link-color: var(--text-color);
+ --link-foreground-color: var(--link-color);
+
+ --background-color: #c3c8ca;
+
// Components
- --social-network-icon-color-main: var(--primary-foreground-color);
- --social-network-icon-color-hover: var(--primary-color);
+ --social-network-icon-color-main: var(--secondary-color);
+ --social-network-icon-color-hover: var(--accent-color);
--social-network-background-main: transparent;
--social-network-background-hover: transparent;
+ /// Sponsors
+ --techevent-sponsortile-background-main: #fff;
+
// Fonts
--font-weight-thin: 100;
--font-weight-extra-light: 200;
diff --git a/frontend/packages/volto-pythonbrasil-site/src/theme/_variables.scss b/frontend/packages/volto-pythonbrasil-site/src/theme/_variables.scss
index 77bbfcb..395113e 100644
--- a/frontend/packages/volto-pythonbrasil-site/src/theme/_variables.scss
+++ b/frontend/packages/volto-pythonbrasil-site/src/theme/_variables.scss
@@ -64,14 +64,22 @@ $color-block-change-vertical-spacing: $spacing-large !default;
}
@mixin cta-color-gradient() {
- @include color-gradient(var(--primary-color), var(--accent-color));
+ @include color-gradient(
+ var(--cta-color-start),
+ var(--cta-color-end),
+ var(--cta-color-fg)
+ );
}
@mixin cta-color-gradient-reverse() {
- @include color-gradient(var(--accent-color), var(--primary-color));
+ @include color-gradient(
+ var(--cta-color-end),
+ var(--cta-color-start),
+ var(--cta-color-fg)
+ );
}
-@mixin color-gradient($color1, $color2) {
+@mixin color-gradient($color1, $color2, $colorfg) {
position: relative;
z-index: 1;
display: inline-flex;
@@ -81,6 +89,7 @@ $color-block-change-vertical-spacing: $spacing-large !default;
-webkit-appearance: none;
appearance: none;
background: linear-gradient(90deg, $color1 0%, $color2 100%);
+ color: $colorfg !important;
moz-transition: all 0.4s ease-in-out;
outline: none !important;
-o-transition: all 0.4s ease-in-out;
@@ -102,8 +111,11 @@ $color-block-change-vertical-spacing: $spacing-large !default;
transition-duration: 700ms;
transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66);
}
- &:hover::after {
- bottom: -50%;
+ &:hover {
+ color: $colorfg !important;
+ &::after {
+ bottom: -50%;
+ }
}
}
diff --git a/frontend/packages/volto-pythonbrasil-site/src/theme/blocks/_accordion.scss b/frontend/packages/volto-pythonbrasil-site/src/theme/blocks/_accordion.scss
index 1ebf0a5..7029a9f 100644
--- a/frontend/packages/volto-pythonbrasil-site/src/theme/blocks/_accordion.scss
+++ b/frontend/packages/volto-pythonbrasil-site/src/theme/blocks/_accordion.scss
@@ -3,6 +3,10 @@
background-color: unset;
.title.accordion-title {
background-color: unset;
+ color: var(--theme-foreground-color);
+ .ui.input > input {
+ color: var(--theme-foreground-color);
+ }
}
}
}
diff --git a/frontend/packages/volto-pythonbrasil-site/src/theme/blocks/_block_sponsorlevel.scss b/frontend/packages/volto-pythonbrasil-site/src/theme/blocks/_block_sponsorlevel.scss
new file mode 100644
index 0000000..91602c7
--- /dev/null
+++ b/frontend/packages/volto-pythonbrasil-site/src/theme/blocks/_block_sponsorlevel.scss
@@ -0,0 +1,5 @@
+.block.sponsorLevelBlock .sponsorCTA .cta {
+ @include cta-animation();
+ @include cta-button();
+ @include cta-color-gradient();
+}
diff --git a/frontend/packages/volto-pythonbrasil-site/src/theme/blocks/_block_sponsors_levelcomparison.scss b/frontend/packages/volto-pythonbrasil-site/src/theme/blocks/_block_sponsors_levelcomparison.scss
new file mode 100644
index 0000000..753ca47
--- /dev/null
+++ b/frontend/packages/volto-pythonbrasil-site/src/theme/blocks/_block_sponsors_levelcomparison.scss
@@ -0,0 +1,37 @@
+.block.levelComparison {
+ .levelComparison.tableContainer {
+ @include layout-container-width;
+ .table {
+ width: 100%;
+ border-collapse: collapse;
+ table-layout: fixed;
+ text-align: left;
+ .cell {
+ vertical-align: middle;
+ &.level {
+ border-left-width: 2px;
+ border-left-style: solid;
+ border-left-color: var(--theme-foreground-color);
+ }
+ }
+ td:first-child,
+ th:first-child {
+ width: 35%;
+ }
+ .benefitRow .cell {
+ padding: 5px 0;
+ &.benefitTitle {
+ .title {
+ @include add(weight, bold);
+ }
+ .description {
+ @include add(weight, light);
+ }
+ }
+ &.benefitValue {
+ text-align: center;
+ }
+ }
+ }
+ }
+}
diff --git a/frontend/packages/volto-pythonbrasil-site/src/theme/blocks/_block_sponsors_showcase.scss b/frontend/packages/volto-pythonbrasil-site/src/theme/blocks/_block_sponsors_showcase.scss
new file mode 100644
index 0000000..f4ddf77
--- /dev/null
+++ b/frontend/packages/volto-pythonbrasil-site/src/theme/blocks/_block_sponsors_showcase.scss
@@ -0,0 +1,27 @@
+.block.sponsors {
+ @include default-container-width;
+ .sponsors.title {
+ @include block-title;
+ @include default-container-width;
+ }
+ .sponsorList {
+ > .sponsorTile {
+ @include sponsor-size-06;
+ }
+ > .ouro.sponsorTile {
+ @include sponsor-size-03;
+ }
+ > .prata.sponsorTile {
+ @include sponsor-size-05;
+ }
+ > .bronze.sponsorTile {
+ @include sponsor-size-06;
+ }
+ > .apoio.sponsorTile {
+ @include sponsor-size-05;
+ }
+ > .organizacao.sponsorTile {
+ @include sponsor-size-04;
+ }
+ }
+}
diff --git a/frontend/packages/volto-pythonbrasil-site/src/theme/blocks/_description.scss b/frontend/packages/volto-pythonbrasil-site/src/theme/blocks/_description.scss
new file mode 100644
index 0000000..f386617
--- /dev/null
+++ b/frontend/packages/volto-pythonbrasil-site/src/theme/blocks/_description.scss
@@ -0,0 +1,12 @@
+.blocks-group-wrapper {
+ .documentDescription {
+ color: var(--theme-foreground-color);
+ }
+}
+.blocks-form {
+ .block.description {
+ .documentDescription {
+ color: var(--theme-foreground-color);
+ }
+ }
+}
diff --git a/frontend/packages/volto-pythonbrasil-site/src/theme/blocks/_gridCTA.scss b/frontend/packages/volto-pythonbrasil-site/src/theme/blocks/_gridCTA.scss
index f1c134e..bbd685f 100644
--- a/frontend/packages/volto-pythonbrasil-site/src/theme/blocks/_gridCTA.scss
+++ b/frontend/packages/volto-pythonbrasil-site/src/theme/blocks/_gridCTA.scss
@@ -34,9 +34,9 @@
.ctaButton {
@include cta-button-grid();
@include cta-color-gradient();
- color: var(--primary-foreground-color);
+ color: var(--primary-color);
.icon {
- fill: var(--primary-foreground-color);
+ fill: var(--primary-color);
}
}
}
@@ -50,7 +50,7 @@
.block.gridCTA.has--background-color--default,
.block.gridCTA.has--theme--default {
.content {
- background-color: var(--theme-high-contrast-color);
+ background-color: var(---primary-foreground-color);
}
}
}
diff --git a/frontend/packages/volto-pythonbrasil-site/src/theme/blocks/_gridblock.scss b/frontend/packages/volto-pythonbrasil-site/src/theme/blocks/_gridblock.scss
index 53d98e5..9692879 100644
--- a/frontend/packages/volto-pythonbrasil-site/src/theme/blocks/_gridblock.scss
+++ b/frontend/packages/volto-pythonbrasil-site/src/theme/blocks/_gridblock.scss
@@ -1,7 +1,6 @@
.block.gridBlock {
.block.teaser {
- border-radius: 0 0 $spacing-medium $spacing-small;
- .teaser-item {
+ .card {
border-radius: 0 0 $spacing-medium $spacing-small;
}
}
diff --git a/frontend/packages/volto-pythonbrasil-site/src/theme/blocks/_sponsor_benefits.scss b/frontend/packages/volto-pythonbrasil-site/src/theme/blocks/_sponsor_benefits.scss
new file mode 100644
index 0000000..e0c1d46
--- /dev/null
+++ b/frontend/packages/volto-pythonbrasil-site/src/theme/blocks/_sponsor_benefits.scss
@@ -0,0 +1,39 @@
+.block.benefits {
+ .benefits.wrapper {
+ .list {
+ .benefit.item {
+ display: flex;
+ flex-direction: row;
+ padding: 0px 0px 3px 0px;
+ .title {
+ flex: 2;
+ margin-right: 5px;
+ }
+ .value {
+ flex: 1;
+ padding-left: $spacing-xsmall;
+ }
+ }
+ }
+ }
+}
+
+.accordion-block {
+ .accordion.ui.fluid {
+ .block.benefits {
+ .benefits.title {
+ display: none;
+ }
+ .benefits.wrapper {
+ .benefit.item {
+ .title,
+ .value {
+ padding: 0.75em 1em;
+ background-color: var(--theme-high-contrast-color);
+ color: var(--theme-low-contrast-foreground-color) !important;
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/frontend/packages/volto-pythonbrasil-site/src/theme/components/_footer.scss b/frontend/packages/volto-pythonbrasil-site/src/theme/components/_footer.scss
index 7f2a855..0a49c62 100644
--- a/frontend/packages/volto-pythonbrasil-site/src/theme/components/_footer.scss
+++ b/frontend/packages/volto-pythonbrasil-site/src/theme/components/_footer.scss
@@ -1,4 +1,7 @@
footer#footer {
+ --social-network-icon-color-main: var(--secondary-foreground-color);
+ padding-top: 1rem;
+ margin-top: 0;
.footer.main {
max-width: 100% !important;
background-color: var(--secondary-color);
@@ -15,7 +18,7 @@ footer#footer {
padding-left: 0;
margin: 0;
list-style: none;
- li {
+ li.item {
padding: 0 1em;
border-left: 1px solid var(--secondary-foreground-color);
margin: 0.25em 0;
@@ -23,7 +26,7 @@ footer#footer {
&:first-child {
border-left: unset;
}
- a.item {
+ a {
color: var(--secondary-foreground-color) !important;
&:hover {
color: var(--primary-color) !important;
@@ -38,6 +41,7 @@ footer#footer {
}
.post-footer {
padding: $spacing-small $spacing-medium;
+ background-color: var(--background-color);
.branding {
padding: 0 $spacing-small;
color: var(--text-color) !important;
diff --git a/frontend/packages/volto-pythonbrasil-site/src/theme/components/_navigation.scss b/frontend/packages/volto-pythonbrasil-site/src/theme/components/_navigation.scss
index 97c6b13..3cc6c11 100644
--- a/frontend/packages/volto-pythonbrasil-site/src/theme/components/_navigation.scss
+++ b/frontend/packages/volto-pythonbrasil-site/src/theme/components/_navigation.scss
@@ -3,14 +3,14 @@
@include graffiti();
@include add(size, xl);
@include add(height, xl);
- color: var(--primary-foreground-color);
+ color: var(--primary-color);
text-transform: uppercase !important;
&.active,
&:hover {
- color: var(--primary-foreground-color);
+ color: var(--primary-color);
&::before {
bottom: -42px;
- border-bottom: 4px solid var(--primary-foreground-color);
+ border-bottom: 4px solid var(--primary-color);
}
}
}
@@ -18,43 +18,8 @@
ul.desktop-menu .submenu-wrapper {
margin-top: 34px;
.submenu {
- background: var(--primary-color);
-
&.active {
- border-top: 1px solid var(--primary-foreground-color);
- .close {
- background: var(--primary-color);
- color: var(--primary-foreground-color);
- }
- }
-
- .submenu-inner {
- h2 {
- color: var(--primary-foreground-color);
- }
-
- .submenu-header {
- h2 {
- margin-left: 0px;
- @include add(weight, bold);
- }
- }
-
- .subitem-wrapper {
- border-left: 1px solid var(--primary-foreground-color);
-
- > a,
- li > a {
- color: var(--primary-foreground-color);
-
- span {
- &:hover {
- border-bottom: 1px solid var(--primary-foreground-color);
- }
- color: var(--primary-foreground-color);
- }
- }
- }
+ border-top: 1px solid var(--primary-color);
}
}
}
diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml
index 4a05d97..1bf5897 100644
--- a/frontend/pnpm-lock.yaml
+++ b/frontend/pnpm-lock.yaml
@@ -795,8 +795,8 @@ importers:
specifier: ^3.3.0
version: 3.3.0(redux@4.2.1)
classnames:
- specifier: 2.2.6
- version: 2.2.6
+ specifier: 2.5.1
+ version: 2.5.1
connected-react-router:
specifier: 6.8.0
version: 6.8.0(history@4.10.1)(immutable@3.8.2)(react-redux@8.1.2(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(redux@4.2.1))(react-router@5.2.0(react@18.2.0))(react@18.2.0)(redux@4.2.1)(seamless-immutable@7.1.4)
@@ -1383,6 +1383,9 @@ importers:
svg-loader:
specifier: 0.0.2
version: 0.0.2
+ svgo:
+ specifier: ^3.0.0
+ version: 3.3.2
svgo-loader:
specifier: 3.0.3
version: 3.0.3
@@ -1435,8 +1438,8 @@ importers:
core/packages/volto-slate:
dependencies:
classnames:
- specifier: 2.2.6
- version: 2.2.6
+ specifier: 2.5.1
+ version: 2.5.1
github-slugger:
specifier: 1.4.0
version: 1.4.0
@@ -1547,6 +1550,9 @@ importers:
packages/volto-pythonbrasil-site:
dependencies:
+ '@eeacms/volto-accordion-block':
+ specifier: '*'
+ version: 10.4.6
'@eeacms/volto-matomo':
specifier: '*'
version: 5.0.0(react@18.2.0)
@@ -1554,8 +1560,8 @@ importers:
specifier: '*'
version: 6.0.1(react@18.2.0)
'@kitconcept/volto-light-theme':
- specifier: ^6.0.0-alpha.22
- version: 6.0.0-alpha.22(@eeacms/volto-accordion-block@10.4.6)(@kitconcept/volto-banner-block@1.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@kitconcept/volto-button-block@3.0.3(classnames@2.5.1)(react-dom@18.2.0(react@18.2.0))(react-intl@3.12.1(react@18.2.0))(react@18.2.0))(@kitconcept/volto-dsgvo-banner@2.3.2)(@kitconcept/volto-heading-block@2.4.0(react@18.2.0))(@kitconcept/volto-highlight-block@4.2.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@kitconcept/volto-introduction-block@1.0.0)(@kitconcept/volto-separator-block@4.1.2(react-dom@18.2.0(react@18.2.0))(react-intl@3.12.1(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5)))(@kitconcept/volto-slider-block@6.3.1(@plone/volto@18.14.0(@babel/runtime@7.27.0)(@popperjs/core@2.11.8)(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-with-direction@1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(seamless-immutable@7.1.4))(embla-carousel@8.6.0)(react@18.2.0))(@plonegovbr/volto-social-media@2.0.0-alpha.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5)))(classnames@2.5.1)(lodash@4.17.21)(react-dom@18.2.0(react@18.2.0))(react-intl@3.12.1(react@18.2.0))(react-redux@8.1.2(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(redux@4.2.1))(react-router-dom@5.2.0(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5))
+ specifier: 7.0.0-alpha.10
+ version: 7.0.0-alpha.10(@eeacms/volto-accordion-block@10.4.6)(@kitconcept/volto-banner-block@1.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@kitconcept/volto-bm3-compat@1.0.0-alpha.1(classnames@2.5.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@kitconcept/volto-button-block@3.0.3(classnames@2.5.1)(react-dom@18.2.0(react@18.2.0))(react-intl@3.12.1(react@18.2.0))(react@18.2.0))(@kitconcept/volto-carousel-block@2.0.0-alpha.1(classnames@2.5.1)(embla-carousel@8.6.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@kitconcept/volto-dsgvo-banner@2.3.2)(@kitconcept/volto-heading-block@2.4.0(react@18.2.0))(@kitconcept/volto-highlight-block@4.2.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@kitconcept/volto-introduction-block@1.0.0)(@kitconcept/volto-logos-block@3.0.0-alpha.0(classnames@2.5.1)(react-dom@18.2.0(react@18.2.0))(react-intl@3.12.1(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5)))(@kitconcept/volto-separator-block@4.1.2(react-dom@18.2.0(react@18.2.0))(react-intl@3.12.1(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5)))(@kitconcept/volto-slider-block@6.3.1(@plone/volto@18.23.0(@babel/runtime@7.27.0)(@popperjs/core@2.11.8)(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-with-direction@1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(seamless-immutable@7.1.4))(embla-carousel@8.6.0)(react@18.2.0))(@plonegovbr/volto-social-media@2.0.0-alpha.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5)))(classnames@2.5.1)(lodash@4.17.21)(react-dom@18.2.0(react@18.2.0))(react-intl@3.12.1(react@18.2.0))(react-redux@8.1.2(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(redux@4.2.1))(react-router-dom@5.2.0(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5))
'@kitconcept/volto-social-blocks':
specifier: 1.0.0-alpha.8
version: 1.0.0-alpha.8(classnames@2.5.1)(react-dom@18.2.0(react@18.2.0))(react-intl@3.12.1(react@18.2.0))(react@18.2.0)
@@ -1563,11 +1569,14 @@ importers:
specifier: 0.5.1
version: 0.5.1(react@18.2.0)
'@plone-collective/volto-authomatic':
- specifier: 2.0.1
- version: 2.0.1(@plone/volto@18.14.0(@babel/runtime@7.27.0)(@popperjs/core@2.11.8)(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-with-direction@1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(seamless-immutable@7.1.4))
+ specifier: 3.0.0-alpha.3
+ version: 3.0.0-alpha.3(@plone/components@core+packages+components)(@plone/registry@core+packages+registry)(react-dom@18.2.0(react@18.2.0))(react-intl@3.12.1(react@18.2.0))(react@18.2.0)(semantic-ui-react@2.1.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))
'@plone-collective/volto-eventbrite-block':
specifier: ^1.0.0-alpha.2
version: 1.0.0-alpha.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5))
+ '@plone-collective/volto-techevent':
+ specifier: 1.0.0-alpha.5
+ version: 1.0.0-alpha.5(@kitconcept/volto-light-theme@7.0.0-alpha.10(@eeacms/volto-accordion-block@10.4.6)(@kitconcept/volto-banner-block@1.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@kitconcept/volto-bm3-compat@1.0.0-alpha.1(classnames@2.5.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@kitconcept/volto-button-block@3.0.3(classnames@2.5.1)(react-dom@18.2.0(react@18.2.0))(react-intl@3.12.1(react@18.2.0))(react@18.2.0))(@kitconcept/volto-carousel-block@2.0.0-alpha.1(classnames@2.5.1)(embla-carousel@8.6.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@kitconcept/volto-dsgvo-banner@2.3.2)(@kitconcept/volto-heading-block@2.4.0(react@18.2.0))(@kitconcept/volto-highlight-block@4.2.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@kitconcept/volto-introduction-block@1.0.0)(@kitconcept/volto-logos-block@3.0.0-alpha.0(classnames@2.5.1)(react-dom@18.2.0(react@18.2.0))(react-intl@3.12.1(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5)))(@kitconcept/volto-separator-block@4.1.2(react-dom@18.2.0(react@18.2.0))(react-intl@3.12.1(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5)))(@kitconcept/volto-slider-block@6.3.1(@plone/volto@18.23.0(@babel/runtime@7.27.0)(@popperjs/core@2.11.8)(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-with-direction@1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(seamless-immutable@7.1.4))(embla-carousel@8.6.0)(react@18.2.0))(@plonegovbr/volto-social-media@2.0.0-alpha.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5)))(classnames@2.5.1)(lodash@4.17.21)(react-dom@18.2.0(react@18.2.0))(react-intl@3.12.1(react@18.2.0))(react-redux@8.1.2(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(redux@4.2.1))(react-router-dom@5.2.0(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5)))(react-aria-components@1.8.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react-intl@3.12.1(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5))
'@plone/components':
specifier: workspace:*
version: link:../../core/packages/components
@@ -1575,17 +1584,20 @@ importers:
specifier: workspace:*
version: link:../../core/packages/registry
'@plonegovbr/volto-social-media':
- specifier: ^2.0.0-alpha.5
- version: 2.0.0-alpha.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5))
+ specifier: ^2.0.0-alpha.6
+ version: 2.0.0-alpha.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5))
react:
specifier: 18.2.0
version: 18.2.0
react-dom:
specifier: 18.2.0
version: 18.2.0(react@18.2.0)
+ react-portal:
+ specifier: '*'
+ version: 4.3.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
volto-form-block:
specifier: '*'
- version: 3.11.0(@plone/volto@18.14.0(@babel/runtime@7.27.0)(@popperjs/core@2.11.8)(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-with-direction@1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(seamless-immutable@7.1.4))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(volto-subblocks@2.1.0(@plone/volto@18.14.0(@babel/runtime@7.27.0)(@popperjs/core@2.11.8)(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-with-direction@1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(seamless-immutable@7.1.4))(react@18.2.0))
+ version: 3.11.0(@plone/volto@18.23.0(@babel/runtime@7.27.0)(@popperjs/core@2.11.8)(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-with-direction@1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(seamless-immutable@7.1.4))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(volto-subblocks@2.1.0(@plone/volto@18.23.0(@babel/runtime@7.27.0)(@popperjs/core@2.11.8)(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-with-direction@1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(seamless-immutable@7.1.4))(react@18.2.0))
devDependencies:
'@plone/scripts':
specifier: workspace:*
@@ -3082,6 +3094,13 @@ packages:
react: 18.2.0
react-dom: 18.2.0
+ '@kitconcept/volto-bm3-compat@1.0.0-alpha.1':
+ resolution: {integrity: sha512-eKEtR1WBvLh9gf9JzCB7THgcYxyJPiw7QVXZ2Bdo6NOYSh05PPMvpN+lUBYj3ottk7oAt9Mvln4FCyfza4abUw==}
+ peerDependencies:
+ classnames: ^2.2.6
+ react: 18.2.0
+ react-dom: 18.2.0
+
'@kitconcept/volto-button-block@3.0.3':
resolution: {integrity: sha512-H1N3OY1XRxyU9u8Cjkmf5QtdBYB6010nzke9DHU3lJLItGzP84Qg3dw6RFWV0oE/EcKhZHh0tr6kxnYIpIaiFg==}
peerDependencies:
@@ -3090,6 +3109,12 @@ packages:
react-dom: 18.2.0
react-intl: ^3.12.1
+ '@kitconcept/volto-carousel-block@2.0.0-alpha.1':
+ resolution: {integrity: sha512-29XK8AC9AwPyOLfXgjN3JIG5Jzrk1NME6XJwkEkAOHqkGCok5dZ9suTqT30HF92h/2uE8PgOSlv/WRxjYzpsLg==}
+ peerDependencies:
+ react: 18.2.0
+ react-dom: 18.2.0
+
'@kitconcept/volto-dsgvo-banner@2.3.2':
resolution: {integrity: sha512-iguCyuy4a7dYi1glWorVY7/0co66Su3+acp2O24GEGyDHvrZJgNkKvIOc9nnmAvR6g9zluMWH5ilLaT1rZuT6w==}
@@ -3105,19 +3130,22 @@ packages:
'@kitconcept/volto-introduction-block@1.0.0':
resolution: {integrity: sha512-17wbBx89zcSQzXbdWvKBDlw0aJfTzjaX3cJUBorHjrJgOcTx7WBahIhBPjnC2z4EYmZ5w9YdHolqdD9HUlpozw==}
- '@kitconcept/volto-light-theme@6.0.0-alpha.22':
- resolution: {integrity: sha512-2C/VilHvt5FAyW8Ff6B6RotxDHm44JQ0nKKnJAPDzjahCwJNG7C4ex39nKLPaCQ7/jmF6eAcIbaVgJPhC1Fv4w==}
+ '@kitconcept/volto-light-theme@7.0.0-alpha.10':
+ resolution: {integrity: sha512-wt9Ig1vFyNZaYz7GqFI6RiyxFkhpRP7ZtzS7y09O+hV0WmLhNnZ7bhKLwfJN3DNt4CNOB71Uvtb35/kOQuc5JQ==}
peerDependencies:
'@eeacms/volto-accordion-block': ^10.4.6
'@kitconcept/volto-banner-block': ^1.0.1
- '@kitconcept/volto-button-block': ^3.0.3
- '@kitconcept/volto-dsgvo-banner': ^2.3.2
+ '@kitconcept/volto-bm3-compat': ^1.0.0-alpha.1
+ '@kitconcept/volto-button-block': ^4.0.0-alpha.0
+ '@kitconcept/volto-carousel-block': ^2.0.0-alpha.1
+ '@kitconcept/volto-dsgvo-banner': ^2.4.0
'@kitconcept/volto-heading-block': ^2.4.0
'@kitconcept/volto-highlight-block': ^4.1.0
'@kitconcept/volto-introduction-block': ^1.0.0
+ '@kitconcept/volto-logos-block': ^3.0.0-alpha.0
'@kitconcept/volto-separator-block': ^4.1.2
'@kitconcept/volto-slider-block': ^6.3.1
- '@plonegovbr/volto-social-media': ^2.0.0-alpha.5
+ '@plonegovbr/volto-social-media': ^2.0.0-alpha.6
classnames: ^2.2.6
lodash: 4.17.21
react: 18.2.0
@@ -3126,6 +3154,14 @@ packages:
react-redux: ^8.1.2
react-router-dom: ^5.2.0
+ '@kitconcept/volto-logos-block@3.0.0-alpha.0':
+ resolution: {integrity: sha512-4hWNh+7nf8JZ0F1i1oAN2xhuMN+Kzj7uSS63w7StrQMTF6mwhlD7FiRIh0DOASjGwZhIoiRFShkfDsf+YLNasg==}
+ peerDependencies:
+ classnames: 2.5.1
+ react: 18.2.0
+ react-dom: 18.2.0
+ react-intl: ^3.12.1
+
'@kitconcept/volto-separator-block@4.1.2':
resolution: {integrity: sha512-SWgIu7/XmZA0BK0LX+ObM7w1YdFAyRAxQUBt/ICka+KKsIVUpYeBUiJ+Q9d9Z5bneh7Fwv3Oik6CAJ5BhqCn2A==}
peerDependencies:
@@ -3548,10 +3584,15 @@ packages:
resolution: {integrity: sha512-ROFF39F6ZrnzSUEmQQZUar0Jt4xVoP9WnDRdWwF4NNcXs3xBTLgBUDoOwW141y1jP+S8nahIbdxbFC7IShw9Iw==}
engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
- '@plone-collective/volto-authomatic@2.0.1':
- resolution: {integrity: sha512-V92EN+5NcxturfGjFsNo1h/c0GC5UgvjOWIUuhSB99XOj7R4X/gM/GxqVH5fRYkM3tp9h6ux82wBpnMSIOyStQ==}
+ '@plone-collective/volto-authomatic@3.0.0-alpha.3':
+ resolution: {integrity: sha512-XPVUZUsvhR01bZX7PoR/jOhI+g3NHuGBBRwO94whc19GkXZvrA9VAG7rQJPgs2PYFtjgEut+mwqPulVBLW2aUw==}
peerDependencies:
- '@plone/volto': '>=13.8.0'
+ '@plone/components': 3.0.2
+ '@plone/registry': 2.5.2
+ react: 18.2.0
+ react-dom: 18.2.0
+ react-intl: '*'
+ semantic-ui-react: '*'
'@plone-collective/volto-eventbrite-block@1.0.0-alpha.2':
resolution: {integrity: sha512-oF0Rfssq1oAnh/uuzIqW5z9fUIBusUgnSib1S1lZIVdnT6FPETrEZ910o1PhqPFyvZcRaK3TTNj9J7L4MMq3HA==}
@@ -3559,6 +3600,15 @@ packages:
react: 18.2.0
react-dom: 18.2.0
+ '@plone-collective/volto-techevent@1.0.0-alpha.5':
+ resolution: {integrity: sha512-16OV4a7RZqgeQXh3G+Hgsx1C8XenhruvcrSRGT0xiSKlhEE4ca3j5m0L+iQF1kdE2wZPyrNTvYHijfNdvCfIiQ==}
+ peerDependencies:
+ '@kitconcept/volto-light-theme': '*'
+ react: 18.2.0
+ react-aria-components: '*'
+ react-dom: 18.2.0
+ react-intl: '*'
+
'@plone/components@1.7.0':
resolution: {integrity: sha512-T/GOFwKEhxrjp2S0sqRgTz7ZN8TcxvvPKKq7af2vARpEGWW8HszCX9CTDo0t3decSal0NqWqHiFbY2q6xbvrNA==}
peerDependencies:
@@ -3586,8 +3636,8 @@ packages:
react-dom:
optional: true
- '@plone/registry@2.5.1':
- resolution: {integrity: sha512-9i2je02GYi4VcATBP6DAxKsVj79/ragOxqsYY+BzKtR2kmqFVl4BKg3/LkRpNvTp6X/O0JKuJhR7joQm0daMpQ==}
+ '@plone/registry@2.5.4':
+ resolution: {integrity: sha512-ygUm4LuOiwWBsyK/2Z4xI3ORvDAIWL4nn1bgcrUc+BconM4bsY1N0ycDH+VpylEMovx/K2r6BR4R82oBa6KP8g==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
@@ -3595,18 +3645,22 @@ packages:
react-dom:
optional: true
+ '@plone/scripts@3.10.1':
+ resolution: {integrity: sha512-U4RUHX+9YmVAMJX6uY/7KMSzcHimovK2paGVlz4WBicyp9hwCdOQ/9oCvq2wBLWHWAFUXlVjsWyHz03fotrgAA==}
+ hasBin: true
+
'@plone/scripts@3.9.0':
resolution: {integrity: sha512-DbG4TJ09s4An8491aQVJc32XVc4hAaamIE2ymlt27bIVk/Z+Ayx2aFg0M12ykJqSMR1oUYP7/y4vFvopyCObRQ==}
hasBin: true
- '@plone/volto-slate@18.3.0':
- resolution: {integrity: sha512-dopiD6TO++ivqnQMDxs41bpyt4nHQq57Lohbw2BvmaIVHWuNSqGFd8qnlztiBor7rFZL9HXjEtMlYb5m/J7ihw==}
+ '@plone/volto-slate@18.5.0':
+ resolution: {integrity: sha512-DDGCnf6Hj7NiOS7WcmRiq1FHkLNzdiZuPFuJm4f8PRQtCI8AvAj8aMlaMp2tlZ8f6EhHgAH7VevB1WKtOT8yzw==}
peerDependencies:
react: ^18.2.0
react-dom: ^18.2.0
- '@plone/volto@18.14.0':
- resolution: {integrity: sha512-/1AazfW8BWuhXcpj0ywegT3JnoTAhLbDX4eHcpR+RL0bxoo+ltSfMcavr2Y31JubcciEVDYXiPo8xx+i0oNvDw==}
+ '@plone/volto@18.23.0':
+ resolution: {integrity: sha512-vmgiJnvXA+SMUNIY4EfjDaBTOmKpqC1LdVchNK7J1Rf99sLymVDll4vKUexLaEHkH2zPALgaxkqkKcLFb/YDfw==}
engines: {node: ^20 || ^22}
'@plonegovbr/volto-social-media@2.0.0-alpha.5':
@@ -3615,6 +3669,12 @@ packages:
react: 18.2.0
react-dom: 18.2.0
+ '@plonegovbr/volto-social-media@2.0.0-alpha.6':
+ resolution: {integrity: sha512-XM49Y64RlYA4reuSDiW7b6OZE33UMEeIMZv9pl6/reBux3Ep5wOvhh6PFsl7eCbYJNUtFAs89bLtyI7gn1THwQ==}
+ peerDependencies:
+ react: 18.2.0
+ react-dom: 18.2.0
+
'@pmmmwh/react-refresh-webpack-plugin@0.5.16':
resolution: {integrity: sha512-kLQc9xz6QIqd2oIYyXRUiAp79kGpFBm3fEM9ahfG1HI0WI5gdZ2OVHWdmZYnwODt7ISck+QuQ6sBPrtvUBML7Q==}
engines: {node: '>= 10.13'}
@@ -6454,9 +6514,6 @@ packages:
resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==}
engines: {node: '>=0.10.0'}
- classnames@2.2.6:
- resolution: {integrity: sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==}
-
classnames@2.5.1:
resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==}
@@ -6925,6 +6982,9 @@ packages:
css-select@4.3.0:
resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==}
+ css-select@5.1.0:
+ resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==}
+
css-tree@1.0.0-alpha.37:
resolution: {integrity: sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==}
engines: {node: '>=8.0.0'}
@@ -6933,6 +6993,14 @@ packages:
resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==}
engines: {node: '>=8.0.0'}
+ css-tree@2.2.1:
+ resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==}
+ engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
+
+ css-tree@2.3.1:
+ resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==}
+ engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
+
css-tree@3.1.0:
resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==}
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
@@ -6984,6 +7052,10 @@ packages:
resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==}
engines: {node: '>=8.0.0'}
+ csso@5.0.5:
+ resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==}
+ engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
+
cssom@0.3.8:
resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==}
@@ -7384,6 +7456,9 @@ packages:
dom-serializer@1.4.1:
resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==}
+ dom-serializer@2.0.0:
+ resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
+
domelementtype@1.3.1:
resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==}
@@ -7404,12 +7479,19 @@ packages:
resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==}
engines: {node: '>= 4'}
+ domhandler@5.0.3:
+ resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
+ engines: {node: '>= 4'}
+
domutils@1.7.0:
resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==}
domutils@2.8.0:
resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==}
+ domutils@3.2.2:
+ resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==}
+
dot-case@3.0.4:
resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==}
@@ -7458,21 +7540,39 @@ packages:
electron-to-chromium@1.5.142:
resolution: {integrity: sha512-Ah2HgkTu/9RhTDNThBtzu2Wirdy4DC9b0sMT1pUhbkZQ5U/iwmE+PHZX1MpjD5IkJCc2wSghgGG/B04szAx07w==}
+ embla-carousel-autoplay@8.5.2:
+ resolution: {integrity: sha512-27emJ0px3q/c0kCHCjwRrEbYcyYUPfGO3g5IBWF1i7714TTzE6L9P81V6PHLoSMAKJ1aHoT2e7YFOsuFKCbyag==}
+ peerDependencies:
+ embla-carousel: 8.5.2
+
embla-carousel-autoplay@8.6.0:
resolution: {integrity: sha512-OBu5G3nwaSXkZCo1A6LTaFMZ8EpkYbwIaH+bPqdBnDGQ2fh4+NbzjXjs2SktoPNKCtflfVMc75njaDHOYXcrsA==}
peerDependencies:
embla-carousel: 8.6.0
+ embla-carousel-react@8.5.2:
+ resolution: {integrity: sha512-Tmx+uY3MqseIGdwp0ScyUuxpBgx5jX1f7od4Cm5mDwg/dptEiTKf9xp6tw0lZN2VA9JbnVMl/aikmbc53c6QFA==}
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.1 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+
embla-carousel-react@8.6.0:
resolution: {integrity: sha512-0/PjqU7geVmo6F734pmPqpyHqiM99olvyecY7zdweCw+6tKEXnrE90pBiBbMMU8s5tICemzpQ3hi5EpxzGW+JA==}
peerDependencies:
react: ^16.8.0 || ^17.0.1 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ embla-carousel-reactive-utils@8.5.2:
+ resolution: {integrity: sha512-QC8/hYSK/pEmqEdU1IO5O+XNc/Ptmmq7uCB44vKplgLKhB/l0+yvYx0+Cv0sF6Ena8Srld5vUErZkT+yTahtDg==}
+ peerDependencies:
+ embla-carousel: 8.5.2
+
embla-carousel-reactive-utils@8.6.0:
resolution: {integrity: sha512-fMVUDUEx0/uIEDM0Mz3dHznDhfX+znCCDCeIophYb1QGVM7YThSWX+wz11zlYwWFOr74b4QLGg0hrGPJeG2s4A==}
peerDependencies:
embla-carousel: 8.6.0
+ embla-carousel@8.5.2:
+ resolution: {integrity: sha512-xQ9oVLrun/eCG/7ru3R+I5bJ7shsD8fFwLEY7yPe27/+fDHCNj0OT5EoG5ZbFyOxOcG6yTwW8oTz/dWyFnyGpg==}
+
embla-carousel@8.6.0:
resolution: {integrity: sha512-SjWyZBHJPbqxHOzckOfo8lHisEaJWmwd23XppYFYVh10bU66/Pn5tkVkbkCMZVdbUE5eTCI2nD8OyIP4Z+uwkA==}
@@ -10378,6 +10478,12 @@ packages:
mdn-data@2.0.14:
resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==}
+ mdn-data@2.0.28:
+ resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==}
+
+ mdn-data@2.0.30:
+ resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
+
mdn-data@2.0.4:
resolution: {integrity: sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==}
@@ -13470,6 +13576,11 @@ packages:
engines: {node: '>=10.13.0'}
hasBin: true
+ svgo@3.3.2:
+ resolution: {integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==}
+ engines: {node: '>=14.0.0'}
+ hasBin: true
+
symbol-observable@1.2.0:
resolution: {integrity: sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==}
engines: {node: '>=0.10.0'}
@@ -16520,6 +16631,12 @@ snapshots:
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
+ '@kitconcept/volto-bm3-compat@1.0.0-alpha.1(classnames@2.5.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
+ dependencies:
+ classnames: 2.5.1
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+
'@kitconcept/volto-button-block@3.0.3(classnames@2.5.1)(react-dom@18.2.0(react@18.2.0))(react-intl@3.12.1(react@18.2.0))(react@18.2.0)':
dependencies:
classnames: 2.5.1
@@ -16527,6 +16644,17 @@ snapshots:
react-dom: 18.2.0(react@18.2.0)
react-intl: 3.12.1(react@18.2.0)
+ '@kitconcept/volto-carousel-block@2.0.0-alpha.1(classnames@2.5.1)(embla-carousel@8.6.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
+ dependencies:
+ '@kitconcept/volto-bm3-compat': 1.0.0-alpha.1(classnames@2.5.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ embla-carousel-autoplay: 8.5.2(embla-carousel@8.6.0)
+ embla-carousel-react: 8.5.2(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ transitivePeerDependencies:
+ - classnames
+ - embla-carousel
+
'@kitconcept/volto-dsgvo-banner@2.3.2':
dependencies:
'@datapunt/matomo-tracker-js': 0.5.1
@@ -16545,22 +16673,25 @@ snapshots:
'@kitconcept/volto-introduction-block@1.0.0': {}
- ? '@kitconcept/volto-light-theme@6.0.0-alpha.22(@eeacms/volto-accordion-block@10.4.6)(@kitconcept/volto-banner-block@1.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@kitconcept/volto-button-block@3.0.3(classnames@2.5.1)(react-dom@18.2.0(react@18.2.0))(react-intl@3.12.1(react@18.2.0))(react@18.2.0))(@kitconcept/volto-dsgvo-banner@2.3.2)(@kitconcept/volto-heading-block@2.4.0(react@18.2.0))(@kitconcept/volto-highlight-block@4.2.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@kitconcept/volto-introduction-block@1.0.0)(@kitconcept/volto-separator-block@4.1.2(react-dom@18.2.0(react@18.2.0))(react-intl@3.12.1(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5)))(@kitconcept/volto-slider-block@6.3.1(@plone/volto@18.14.0(@babel/runtime@7.27.0)(@popperjs/core@2.11.8)(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-with-direction@1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(seamless-immutable@7.1.4))(embla-carousel@8.6.0)(react@18.2.0))(@plonegovbr/volto-social-media@2.0.0-alpha.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5)))(classnames@2.5.1)(lodash@4.17.21)(react-dom@18.2.0(react@18.2.0))(react-intl@3.12.1(react@18.2.0))(react-redux@8.1.2(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(redux@4.2.1))(react-router-dom@5.2.0(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5))'
+ ? '@kitconcept/volto-light-theme@7.0.0-alpha.10(@eeacms/volto-accordion-block@10.4.6)(@kitconcept/volto-banner-block@1.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@kitconcept/volto-bm3-compat@1.0.0-alpha.1(classnames@2.5.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@kitconcept/volto-button-block@3.0.3(classnames@2.5.1)(react-dom@18.2.0(react@18.2.0))(react-intl@3.12.1(react@18.2.0))(react@18.2.0))(@kitconcept/volto-carousel-block@2.0.0-alpha.1(classnames@2.5.1)(embla-carousel@8.6.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@kitconcept/volto-dsgvo-banner@2.3.2)(@kitconcept/volto-heading-block@2.4.0(react@18.2.0))(@kitconcept/volto-highlight-block@4.2.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@kitconcept/volto-introduction-block@1.0.0)(@kitconcept/volto-logos-block@3.0.0-alpha.0(classnames@2.5.1)(react-dom@18.2.0(react@18.2.0))(react-intl@3.12.1(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5)))(@kitconcept/volto-separator-block@4.1.2(react-dom@18.2.0(react@18.2.0))(react-intl@3.12.1(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5)))(@kitconcept/volto-slider-block@6.3.1(@plone/volto@18.23.0(@babel/runtime@7.27.0)(@popperjs/core@2.11.8)(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-with-direction@1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(seamless-immutable@7.1.4))(embla-carousel@8.6.0)(react@18.2.0))(@plonegovbr/volto-social-media@2.0.0-alpha.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5)))(classnames@2.5.1)(lodash@4.17.21)(react-dom@18.2.0(react@18.2.0))(react-intl@3.12.1(react@18.2.0))(react-redux@8.1.2(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(redux@4.2.1))(react-router-dom@5.2.0(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5))'
: dependencies:
'@dnd-kit/core': 6.0.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
'@dnd-kit/sortable': 7.0.2(@dnd-kit/core@6.0.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0)
'@dnd-kit/utilities': 3.2.2(react@18.2.0)
'@eeacms/volto-accordion-block': 10.4.6
'@kitconcept/volto-banner-block': 1.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ '@kitconcept/volto-bm3-compat': 1.0.0-alpha.1(classnames@2.5.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
'@kitconcept/volto-button-block': 3.0.3(classnames@2.5.1)(react-dom@18.2.0(react@18.2.0))(react-intl@3.12.1(react@18.2.0))(react@18.2.0)
+ '@kitconcept/volto-carousel-block': 2.0.0-alpha.1(classnames@2.5.1)(embla-carousel@8.6.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
'@kitconcept/volto-dsgvo-banner': 2.3.2
'@kitconcept/volto-heading-block': 2.4.0(react@18.2.0)
'@kitconcept/volto-highlight-block': 4.2.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
'@kitconcept/volto-introduction-block': 1.0.0
+ '@kitconcept/volto-logos-block': 3.0.0-alpha.0(classnames@2.5.1)(react-dom@18.2.0(react@18.2.0))(react-intl@3.12.1(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5))
'@kitconcept/volto-separator-block': 4.1.2(react-dom@18.2.0(react@18.2.0))(react-intl@3.12.1(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5))
- '@kitconcept/volto-slider-block': 6.3.1(@plone/volto@18.14.0(@babel/runtime@7.27.0)(@popperjs/core@2.11.8)(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-with-direction@1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(seamless-immutable@7.1.4))(embla-carousel@8.6.0)(react@18.2.0)
+ '@kitconcept/volto-slider-block': 6.3.1(@plone/volto@18.23.0(@babel/runtime@7.27.0)(@popperjs/core@2.11.8)(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-with-direction@1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(seamless-immutable@7.1.4))(embla-carousel@8.6.0)(react@18.2.0)
'@plone/components': 3.0.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5))
- '@plonegovbr/volto-social-media': 2.0.0-alpha.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5))
+ '@plonegovbr/volto-social-media': 2.0.0-alpha.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5))
classnames: 2.5.1
lodash: 4.17.21
react: 18.2.0
@@ -16575,6 +16706,16 @@ snapshots:
transitivePeerDependencies:
- storybook
+ '@kitconcept/volto-logos-block@3.0.0-alpha.0(classnames@2.5.1)(react-dom@18.2.0(react@18.2.0))(react-intl@3.12.1(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5))':
+ dependencies:
+ '@plone/components': 3.0.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5))
+ classnames: 2.5.1
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ react-intl: 3.12.1(react@18.2.0)
+ transitivePeerDependencies:
+ - storybook
+
'@kitconcept/volto-separator-block@4.1.2(react-dom@18.2.0(react@18.2.0))(react-intl@3.12.1(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5))':
dependencies:
'@plone/components': 2.0.0-alpha.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5))
@@ -16584,9 +16725,9 @@ snapshots:
transitivePeerDependencies:
- storybook
- '@kitconcept/volto-slider-block@6.3.1(@plone/volto@18.14.0(@babel/runtime@7.27.0)(@popperjs/core@2.11.8)(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-with-direction@1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(seamless-immutable@7.1.4))(embla-carousel@8.6.0)(react@18.2.0)':
+ '@kitconcept/volto-slider-block@6.3.1(@plone/volto@18.23.0(@babel/runtime@7.27.0)(@popperjs/core@2.11.8)(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-with-direction@1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(seamless-immutable@7.1.4))(embla-carousel@8.6.0)(react@18.2.0)':
dependencies:
- '@plone/volto': 18.14.0(@babel/runtime@7.27.0)(@popperjs/core@2.11.8)(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-with-direction@1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(seamless-immutable@7.1.4)
+ '@plone/volto': 18.23.0(@babel/runtime@7.27.0)(@popperjs/core@2.11.8)(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-with-direction@1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(seamless-immutable@7.1.4)
deepmerge: 4.2.2
embla-carousel-autoplay: 8.6.0(embla-carousel@8.6.0)
embla-carousel-react: 8.6.0(react@18.2.0)
@@ -17192,9 +17333,14 @@ snapshots:
'@pkgr/core@0.2.4': {}
- '@plone-collective/volto-authomatic@2.0.1(@plone/volto@18.14.0(@babel/runtime@7.27.0)(@popperjs/core@2.11.8)(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-with-direction@1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(seamless-immutable@7.1.4))':
+ '@plone-collective/volto-authomatic@3.0.0-alpha.3(@plone/components@core+packages+components)(@plone/registry@core+packages+registry)(react-dom@18.2.0(react@18.2.0))(react-intl@3.12.1(react@18.2.0))(react@18.2.0)(semantic-ui-react@2.1.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))':
dependencies:
- '@plone/volto': 18.14.0(@babel/runtime@7.27.0)(@popperjs/core@2.11.8)(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-with-direction@1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(seamless-immutable@7.1.4)
+ '@plone/components': link:core/packages/components
+ '@plone/registry': link:core/packages/registry
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ react-intl: 3.12.1(react@18.2.0)
+ semantic-ui-react: 2.1.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
'@plone-collective/volto-eventbrite-block@1.0.0-alpha.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5))':
dependencies:
@@ -17204,6 +17350,18 @@ snapshots:
transitivePeerDependencies:
- storybook
+ ? '@plone-collective/volto-techevent@1.0.0-alpha.5(@kitconcept/volto-light-theme@7.0.0-alpha.10(@eeacms/volto-accordion-block@10.4.6)(@kitconcept/volto-banner-block@1.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@kitconcept/volto-bm3-compat@1.0.0-alpha.1(classnames@2.5.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@kitconcept/volto-button-block@3.0.3(classnames@2.5.1)(react-dom@18.2.0(react@18.2.0))(react-intl@3.12.1(react@18.2.0))(react@18.2.0))(@kitconcept/volto-carousel-block@2.0.0-alpha.1(classnames@2.5.1)(embla-carousel@8.6.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@kitconcept/volto-dsgvo-banner@2.3.2)(@kitconcept/volto-heading-block@2.4.0(react@18.2.0))(@kitconcept/volto-highlight-block@4.2.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@kitconcept/volto-introduction-block@1.0.0)(@kitconcept/volto-logos-block@3.0.0-alpha.0(classnames@2.5.1)(react-dom@18.2.0(react@18.2.0))(react-intl@3.12.1(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5)))(@kitconcept/volto-separator-block@4.1.2(react-dom@18.2.0(react@18.2.0))(react-intl@3.12.1(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5)))(@kitconcept/volto-slider-block@6.3.1(@plone/volto@18.23.0(@babel/runtime@7.27.0)(@popperjs/core@2.11.8)(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-with-direction@1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(seamless-immutable@7.1.4))(embla-carousel@8.6.0)(react@18.2.0))(@plonegovbr/volto-social-media@2.0.0-alpha.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5)))(classnames@2.5.1)(lodash@4.17.21)(react-dom@18.2.0(react@18.2.0))(react-intl@3.12.1(react@18.2.0))(react-redux@8.1.2(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(redux@4.2.1))(react-router-dom@5.2.0(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5)))(react-aria-components@1.8.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react-intl@3.12.1(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5))'
+ : dependencies:
+ '@kitconcept/volto-light-theme': 7.0.0-alpha.10(@eeacms/volto-accordion-block@10.4.6)(@kitconcept/volto-banner-block@1.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@kitconcept/volto-bm3-compat@1.0.0-alpha.1(classnames@2.5.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@kitconcept/volto-button-block@3.0.3(classnames@2.5.1)(react-dom@18.2.0(react@18.2.0))(react-intl@3.12.1(react@18.2.0))(react@18.2.0))(@kitconcept/volto-carousel-block@2.0.0-alpha.1(classnames@2.5.1)(embla-carousel@8.6.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@kitconcept/volto-dsgvo-banner@2.3.2)(@kitconcept/volto-heading-block@2.4.0(react@18.2.0))(@kitconcept/volto-highlight-block@4.2.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@kitconcept/volto-introduction-block@1.0.0)(@kitconcept/volto-logos-block@3.0.0-alpha.0(classnames@2.5.1)(react-dom@18.2.0(react@18.2.0))(react-intl@3.12.1(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5)))(@kitconcept/volto-separator-block@4.1.2(react-dom@18.2.0(react@18.2.0))(react-intl@3.12.1(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5)))(@kitconcept/volto-slider-block@6.3.1(@plone/volto@18.23.0(@babel/runtime@7.27.0)(@popperjs/core@2.11.8)(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-with-direction@1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(seamless-immutable@7.1.4))(embla-carousel@8.6.0)(react@18.2.0))(@plonegovbr/volto-social-media@2.0.0-alpha.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5)))(classnames@2.5.1)(lodash@4.17.21)(react-dom@18.2.0(react@18.2.0))(react-intl@3.12.1(react@18.2.0))(react-redux@8.1.2(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(redux@4.2.1))(react-router-dom@5.2.0(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5))
+ '@plone/components': 3.0.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5))
+ '@plonegovbr/volto-social-media': 2.0.0-alpha.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5))
+ react: 18.2.0
+ react-aria-components: 1.8.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ react-dom: 18.2.0(react@18.2.0)
+ react-intl: 3.12.1(react@18.2.0)
+ transitivePeerDependencies:
+ - storybook
+
'@plone/components@1.7.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
dependencies:
'@react-aria/utils': 3.28.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
@@ -17242,7 +17400,7 @@ snapshots:
transitivePeerDependencies:
- storybook
- '@plone/registry@2.5.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
+ '@plone/registry@2.5.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
dependencies:
auto-config-loader: 1.7.8
crypto-random-string: 3.2.0
@@ -17256,7 +17414,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@plone/scripts@3.9.0':
+ '@plone/scripts@3.10.1(debug@4.3.2)':
dependencies:
'@babel/core': 7.26.10
babel-plugin-react-intl: 5.1.17
@@ -17272,12 +17430,12 @@ snapshots:
lodash: 4.17.21
mrs-developer: 2.3.0
pofile: 1.0.10
- wait-on: 7.2.0
+ wait-on: 7.2.0(debug@4.3.2)
transitivePeerDependencies:
- debug
- supports-color
- '@plone/scripts@3.9.0(debug@4.3.2)':
+ '@plone/scripts@3.9.0':
dependencies:
'@babel/core': 7.26.10
babel-plugin-react-intl: 5.1.17
@@ -17293,14 +17451,14 @@ snapshots:
lodash: 4.17.21
mrs-developer: 2.3.0
pofile: 1.0.10
- wait-on: 7.2.0(debug@4.3.2)
+ wait-on: 7.2.0
transitivePeerDependencies:
- debug
- supports-color
- '@plone/volto-slate@18.3.0(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(redux@4.2.1)':
+ '@plone/volto-slate@18.5.0(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(redux@4.2.1)':
dependencies:
- classnames: 2.2.6
+ classnames: 2.5.1
github-slugger: 1.4.0
image-extensions: 1.1.0
is-hotkey: 0.2.0
@@ -17332,15 +17490,15 @@ snapshots:
- supports-color
- utf-8-validate
- '@plone/volto@18.14.0(@babel/runtime@7.27.0)(@popperjs/core@2.11.8)(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-with-direction@1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(seamless-immutable@7.1.4)':
+ '@plone/volto@18.23.0(@babel/runtime@7.27.0)(@popperjs/core@2.11.8)(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-with-direction@1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(seamless-immutable@7.1.4)':
dependencies:
'@loadable/component': 5.14.1(react@18.2.0)
'@loadable/server': 5.14.0(@loadable/component@5.14.1(react@18.2.0))(react@18.2.0)
- '@plone/registry': 2.5.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
- '@plone/scripts': 3.9.0(debug@4.3.2)
- '@plone/volto-slate': 18.3.0(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(redux@4.2.1)
+ '@plone/registry': 2.5.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ '@plone/scripts': 3.10.1(debug@4.3.2)
+ '@plone/volto-slate': 18.5.0(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(redux@4.2.1)
'@redux-devtools/extension': 3.3.0(redux@4.2.1)
- classnames: 2.2.6
+ classnames: 2.5.1
connected-react-router: 6.8.0(history@4.10.1)(immutable@3.8.2)(react-redux@8.1.2(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(redux@4.2.1))(react-router@5.2.0(react@18.2.0))(react@18.2.0)(redux@4.2.1)(seamless-immutable@7.1.4)
debug: 4.3.2
decorate-component-with-props: 1.2.1(react@18.2.0)
@@ -17447,6 +17605,14 @@ snapshots:
transitivePeerDependencies:
- storybook
+ '@plonegovbr/volto-social-media@2.0.0-alpha.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5))':
+ dependencies:
+ '@plone/components': 3.0.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(storybook@8.6.12(prettier@3.2.5))
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ transitivePeerDependencies:
+ - storybook
+
'@pmmmwh/react-refresh-webpack-plugin@0.5.16(react-refresh@0.14.2)(sockjs-client@1.4.0)(type-fest@2.19.0)(webpack-dev-server@4.11.1(debug@4.3.2)(webpack@5.90.1(esbuild@0.25.3)))(webpack-hot-middleware@2.26.1)(webpack@5.90.1(esbuild@0.25.3))':
dependencies:
ansi-html: 0.0.9
@@ -21484,8 +21650,6 @@ snapshots:
isobject: 3.0.1
static-extend: 0.1.2
- classnames@2.2.6: {}
-
classnames@2.5.1: {}
clean-css@5.3.3:
@@ -21973,6 +22137,14 @@ snapshots:
domutils: 2.8.0
nth-check: 2.1.1
+ css-select@5.1.0:
+ dependencies:
+ boolbase: 1.0.0
+ css-what: 6.1.0
+ domhandler: 5.0.3
+ domutils: 3.2.2
+ nth-check: 2.1.1
+
css-tree@1.0.0-alpha.37:
dependencies:
mdn-data: 2.0.4
@@ -21983,6 +22155,16 @@ snapshots:
mdn-data: 2.0.14
source-map: 0.6.1
+ css-tree@2.2.1:
+ dependencies:
+ mdn-data: 2.0.28
+ source-map-js: 1.2.1
+
+ css-tree@2.3.1:
+ dependencies:
+ mdn-data: 2.0.30
+ source-map-js: 1.2.1
+
css-tree@3.1.0:
dependencies:
mdn-data: 2.12.2
@@ -22057,6 +22239,10 @@ snapshots:
dependencies:
css-tree: 1.1.3
+ csso@5.0.5:
+ dependencies:
+ css-tree: 2.2.1
+
cssom@0.3.8: {}
cssom@0.4.4: {}
@@ -22453,6 +22639,12 @@ snapshots:
domhandler: 4.3.1
entities: 2.2.0
+ dom-serializer@2.0.0:
+ dependencies:
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
+ entities: 4.5.0
+
domelementtype@1.3.1: {}
domelementtype@2.3.0: {}
@@ -22469,6 +22661,10 @@ snapshots:
dependencies:
domelementtype: 2.3.0
+ domhandler@5.0.3:
+ dependencies:
+ domelementtype: 2.3.0
+
domutils@1.7.0:
dependencies:
dom-serializer: 0.2.2
@@ -22480,6 +22676,12 @@ snapshots:
domelementtype: 2.3.0
domhandler: 4.3.1
+ domutils@3.2.2:
+ dependencies:
+ dom-serializer: 2.0.0
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
+
dot-case@3.0.4:
dependencies:
no-case: 3.0.4
@@ -22526,20 +22728,36 @@ snapshots:
electron-to-chromium@1.5.142: {}
+ embla-carousel-autoplay@8.5.2(embla-carousel@8.6.0):
+ dependencies:
+ embla-carousel: 8.6.0
+
embla-carousel-autoplay@8.6.0(embla-carousel@8.6.0):
dependencies:
embla-carousel: 8.6.0
+ embla-carousel-react@8.5.2(react@18.2.0):
+ dependencies:
+ embla-carousel: 8.5.2
+ embla-carousel-reactive-utils: 8.5.2(embla-carousel@8.5.2)
+ react: 18.2.0
+
embla-carousel-react@8.6.0(react@18.2.0):
dependencies:
embla-carousel: 8.6.0
embla-carousel-reactive-utils: 8.6.0(embla-carousel@8.6.0)
react: 18.2.0
+ embla-carousel-reactive-utils@8.5.2(embla-carousel@8.5.2):
+ dependencies:
+ embla-carousel: 8.5.2
+
embla-carousel-reactive-utils@8.6.0(embla-carousel@8.6.0):
dependencies:
embla-carousel: 8.6.0
+ embla-carousel@8.5.2: {}
+
embla-carousel@8.6.0: {}
emittery@0.7.2: {}
@@ -26267,6 +26485,10 @@ snapshots:
mdn-data@2.0.14: {}
+ mdn-data@2.0.28: {}
+
+ mdn-data@2.0.30: {}
+
mdn-data@2.0.4: {}
mdn-data@2.12.2: {}
@@ -28213,7 +28435,7 @@ snapshots:
rc-animate@2.11.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0):
dependencies:
babel-runtime: 6.26.0
- classnames: 2.2.6
+ classnames: 2.5.1
css-animation: 1.6.1
prop-types: 15.7.2
raf: 3.4.1
@@ -28224,7 +28446,7 @@ snapshots:
rc-time-picker@3.7.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0):
dependencies:
- classnames: 2.2.6
+ classnames: 2.5.1
moment: 2.29.4
prop-types: 15.7.2
raf: 3.4.1
@@ -28237,7 +28459,7 @@ snapshots:
rc-trigger@2.6.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0):
dependencies:
babel-runtime: 6.26.0
- classnames: 2.2.6
+ classnames: 2.5.1
prop-types: 15.7.2
rc-align: 2.4.5
rc-animate: 2.11.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
@@ -28266,7 +28488,7 @@ snapshots:
react-animate-height@2.0.17(react-dom@18.2.0(react@18.2.0))(react@18.2.0):
dependencies:
- classnames: 2.2.6
+ classnames: 2.5.1
prop-types: 15.7.2
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@@ -28827,7 +29049,7 @@ snapshots:
react-toastify@5.5.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0):
dependencies:
'@babel/runtime': 7.20.6
- classnames: 2.2.6
+ classnames: 2.5.1
prop-types: 15.7.2
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@@ -30418,6 +30640,16 @@ snapshots:
picocolors: 1.1.1
stable: 0.1.8
+ svgo@3.3.2:
+ dependencies:
+ '@trysound/sax': 0.2.0
+ commander: 7.2.0
+ css-select: 5.1.0
+ css-tree: 2.3.1
+ css-what: 6.1.0
+ csso: 5.0.5
+ picocolors: 1.1.1
+
symbol-observable@1.2.0: {}
symbol-tree@3.2.4: {}
@@ -31617,20 +31849,20 @@ snapshots:
- supports-color
- terser
- volto-form-block@3.11.0(@plone/volto@18.14.0(@babel/runtime@7.27.0)(@popperjs/core@2.11.8)(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-with-direction@1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(seamless-immutable@7.1.4))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(volto-subblocks@2.1.0(@plone/volto@18.14.0(@babel/runtime@7.27.0)(@popperjs/core@2.11.8)(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-with-direction@1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(seamless-immutable@7.1.4))(react@18.2.0)):
+ volto-form-block@3.11.0(@plone/volto@18.23.0(@babel/runtime@7.27.0)(@popperjs/core@2.11.8)(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-with-direction@1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(seamless-immutable@7.1.4))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(volto-subblocks@2.1.0(@plone/volto@18.23.0(@babel/runtime@7.27.0)(@popperjs/core@2.11.8)(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-with-direction@1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(seamless-immutable@7.1.4))(react@18.2.0)):
dependencies:
'@hcaptcha/react-hcaptcha': 0.3.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
- '@plone/volto': 18.14.0(@babel/runtime@7.27.0)(@popperjs/core@2.11.8)(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-with-direction@1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(seamless-immutable@7.1.4)
+ '@plone/volto': 18.23.0(@babel/runtime@7.27.0)(@popperjs/core@2.11.8)(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-with-direction@1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(seamless-immutable@7.1.4)
file-saver: 2.0.5
react-google-recaptcha-v3: 1.10.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
- volto-subblocks: 2.1.0(@plone/volto@18.14.0(@babel/runtime@7.27.0)(@popperjs/core@2.11.8)(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-with-direction@1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(seamless-immutable@7.1.4))(react@18.2.0)
+ volto-subblocks: 2.1.0(@plone/volto@18.23.0(@babel/runtime@7.27.0)(@popperjs/core@2.11.8)(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-with-direction@1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(seamless-immutable@7.1.4))(react@18.2.0)
transitivePeerDependencies:
- react
- react-dom
- volto-subblocks@2.1.0(@plone/volto@18.14.0(@babel/runtime@7.27.0)(@popperjs/core@2.11.8)(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-with-direction@1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(seamless-immutable@7.1.4))(react@18.2.0):
+ volto-subblocks@2.1.0(@plone/volto@18.23.0(@babel/runtime@7.27.0)(@popperjs/core@2.11.8)(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-with-direction@1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(seamless-immutable@7.1.4))(react@18.2.0):
dependencies:
- '@plone/volto': 18.14.0(@babel/runtime@7.27.0)(@popperjs/core@2.11.8)(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-with-direction@1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(seamless-immutable@7.1.4)
+ '@plone/volto': 18.23.0(@babel/runtime@7.27.0)(@popperjs/core@2.11.8)(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-with-direction@1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(seamless-immutable@7.1.4)
react-dnd: 5.0.0(react@18.2.0)
react-dnd-html5-backend: 5.0.1
transitivePeerDependencies: