This is an helper package that setup a RedTurtle's Plone site ready to work with Volto.
- Disabled Collection
- Document, News Item and Event are folderish types (thanks to collective.folderishtypes.dx)
- News Item and Event can only contain Links, Images and Files
- Plone Site is a DX content
- Revert News Item and Event to be non-folderish (collective.folderishtypes.dx makes them folderish)
volto.blocks behavior is enabled by default for these content-types:
- Document
- News Item
- Event
There is a custom adapter for TextLine field that return the proper widget for remoteUrl.
There are custom transformers for serializer and deserializer to better manage resolveuids.
There is an edge-case when a block refers its context: in this case, to avoid maximum recursion depth in uids resolving, that uid will be expanded with the Summary json version and not the full object.
plone.restapi's @navigation endpoint always return the navigation tree from the site root.
There is a @context-navigation endpoint that returns the contextual navigation tree:
> curl -i http://localhost:8080/Plone/folder?context-navigation -H 'Accept: application/json'
This is the result:
{ '@id': 'http://localhost:8080/Plone/folder', 'items': [ {'@id': 'http://localhost:8080/Plone/folder/folder-a', 'description': '', 'title': 'Folder A'}, {'@id': 'http://localhost:8080/Plone/folder/folder-b', 'description': '', 'title': 'Folder B'}, {'@id': 'http://localhost:8080/Plone/folder/folder-c', 'description': '', 'title': 'Folder C'} ] }
By default only first level is shown. You can pass an expand.navigation.depth parameter to set the depth:
> curl -i http://localhost:8080/Plone/folder?context-navigation?expand.navigation.depth=2 -H 'Accept: application/json'
And this is the result:
{ '@id': 'http://localhost:8080/Plone/folder', 'items': [ { '@id': 'http://localhost:8080/Plone/folder/folder-a', 'description': '', 'items': [ { '@id': 'http://localhost:8080/Plone/folder/folder-a/folder-aa', 'description': '', 'title': 'Folder AA', }, { '@id': 'http://localhost:8080/Plone/folder/folder-a/folder-ab', 'description': '', 'title': 'Folder AB', }, ], 'title': 'Folder A', }, { '@id': 'http://localhost:8080/Plone/folder/folder-b', 'description': '', 'title': 'Folder B', }, { '@id': 'http://localhost:8080/Plone/folder/folder-c', 'description': '', 'title': 'Folder C', }, ], }
This endpoint works exactly like @search but take care of types not searchable settings.
Endpoint that returns sitemap settings for anonymous users (that can't access registry entries).
Returns a data structure like this:
{ 'depth': 3, }
We customized @search endpoint for that bug: plone/plone.restapi#1066
If we are searching only for Event types, do a special search using get_events method to search events: that method handle recurrences and avoid wrong results.
Otherwise, perform a default querystring-search.
There is a custom viewlet that add a <meta> tag in the <head> section to prevent bot indexing.
For reference: https://developers.google.com/search/docs/advanced/crawling/block-indexing?visit_id=637489966041845317-1328107746&rd=1
We copied the patch from kitconcept.volto for special characters in keywords vocabulary (used for example in Subjects field).
See plone/Products.PortalTransforms#43
There is a monkeypatch to apply that changes.
There is a monkeypatch for Events recurrences that fix their duration.
If it works well, we can make a pr in p.a.event.
Disallow paste items that are not allowed into destination folder.
There are some dependencies fixed in setup.py file. When Plone 5.2 will be released, we can remove these:
- waitress >= 1.4.3
- plone.app.contenttypes >= 2.1.6
- plone.rest >= 1.6.1
- plone.dexterity >= 2.9.5
- Products.ZCatalog >= 5.1
- plone.namedfile >= 5.4.0
- Products.PloneHotfix20200121 >= 1.0
There is one new criteria for Collections and Listing blocks that search on exclude_from_nav index.
Install redturtle.volto by adding it to your buildout:
[buildout] ... eggs = redturtle.volto
and then running bin/buildout
- Issue Tracker: https://github.com/RedTurtle/redturtle.volto/issues
- Source Code: https://github.com/RedTurtle/redturtle.volto
The project is licensed under the GPLv2.
This product was developed by RedTurtle Technology team.