Metadata-Version: 2.1
Name: redturtle.volto
Version: 3.7.0
Summary: Helper package to setup a RedTurtle's Plone site ready to work with Volto.
Home-page: https://github.com/collective/redturtle.volto
Author: RedTurtle Technology
Author-email: sviluppo@redturtle.it
License: GPL version 2
Project-URL: PyPI, https://pypi.python.org/pypi/redturtle.volto
Project-URL: Source, https://github.com/RedTurtle/redturtle.volto
Project-URL: Tracker, https://github.com/RedTurtle/redturtle.volto/issues
Description: .. This README is meant for consumption by humans and pypi. Pypi can render rst files so please do not use Sphinx features.
           If you want to learn more about writing documentation, please check out: http://docs.plone.org/about/documentation_styleguide.html
           This text does not appear on pypi or github. It is a comment.
        
        ===============
        redturtle.volto
        ===============
        
        This is an helper package that setup a RedTurtle's Plone site ready to work with Volto.
        
        
        |python| |version| |ci|
        
        .. |python| image:: https://img.shields.io/pypi/pyversions/redturtle.volto.svg
          :target: https://pypi.python.org/pypi/redturtle.volto/
        
        .. |version| image:: http://img.shields.io/pypi/v/redturtle.volto.svg
          :target: https://pypi.python.org/pypi/redturtle.volto
        
        .. |ci| image:: https://github.com/RedTurtle/redturtle.volto/actions/workflows/tests.yml/badge.svg
          :target: https://github.com/RedTurtle/redturtle.volto/actions
        
        Features
        ========
        
        Content-types
        -------------
        
        - 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)
        
        Blocks
        ------
        
        **volto.blocks** behavior is enabled by default for these content-types:
        
        - Document
        - News Item
        - Event
        
        There are also some adapters registered for **IBlockSearchableText** to index some common blocks.
        
        Links
        -----
        
        There is a custom adapter for TextLine field that return the proper widget for **remoteUrl**.
        
        Custom blocks transformers
        --------------------------
        
        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.
        
        
        @context-navigation endpoint
        ----------------------------
        
        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',
                    },
                ],
            }
        
        @site-search endpoint
        ---------------------
        
        This endpoint works exactly like **@search** but take care of types not searchable settings.
        
        
        @sitemap-settings
        -----------------
        
        Endpoint that returns sitemap settings for anonymous users (that can't access registry entries).
        
        Returns a data structure like this::
        
            {
                'depth': 3,
            }
        
        
        @search endpoint
        ----------------
        
        We customized @search endpoint for that bug: https://github.com/plone/plone.restapi/pull/1066
        
        @querystring-search endpoint customization
        ------------------------------------------
        
        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.
        
        
        Disallow bot indexing
        ---------------------
        
        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
        
        Patches
        =======
        
        Products.PortalTransforms
        -------------------------
        
        See https://github.com/plone/Products.PortalTransforms/pull/43
        
        There is a monkeypatch to apply that changes.
        
        Events recurrence
        -----------------
        
        There is a monkeypatch for Events recurrences that fix their duration.
        
        If it works well, we can make a pr in p.a.event.
        
        
        Respect locally allowed types on paste
        --------------------------------------
        
        Disallow paste items that are not allowed into destination folder.
        
        
        DateTime field serializer/deserializer
        --------------------------------------
        
        Customized these adapters to correctly set effective and expires dates.
        
        Without this change, these dates will be stored with UTC hour and not with the current timezone's hour
        because behavior's `setter/getter <https://github.com/plone/plone.app.dexterity/blob/master/plone/app/dexterity/behaviors/metadata.py#L278>`_ strip timezone from the value.
        
        With this patch we will send to the setter the date with already localized hour, so even if the setter strip timezone info, we are going to save the correct date.
        
        
        New Criteria
        ============
        
        There is one new criteria for Collections and Listing blocks that search on **exclude_from_nav** index.
        
        
        Caching controlpanel
        ====================
        
        After installation the caching control panel is populated with custom policies while caching is globally enabled by default. Please, set the caching proxies properly.
         
        
        @vocabularies permissions
        =========================
        
        According to new plone.restapi implementation, @vocabularies endpoint will check some permissions to make a vocabulary available or not.
        
        We patched PERMISSIONS variable in __init__ file to allow Keywords vocabulary to be available for anonymous users.
        
        Reference: https://github.com/plone/plone.restapi/pull/1258#issuecomment-980628982
        
        RamCache in tersecaching
        ------------------------
        
        We disabled ramcache for tersecaching (plone.app.caching.terseCaching.plone.content.dynamic.ramCache) because
        it seems not correctly purged when there are more instances and a content has been modified.
        
        We need to check why it's not purged and fix it.
        
        Installation
        ============
        
        Install redturtle.volto by adding it to your buildout::
        
            [buildout]
        
            ...
        
            eggs =
                redturtle.volto
        
        
        and then running ``bin/buildout``
        
        
        Contribute
        ==========
        
        - Issue Tracker: https://github.com/RedTurtle/redturtle.volto/issues
        - Source Code: https://github.com/RedTurtle/redturtle.volto
        
        
        License
        =======
        
        The project is licensed under the GPLv2.
        
        Authors
        =======
        
        This product was developed by **RedTurtle Technology** team.
        
        .. image:: https://avatars1.githubusercontent.com/u/1087171?s=100&v=4
           :alt: RedTurtle Technology Site
           :target: http://www.redturtle.it/
        
        
        Contributors
        ============
        
        - RedTurtle Technology, sviluppo@redturtle.it
        
        
        Changelog
        =========
        
        3.7.0 (2021-12-01)
        ------------------
        
        - Remove enabled_vocabularies implementation because in recent plone.restapi (>8.15.2) there is a standard way.
          [cekk]
        
        3.6.2 (2021-11-09)
        ------------------
        
        - Bypass plone.volto serialization for blocks right now (in monkeypatch.py).
          [cekk]
        
        
        3.6.1 (2021-11-05)
        ------------------
        
        - Fix upgrade-step for plone.volto.
          [cekk]
        
        
        3.6.0 (2021-10-28)
        ------------------
        
        - Add plone.volto dependency
          [cekk]
        
        
        3.5.0 (2021-10-11)
        ------------------
        
        - p.a.caching rules for rest api services
          [mamico]
        
        3.4.2 (2021-10-01)
        ------------------
        
        - Fix tests.
          [cekk]
        
        3.4.1 (2021-09-30)
        ------------------
        
        - Disable ramcache from tersecaching (to fix the problem with cache invalidation for balanced instances..see README).
          [cekk]
        
        
        3.4.0 (2021-09-29)
        ------------------
        
        - Better handle events searches.
          [cekk]
        
        
        3.3.0 (2021-09-21)
        ------------------
        
        - Index text from some common blocks.
          [cekk]
        - Fix date timezones in fields.
          [cekk]
        
        
        3.2.2 (2021-08-24)
        ------------------
        
        - Customize serializer/deserializer for DateTime fields to correctly set effective and expires with right timezone delta.
          [cekk]
        - Enable Anonymous to access Plone vocabularies with restapi. **@vocabularies** endpoint has been customized to limit the vocabularies that anonymous can actually access.
          [cekk]
        
        3.2.1 (2021-08-04)
        ------------------
        
        - Remove customized @workflow endpoint. Is now merged in plone.restapi >= 8.7.1.
          [cekk]
        
        3.2.0 (2021-08-02)
        ------------------
        
        - Customize @workflow endpoint for plone.restapi #1184 and #1190 pr.
          [cekk]
        - Remove default cache proxy address on install.
          [cekk]
        
        
        3.1.3 (2021-06-30)
        ------------------
        
        - Fix b_size conversion in upgrade-step for Volto 13.
          [cekk]
        
        3.1.2 (2021-06-18)
        ------------------
        
        - Fix also linkMore in volto13 migration.
          [cekk]
        
        
        3.1.1 (2021-06-17)
        ------------------
        
        - Handle contents with old Richtext values in volto13 migration.
          [cekk]
        
        
        
        3.1.0 (2021-06-17)
        ------------------
        
        - [BREAKING CHANGE] Volto 13 support. The upgrade-step will update listing blocks data.
          [cekk]
        
        
        3.0.1 (2021-06-08)
        ------------------
        
        - review caching profile
          [mamico]
        
        3.0.0 (2021-05-28)
        ------------------
        
        - Provided basic setup for caching policies in control panel.
          [daniele]
        
        2.1.2 (2021-05-11)
        ------------------
        
        - Additional fix in start and end values handling in querystring-search.
          [cekk]
        
        
        2.1.1 (2021-05-11)
        ------------------
        
        - Fix start and end values handling in querystring-search.
          [cekk]
        
        
        2.1.0 (2021-05-05)
        ------------------
        
        - Compatibility with changes in plone.restapi 7.3.2.
          [cekk]
        
        
        2.0.2 (2021-05-05)
        ------------------
        
        - Handle also limit in querystringsearch patch.
          [cekk]
        
        2.0.1 (2021-05-05)
        ------------------
        
        - Handle sort order in querystringsearch patch.
          [cekk]
        
        
        2.0.0 (2021-04-30)
        ------------------
        
        - Remove @events-search endpoint and customize @querystring-search one to handle Events like @events-search.
          [cekk]
        
        
        1.3.0 (2021-04-19)
        ------------------
        
        - Monkeypatch to respect locally allowed types also on content paste.
          [cekk]
        
        
        1.2.4 (2021-04-15)
        ------------------
        
        - Customize translation for remoteUrl field description only for restapi call.
          [cekk]
        
        
        1.2.3 (2021-04-01)
        ------------------
        
        - added block type 'searchEvents' to EXCLUDE_TYPES [giuliaghisini]
        
        
        1.2.2 (2021-03-25)
        ------------------
        
        - Added upgrade step to import p.a.c. profile.
          [daniele]
        
        1.2.1 (2021-03-17)
        ------------------
        
        - Monkeypatch for Events recurrences.
          [cekk]
        - Fix profile name in upgrade-steps.
          [cekk]
        
        1.2.0 (2021-03-02)
        ------------------
        
        - New endpoint to search Events: @events-search.
        - Better handle serialization for recursion problems: now only serialize with ISerializeToJsonSummary
          if the referred item is the current context.
          [cekk]
        
        
        1.1.0 (2021-03-01)
        ------------------
        
        - Expand uids with ISerializeToJsonSummary and not with fullobject to gain space and
          avoid maximum recursion depth it a block has an internal reference to the current context.
          [cekk]
        
        
        1.0.9 (2021-02-23)
        ------------------
        
        - Handle unauthorized in blocks serializer.
          [cekk]
        
        
        1.0.8 (2021-02-19)
        ------------------
        
        - Fix typo.
          [cekk]
        
        
        1.0.7 (2021-02-19)
        ------------------
        
        - Do not run dependencies when upgrading plone.app.registry.
          [cekk]
        
        1.0.6 (2021-02-15)
        ------------------
        
        - Disallow Plone site indexing: add noindex in <head>
          [cekk]
        - Revert robots.txt customization because is in conflict to noindex directive.
          [cekk]
        
        1.0.5 (2021-02-11)
        ------------------
        
        - Custom @search endpoint to fix bug with Access inactive portal content permission
          (https://github.com/plone/plone.restapi/pull/1066)
          [cekk]
        
        
        1.0.4 (2021-02-10)
        ------------------
        
        - Customize robots.txt to disallow /api entry.
          [cekk]
        
        1.0.3 (2021-02-09)
        ------------------
        
        - Patched Products.PortalTransforms
          (https://github.com/plone/Products.PortalTransforms/pull/43).
          [cekk]
        
        
        
        1.0.2 (2021-02-09)
        ------------------
        
        - Re-add remoteUrl field serializer.
          [cekk]
        
        
        1.0.1 (2021-02-08)
        ------------------
        
        - [new] Add here from modena the RSS.pt template override
          [lucabel]
        - Remove text block serializer that is already merged into plone.restapi.
          [cekk]
        - Register generic serializer also for site root.
          [cekk]
        
        1.0.0 (2020-12-07)
        ------------------
        
        - Add exclude_from_nav as Collection criteria (used also in Volto's listing blocks).
          [cekk]
        - Add custom TextLine adapter to return the proper widget for **remoteUrl** field.
          [cekk]
        
        0.1.6 (2020-11-25)
        ------------------
        
        - Allow Products.PloneHotfix20200121 versions greater than 1.0.
          [pnicolli]
        - Fix generic serializer/deserializer.
          [cekk]
        - Skip also "calendar" when check for url deserializing blocks
          [lucabel]
        - Fix document template.
          [cekk]
        
        0.1.5 (2020-10-20)
        ------------------
        
        - Remove resolveuid serializer/deserializer for blocks: now they are integrated in plone.restapi.
          [cekk]
        - Add custom transformers for blocks to handle link in generic blocks.
          [cekk]
        - Enable Editor and Contributor to access Plone vocabularies with restapi.
          [cekk]
        - Add @sitemap-settings endpoint.
          [cekk]
        
        0.1.4 (2020-07-16)
        ------------------
        
        - Add keywords vocabulary patch.
          [cekk]
        
        
        0.1.3 (2020-06-22)
        ------------------
        
        - Added default homepages
          [nzambello]
        - Added blocks behavior to LRF
          [nzambello]
        - Made editable and viewable Plone Site with blocks behavior
          [nzambello]
        - Remove richtext behavior from News Items, Events and Documents.
          [cekk]
        - News Item and Event are folderish and can only contain Links, Images and Files.
          [cekk]
        
        0.1.2 (2020-05-25)
        ------------------
        
        - Revert to Event and News Item default behaviors.
          [cekk]
        
        
        0.1.1 (2020-05-22)
        ------------------
        
        - Install also collective.volto.cookieconsent.
          [cekk]
        
        
        0.1.0 (2020-05-22)
        ------------------
        
        - Initial release.
          [cekk]
        
Keywords: Python Plone
Platform: UNKNOWN
Classifier: Environment :: Web Environment
Classifier: Framework :: Plone
Classifier: Framework :: Plone :: Addon
Classifier: Framework :: Plone :: 5.2
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.7
Classifier: Operating System :: OS Independent
Classifier: License :: OSI Approved :: GNU General Public License v2 (GPLv2)
Requires-Python: >=3.7
Provides-Extra: test
