{ "info": { "author": "Plone Foundation", "author_email": "plone-developers@lists.sourceforge.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 6 - Mature", "Framework :: Plone", "Framework :: Plone :: 5.2", "Framework :: Plone :: Core", "License :: OSI Approved :: GNU General Public License (GPL)", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8" ], "description": ".. contents::\n\n.. image:: https://api.travis-ci.org/plone/plone.app.contenttypes.png?branch=master\n :target: http://travis-ci.org/plone/plone.app.contenttypes\n\n.. image:: https://img.shields.io/pypi/dm/plone.app.contenttypes.svg\n :target: https://crate.io/packages/plone.app.contenttypes\n\n.. image:: https://img.shields.io/pypi/v/plone.app.contenttypes.svg\n :target: https://crate.io/packages/plone.app.contenttypes\n\n.. image:: https://img.shields.io/coveralls/plone/plone.app.contenttypes/master.svg\n :target: https://coveralls.io/github/plone/plone.app.contenttypes?branch=master\n\n\nplone.app.contenttypes documentation\n====================================\n\n\nIntroduction\n------------\n\nplone.app.contenttypes provides default content types for Plone based on Dexterity. It replaces ``Products.ATContentTypes`` and provides the default-types in Plone 5. It can be used as an add-on in Plone 4.x.\n\nIt contains the following types:\n\n* Collection\n* Document\n* Event\n* File\n* Folder\n* Image\n* Link\n* News Item\n\nThe main difference from a users perspective is that these types are editable and extendable through-the-web. This means you can add or remove fields and behaviors using the control-panel \"Dexterity Content Types\" (``/@@dexterity-types``).\n\n**Warning: Using plone.app.contenttypes on a site with existing Archetypes-based content requires migrating the sites content. Please see the chapter \"Migration\".**\n\n\nCompatibility\n-------------\n\nThe versions 1.2.x (build from the master-branch) are used in Plone 5.\n\nVersion 1.1b5 and later are tested with Plone 4.3.x. The versions build from the branch 1.1.x will stay compatible with Plone 4.3.x.\n\nFor support of Plone 4.1 and 4.2 please use versions 1.0.x. Please note that they do not provide the full functionality.\n\n\nInstallation\n------------\n\nThis package is included in Plone 5 and does not need installation.\n\nTo use plone.app.contenttypes in Plone 4.x add this line in the eggs section of your ``buildout.cfg``\n\n.. code:: ini\n\n eggs =\n ...\n plone.app.contenttypes\n\nIf you have a Plone site with mixed Archetypes and Dexterity content use the extra requirement ``atrefs``.\n\n.. code:: ini\n\n eggs =\n ...\n plone.app.contenttypes [atrefs]\n\nThis will also install the package `plone.app.referenceablebehavior `_ that allows you to reference dexterity-based content from archetypes-based content. You will have to enable the behavior ``plone.app.referenceablebehavior.referenceable.IReferenceable`` for all types that need to be referenced by Archetypes-content.\n\n\nWhat happens to existing content?\n---------------------------------\n\nIf you install plone.app.contenttypes in a existing site all Archetypes-based content of the default types still exists and can be viewed but can't be edited. On installation plone.app.contenttypes removes the type-definitions for the old default-types like this:\n\n.. code:: xml\n\n \n\nThey are then replaced by new Definitions:\n\n.. code:: xml\n\n \n\nTo make the existing content editable again you need to migrate it to Dexterity (please see the section on migration) or uninstall plone.app.contenttypes (see the section on uninstalling).\n\nArchetypes-based content provided by add-ons (e.g. Products.PloneFormGen) will still work since only the default-types are replaced.\n\nIf you install plone.app.contenttypes on a fresh site (i.e. when no content has been edited or added) the usual default-content (Events, News, Members...) will be created as dexterity-content.\n\n\nUninstalling\n------------\n\nUninstalling the default-types is not officially supported in Plone 5. If you really want to switch back to Archetypes-based types you have to to the following:\n\n* Go to the ZMI\n* In portal_types delete the default-types\n* In portal_setup navigate to the tab 'import', select the profile 'Archetypes Content Types for Plone' and install all steps including dependencies.\n\nAny content you created based on plone.app.contenttypes will no longer be editable until you reinstall plone.app.contenttypes.\n\n\nDependencies\n------------\n\n* ``plone.app.dexterity >= 2.0.7``. Dexterity is shipped with Plone 4.3.x. Version pins for Dexterity are included in Plone 4.2.x. For Plone 4.1.x you need to pin the right version for Dexterity in your buildout. See `Installing Dexterity on older versions of Plone `_.\n\n* ``plone.dexterity >= 2.2.1``. Olders version of plone.dexterity break the rss-views because plone.app.contenttypes uses behaviors for the richtext-fields.\n\n* ``plone.app.event >= 1.1.4``. This provides the behaviors used for the event-type.\n\n* ``plone.app.portlets >= 2.5a1``. In older version the event-portlet will not work with the new event-type.\n\nThese are the version-pins for Plone 4.3.4:\n\n.. code:: ini\n\n [buildout]\n versions = versions\n\n [versions]\n plone.app.event = 1.1.4\n\nPlone 4.3.3 also needs ``plone.app.portlets = 2.5.2``\n\nPlone-versions before 4.3.3 need to pin more packages:\n\n.. code:: ini\n\n [buildout]\n versions = versions\n\n [versions]\n plone.dexterity = 2.2.1\n plone.app.dexterity = 2.0.11\n plone.schemaeditor = 1.3.5\n plone.app.event = 1.1b1\n plone.app.portlets = 2.5.1\n\nFor migrations to work you need at least ``Products.contentmigration = 2.1.9`` and ``plone.app.intid`` (part of Plone since Plone 4.1.0).\n\n\nMigration\n---------\n\n\nMigrating the default-types\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nTo migrate your existing content from Archetypes to Dexterity use the form at ``/@@atct_migrator``.\n\n\nMigrating Archetypes-based default-types content to plone.app.contenttypes\n``````````````````````````````````````````````````````````````````````````\n\n`plone.app.contenttypes `_ can migrate the following archetypes-based default types:\n\n* Document\n* Event\n* File\n* Folder\n* Image\n* Link\n* News Item\n* Collection\n* Topic (old Collections)\n\nThe following non-default types will also be migrated:\n\n* The AT-based Event-type provided by plone.app.event\n* The DX-based Event-type provided by plone.app.event\n* The Event-type provided by plone.app.contenttypes until version 1.0\n* News Items with blobs (provided by https://github.com/plone/plone.app.blob/pull/2)\n* Files and Images without blobs\n\nThe migration tries to keep most features (including portlets, comments, contentrules, local roles and local workflows).\n\n**Warning:** Versions of content are not migrated. During migration you will lose all old revisions.\n\n\nMigrating only certain types\n````````````````````````````\n\nThere is also a view ``/@@pac_installer`` that allows you to install plone.app.contenttypes without replacing those archetypes-types with the dexterity-types of which there are existing objects in the site. Afterwards it redirects to the migration-form and only the types that you chose to migrate are installed. This allows you to keep certain types as archetypes while migrating others to dexterity (for example if you did heavy customizations of these types and do not have the time to reimplement these features in dexterity).\n\n\nMigrating Topics\n````````````````\n\nTopics are migrated to Collections. However, the old type Topic had support for Subtopics, a feature that does not exit in Collections. Subtopics are nested Topics that inherited search terms from their parents. Since Collections are not folderish (i.e. they cannot contain content) Subtopics cannot be migrated unless Collections are made folderish (i.e. that they can contain content). Also the feature that search terms can be inherited from parents does not exist for Collections.\n\nThe migration-form will warn you if you have subtopics in your site and your Collections are not folderish. You then have several options:\n\n1. You can delete all Subtopics before migrating and achieve their functionality in another way (e.g. using eea.facetednavigation).\n2. You can choose to not migrate Topics by not selecting them. This will keep your old Topics functional. You can still add new Collections.\n3. You can modify Collections to be folderish or create your own folderish content-type. That type would need a base-class that inherits from ``plone.dexterity.content.Container`` instead of ``plone.dexterity.content.Item``:\n\n .. code-block:: python\n\n from plone.app.contenttypes.behaviors.collection import ICollection\n from plone.dexterity.content import Container\n from zope.interface import implementer\n\n @implementer(ICollection)\n class FolderishCollection(Container):\n pass\n\n You can either use a new Collection type or simply modify the default type to use this new base-class by overriding the klass-attribute of the default Collection. To override add a ``Collection.xml`` in your own package:\n\n .. code-block:: xml\n\n \n \n my.package.content.FolderishCollection\n \n\n If you really need it you could add the functionality to inherit search terms to your own folderish Collections by extending the behavior like in the example at https://github.com/plone/plone.app.contenttypes/commit/366cc1a911c81954645ec6aabce925df4a297c63\n\n\nMigrating content that is translated with LinguaPlone\n`````````````````````````````````````````````````````\n\nSince LinguaPlone does not support Dexterity you need to migrate from LinguaPlone to plone.app.multilingual (http://pypi.python.org/pypi/plone.app.multilingual). The migration from Products.LinguaPlone to plone.app.multilingual should happen **before** the migration from Archetypes to plone.app.contenttypes. For details on the migration see--\nhttp://pypi.python.org/pypi/plone.app.multilingual#linguaplone-migration\n\n\nMigrating default-content that was extended with archetypes.schemaextender\n``````````````````````````````````````````````````````````````````````````\n\n\nThe migration-form warns you if any of your old types were extended with additional fields using `archetypes.schemaextender `_. The data contained in these fields will be lost during migration (with the exception of images added with collective.contentleadimage).\n\nTo keep the data you would need to write a custom migration for your types dexterity-behaviors for the functionality provided by the schemaextenders. This is an advanced development task and beyond the scope of this documentation.\n\n\nMigrating images created with collective.contentleadimage\n`````````````````````````````````````````````````````````\n\n`collective.contentleadimage `_ was a popular addon that allows you to add images to any content in your site by extending the default types. To make sure these images are kept during migration you have to enable the behavior \"Lead Image\" on all those types where you want to migrate images added using collective.contentleadimage.\n\nThe old types that use leadimages are listed in the navigation-form with the comment *\"extended fields: 'leadImage', 'leadImage_caption'\"*. The migration-form informs you which new types have the behavior enabled and which do not. Depending on the way you installed plone.app.contenttypes you might have to first install these types by (re-)installing plone.app.contenttypes.\n\n\nMigrating in code (e.g. in a upgrade-step)\n``````````````````````````````````````````\n\nYou can run the migration in your own code by using the view `migrate_from_atct`. Here is an example of an upgrade-step that migrates all default content-types.\n\n.. code-block:: python\n\n def migrate_to_pac(setup):\n portal = api.portal.get()\n request = getRequest()\n pac_migration = api.content.get_view('migrate_from_atct', portal, request)\n pac_migration(\n migrate=True,\n content_types='all',\n migrate_schemaextended_content=True,\n reindex_catalog=False)\n\nWith `content_types` you can also pass a list of types to be migrated. Make sure to use the key from the dictionary `plone.app.contenttypes.migration.vocabularies.ATCT_LIST` to identify the types.\n\n\nMigrating custom content\n^^^^^^^^^^^^^^^^^^^^^^^^\n\nDuring migrations of the default types any custom content-types will not be migrated and will continue to work as expected.\n\n\nUsing the migration-form to migrate custom content\n``````````````````````````````````````````````````\n\nTo help you migrating these types to Dexterity plone.app.contenttypes contains a migration form (``/@@custom_migration``) that allows you to migrate any (custom or default) Archetypes-type to any (custom or default) Dexterity-type. The only requirement is that the target-type (the Dexterity-type you want to migrate to) has to exist and that the class of the old type is still present. It makes no difference if the type you are migrating from is still registered in portal_types or is already removed or replaced by a dexterity-version using the same name.\n\nIn the form ``/@@custom_migration`` you can select a Dexterity-type for any Archetypes-types that exists in the portal. You can then map the source-types fields to the targets fields. You can also choose to ignore fields. You have to take care that the values can be migrated (since there is no validation for that), e.g. it would make no sense to migrate a ImageField to a TextField. There are build-in methods for most field-types, custom or rarely used fields might not migrate properly (you can create a issue if you miss a migration that is not yet supported).\n\nAfter you map the fields you can test the configuration. During a test one item will be test-migrated and Plone checks if the migrated item will be accessible without throwing a errors. After the test any changes will be rolled back.\n\nMigrating custom types in your own code\n```````````````````````````````````````\n\nIt is recommended that you reuse the migration-code provided by plone.app.contenttypes in ``plone.app.contenttypes.migration.migration.migrateCustomAT`` for custom migrations.\n\nTo do this you have to simply pass a mapping of source- to target-fields to a migration-method for each type.\n\n.. code-block:: python\n\n\n from plone.app.contenttypes.migration.migration import migrateCustomAT\n\n def my_custom_migration():\n fields_mapping = (\n {'AT_field_name': 'some_field',\n 'DX_field_name': 'description',\n },\n\n # Migrate AT imagefield to DX imagefield using the mapping in\n # plone.app.contenttypes.migration.field_migrators.FIELDS_MAPPING\n {'AT_field_name': 'some_atimage',\n 'DX_field_name': 'some_dximage',\n 'DX_field_type': 'NamedBlobImage',\n },\n )\n migrateCustomAT(\n fields_mapping,\n src_type='SomeATType',\n dst_type='SomeDXType')\n\nA field-dict without a key ``DX_field_type`` from one of the migrators in ``plone.app.contenttypes.migration.field_migrators.FIELDS_MAPPING`` will always use ``plone.app.contenttypes.migration.field_migrators.migrate_simplefield`` as its migration-method. That can migrate most field-types where the value does not have to change (e.g. strings, lists, tuples, dicts etc.).\n\n``plone.app.contenttypes.migration.field_migrators`` has special field migrators for the following field-types: ``RichText``, ``NamedBlobFile``, ``NamedBlobImage``, ``Datetime``, ``Date``. They transform values from the Archetypes-version of such fields to their Dexterity counterparts.\n\n\nCustom field-migrators\n``````````````````````\n\nIf you use rare or custom fields or want to apply special transforms to your data while migrating you can pass custom methods as ``field_migrator`` with the fields_mapping. This way you can migrate fields that are usually not migrateable.\n\nHere is an example where this method is used to migrate a Richtext-Field into a Tuple-Field by passing the custom field-migrator ``some_field_migrator``. In such a custom migrator you can do just about anything you wish.\n\n\n.. code-block:: python\n\n from plone.app.contenttypes.migration.migration import migrateCustomAT\n\n\n def some_field_migrator(src_obj, dst_obj, src_fieldname, dst_fieldname):\n \"\"\"A simple example that transforms pipe-delimited richtext to a tuple.\n \"\"\"\n field = src_obj.getField(src_fieldname)\n at_value = field.get(src_obj)\n at_value = at_value.replace('

', '').replace('

', '')\n dx_value = [safe_unicode(i) for i in at_value.split('|')]\n setattr(dst_obj, dst_fieldname, tuple(dx_value))\n\n\n def my_custom_migration():\n \"\"\"\n \"\"\"\n fields_mapping = (\n # Migrate using our custom migrator\n {'AT_field_name': 'some_richtext_field',\n 'DX_field_name': 'some_tuple_field',\n 'field_migrator': some_field_migrator},\n )\n migrateCustomAT(\n fields_mapping,\n src_type='SomeATType',\n dst_type='SomeDXType')\n\nAlternatively you could also extends the mapping from ``plone.app.contenttypes.migration.field_migrators.FIELDS_MAPPING`` to add new or replace existing migrators for specific field-types.\n\n\nMigrating from old versions of plone.app.contenttypes\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nBefore version 1.0a2 the content-items did not implement marker-interfaces. They will break in newer versions since the views are now registered for these interfaces (e.g. ``plone.app.contenttypes.interfaces.IDocument``). To fix this you can call the view ``/@@fix_base_classes`` on your site-root.\n\nSince plone.app.contenttypes 1.1a1, the Collection type uses the new Collection behavior and the Event type utilizes behaviors from `plone.app.event `_. In order to upgrade:\n\n1. First run the default profile (``plone.app.contenttypes:default``) or reinstall plone.app.contenttypes\n2. Then run the upgrade steps.\n\n\n\nWidgets\n-------\n\nWhen used in Plone 4.x plone.app.contenttypes uses the default z3c.form widgets. All widgets work as they used to with Archetypes except for the keywords-widget for which a simple linesfield is used. Replacing that with a nicer implementation is explained below.\n\nIt is also possible to use ``plone.app.widgets`` to switch to the widgets that are used in Plone 5.\n\n\nHow to override widgets\n^^^^^^^^^^^^^^^^^^^^^^^^\n\nTo override the default keywords-widgets with a nicer widget you can use the package `collective.z3cform.widgets `_.\n\nAdd ``collective.z3cform.widgets`` to your ``buildout`` and in your own package register the override in your ``configure.zcml``:\n\n.. code:: xml\n\n \n\nThen add a file ``subjects.py``\n\n.. code:: python\n\n # -*- coding: UTF-8 -*-\n from collective.z3cform.widgets.token_input_widget import TokenInputFieldWidget\n from plone.app.dexterity.behaviors.metadata import ICategorization\n from plone.app.z3cform.interfaces import IPloneFormLayer\n from z3c.form.interfaces import IFieldWidget\n from z3c.form.util import getSpecification\n from z3c.form.widget import FieldWidget\n from zope.component import adapter\n from zope.interface import implementer\n\n\n @adapter(getSpecification(ICategorization['subjects']), IPloneFormLayer)\n @implementer(IFieldWidget)\n def SubjectsFieldWidget(field, request):\n widget = FieldWidget(field, TokenInputFieldWidget(field, request))\n return widget\n\nOnce you install ``collective.z3cform.widgets`` in the quickinstaller, the new widget will then be used for all types.\n\n\nInformation for Addon-Developers\n--------------------------------\n\nDesign decisions\n^^^^^^^^^^^^^^^^\n\nSchemata that are defined in XML-files using ``plone.supermodel`` allow editing those types' schemata through the web. \nThis is the case for the default File, Image and Link content types. \nSchemata coming from behaviors, on the other hand, are not editable through the web.\nThe Document, News Item, Folder and Event default types, for example, have no schemata of their own at all, all their fields are provided by behaviors.\n\n\nInstallation as a dependency from another product\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nIf you want to add plone.app.contenttypes as a dependency from another products use the profile ``plone-content`` in your ``metadata.xml`` to have Plone populate a new site with DX-based default-content.\n\n.. code:: xml\n\n \n 1\n \n profile-plone.app.contenttypes:plone-content\n \n \n\nIf you use the profile ``default`` then the default-content in new sites will still be Archetypes-based. You'll then have to migrate that content using the migration-form ``@@atct_migrator`` or delete it by hand.\n\n\nUsing folderish types\n^^^^^^^^^^^^^^^^^^^^^\n\nAt some point all default types will probably be folderish. If you want the default types to be folderish before that happens please look at https://pypi.python.org/pypi/collective.folderishtypes.\n\n\nChanging the base class for existing objects\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nIf you changed the base-class of existing types (e.g. because you changed them to be folderish) you also need to upgrade the base-class of existing objects. You can use the following form for this: ``@@base_class_migrator_form``.\n\nThis form lets you select classes to be updated and shows the number of objects for each class. This form can be used to change the base-class of any dexterity-types instances. The migration will also transform itemish content to folderish content if the new class is folderish. You might want to use the method ``plone.app.contenttypes.migration.dxmigration.migrate_base_class_to_new_class`` in your own upgrade-steps.\n\n\nExtending the types\n^^^^^^^^^^^^^^^^^^^\n\nYou have several options:\n\n1. Extend the types through-the-web by adding new fields or behaviors in the types-controlpanel ``/@@dexterity-types``.\n\n2. Extend the types with a custom type-profile that extends the existing profile with behaviors, or fields.\n\n You will first have to add the type to your ``[yourpackage]/profiles/default/types.xml``.\n\n .. code:: xml\n\n \n \n \n \n\n Here is an example that enables the image-behavior for Folders in ``[yourpackage]/profiles/default/types/Folder.xml``:\n\n .. code:: xml\n\n \n \n \n \n \n \n\n By adding a schema-definition to the profile you can add fields.\n\n .. code:: xml\n\n \n \n your.package.content:folder.xml\n \n \n \n \n\n Put the schema-xml in ``your/package/content/folder.xml`` (the folder ``content`` needs a ``__init__.py``)\n\n .. code:: xml\n\n \n \n \n \n False\n Teaser title\n \n \n \n False\n Teaser subtitle\n \n \n \n False\n Teaser details\n \n \n \n\nYou could alternatively override the peroperty ``model_file`` of the type-definition with a empty string and use the property ``schema`` to provide your custom python-schema.\n\nFor more complex features you should always consider create custom behaviors and/or write your own content-types since that will most likely give you more flexibility and less problem when you want to upgrade to a newer version in the future.\n\nFor more information on custom dexterity-types and custom behaviors please read the `dexterity documentation `_.\n\n\nDifferences to Products.ATContentTypes\n--------------------------------------\n\n- The image of the News Item is not a field on the contenttype but a behavior that can add a image to any contenttypes (similar to http://pypi.python.org/pypi/collective.contentleadimage)\n- All richtext-fields are also provided by a reuseable behavior.\n- The functionality to transform (rotate and flip) images has been removed.\n- There is no more field ``Location``. If you need georeferenceable consider using ``collective.geo.behaviour``\n- The link on the image of the newsitem triggers an overlay\n- The link-type now allows the of the variables ``${navigation_root_url}`` and ``${portal_url}`` to construct relative urls.\n- The ``getQuery()`` function now returns a list of dict instead of a list of CatalogContentListingObject;\n use of ``getRawQuery()`` is deprecated.\n- The views for Folders and Collections changed their names and now share a common implementation (since version 1.2a8):\n\n - ``folder_listing_view`` (Folders) and ``collection_view`` (Collections) -> ``listing_view`` (Folders and Collections)\n - ``folder_summary_view`` (Folders) and ``summary_view`` (Collections) -> ``summary_view`` (Folders and Collections)\n - ``folder_tabular_view`` (Folders) and ``tabular_view`` (Collections) -> ``tabular_view`` (Folders and Collections)\n - ``folder_full_view`` (Folders) and ``all_content`` (Collections) -> ``full_view`` (Folders and Collections)\n - ``atct_album_view`` (Folders) and ``thumbnail_view`` (Collections) -> ``album_view`` (Folders and Collections)\n\n\n\nToubleshooting\n--------------\n\nPlease report issues in the bugtracker at https://github.com/plone/plone.app.contenttypes/issues.\n\nValueError on installing\n^^^^^^^^^^^^^^^^^^^^^^^^^\n\nWhen you try to install plone.app.contenttypes < 1.1a1 in a existing site you might get the following error::\n\n (...)\n Module Products.GenericSetup.utils, line 509, in _importBody\n Module Products.CMFCore.exportimport.typeinfo, line 60, in _importNode\n Module Products.GenericSetup.utils, line 730, in _initProperties\n ValueError: undefined property 'schema'\n\nBefore installing plone.app.contenttypes you have to reinstall plone.app.collection to update collections to the version that uses Dexterity.\n\n\nBranches\n--------\n\nThe master-branch supports Plone 5 only. From this 1.2.x-releases will be cut.\n\nThe 1.1.x-branch supports Plone 4.3.x. From this 1.1.x-releases will be cut.\n\n\nLicense\n-------\n\nGNU General Public License, version 2\n\n\nContributors\n------------\n\n* Philip Bauer \n* Michael Mulich \n* Timo Stollenwerk \n* Peter Holzer \n* Patrick Gerken \n* Steffen Lindner \n* Daniel Widerin \n* Jens Klein \n* Joscha Krutzki \n* Mathias Leimgruber \n* Matthias Broquet \n* Wolfgang Thomas \n* Bo Simonsen \n* Andrew Mleczko \n* Roel Bruggink \n* Carsten Senger \n* Rafael Oliveira \n* Martin Opstad Reistadbakk \n* Nathan Van Gheem \n* Johannes Raggam \n* Jamie Lentin \n* Maurits van Rees \n* David Glick \n* Kees Hink \n* Roman Kozlovskyi \n* Gauthier Bastien \n* Andrea Cecchi \n* Bogdan Girman \n* Martin Opstad Reistadbakk \n* Florent Michon \n* Hector Velarde \n\n\nChangelog\n=========\n\n.. You should *NOT* be adding new change log entries to this file.\n You should create a file in the news directory instead.\n For helpful instructions, please see:\n https://github.com/plone/plone.releaser/blob/master/ADD-A-NEWS-ITEM.rst\n\n.. towncrier release notes start\n\n2.2.3 (2022-01-28)\n------------------\n\nBug fixes:\n\n\n- Security fix: prevent cache poisoning with the Referer header.\n See `security advisory `.\n [maurits] (#1)\n- Depend on `plone.namedfile` core instead of its empty `[blobs]` extra.\n [maurits] (#106)\n\n\n2.2.2 (2021-02-16)\n------------------\n\nBug fixes:\n\n\n- Various fixes for restoring references:\n\n - Migrate ``relatesTo`` AT relation to ``relatedItems`` DX relation.\n - In DX check the schema to see if relation field is list or item.\n Taken over from `collective.relationhelpers `_.\n - ``restore_references``: accept ``relationship_fieldname_mapping`` argument.\n This must be a dictionary with a relationship name as key and fieldname as value, instead of always using ``relatedItems`` as fieldname.\n\n [maurits] (#510)\n- Catch AttributeError for ``getNextPreviousEnabled`` during migration.\n [maurits] (#582)\n- migrate_datetimefield: do nothing when old value is None.\n This fixes ``AttributeError: 'NoneType' object has no attribute 'asdatetime'``.\n [maurits] (#584)\n\n\n2.2.1 (2020-10-12)\n------------------\n\nBug fixes:\n\n\n- Update tests to fix updated schema cache.\n See https://github.com/plone/plone.dexterity/pull/137\n [@avoinea] (#573)\n\n\n2.2.0 (2020-09-28)\n------------------\n\nNew features:\n\n\n- Allow passing a custom catalog-query to migrateCustomAT to constrain which objects to migrate. [pbauer] (#572)\n\n\nBug fixes:\n\n\n- Fix various deprecation warnings.\n [maurits] (#3130)\n\n\n2.1.10 (2020-08-14)\n-------------------\n\nBug fixes:\n\n\n- Handle cases where the __parent__ of a discussion was not set to the migrated DX object.\n [pbauer] (#566)\n- In the edge case where the meta_type could not be resolved assume is_folderish being false.\n [pbauer] (#567)\n- Fixed problems in ``getMimeTypeIcon``.\n The contentType of the file was ignored, and icon paths could have a duplicate ``++resource++mimetype.icons/``.\n [maurits] (#569)\n\n\n2.1.9 (2020-07-17)\n------------------\n\nBug fixes:\n\n\n- Display the image size rounded with 1 decimal digit [ale-rt] (#554)\n- Avoid doing the search twice in listings by reusing the batch variable.\n [vincentfretin] (#560)\n\n\n2.1.8 (2020-06-30)\n------------------\n\nBug fixes:\n\n\n- Internationalize selectable columns in collection and tabular view.\n This fixes https://github.com/plone/Products.CMFPlone/issues/2597\n [vincentfretin] (#559)\n\n\n2.1.7 (2020-04-20)\n------------------\n\nBug fixes:\n\n\n- Minor packaging updates. (#1)\n\n\n2.1.6 (2020-02-16)\n------------------\n\nBug fixes:\n\n\n- Integrate PloneHotFix20200121: add more permission checks.\n See https://plone.org/security/hotfix/20200121/privilege-escalation-for-overwriting-content\n [maurits] (#3021)\n- Add a guard in the document.pt template to allow the Document type not to have the RichText\n enforce the behavior enabled.\n [sneridagh] (#3047)\n\n\n2.1.5 (2019-11-25)\n------------------\n\nBug fixes:\n\n\n- for migration tests uninstall plone.app.contenttypes if previously installed\n [ericof] (#535)\n\n\n2.1.4 (2019-10-22)\n------------------\n\nBug fixes:\n\n\n- Fix richtext ``getText`` view to use the correct schema interface.\n [thet]\n\n- Robot tests: split big content listing scenario, fix deprecations.\n [maurits] (#533)\n\n\n2.1.3 (2019-10-12)\n------------------\n\nBug fixes:\n\n\n- Clear schema cache after migration step ``migrate_to_pa_event``. [jensens] (#531)\n- Explicitly load zcml of dependencies, instead of using ``includeDependencies``\n [maurits] (#2952)\n\n\n2.1.2 (2019-07-18)\n------------------\n\nBug fixes:\n\n\n- Speedup stats during migration by not waking up all objects.\n [pbauer] (#529)\n\n\n2.1.1 (2019-07-06)\n------------------\n\nBug fixes:\n\n\n- Don't test for hard coded image size in test.\n [agitator] (#527)\n\n\n2.1.0 (2019-06-19)\n------------------\n\nNew features:\n\n\n- Support ILeadImage behavior when display collection album view.\n [rodfersou] (#524)\n- Add more log-messages during migration from AT to DX.\n [pbauer] (#526)\n\n\nBug fixes:\n\n\n- Use the shared 'Plone test setup' and 'Plone test teardown' keywords in Robot tests.\n [Rotonen] (#522)\n\n\n2.0.5 (2019-05-04)\n------------------\n\nBug fixes:\n\n\n- Move dotted behaviors to named behaviors. [iham] (#519)\n\n\n2.0.4 (2019-04-29)\n------------------\n\nBug fixes:\n\n\n- Add 'content-core' macro definition to summary_view.pt so it can be reused\n [petschki] (#514)\n- Speed up traversal to main_template by markling it as a browser-view.\n [pbauer] (#517)\n\n\n2.0.3 (2019-03-21)\n------------------\n\nBug fixes:\n\n\n- Detect whether a webdav request is RFC822 or pure payload and handle accordingly. (#2781)\n\n\n2.0.2 (2019-03-03)\n------------------\n\nBug fixes:\n\n\n- Fix robots test after dropdownnavigation is enabled for new sites. [pbauer]\n (#511)\n\n\n2.0.1 (2019-02-13)\n------------------\n\nBug fixes:\n\n\n- Following the rename of the lead image and rich text behaviors, use the new\n setting of plone.behavior to register their ``former_dotted_names``, so that\n consumers that have stored the old dotted name have a chance of recovering.\n This is especially needed for plone.app.versioningbehavior, see `issue\n ` [pysailor]\n (#480)\n- Fixed sorting error after Changing the base class for existing objects. see\n `issue `\n [jianaijun] (#497)\n- Fix for folder view when there is one item more than the batch size. see\n `issue `\n [reinhardt] (#500)\n- replace catalog_get_all(catalog) with catalog.getAllBrains() [pbauer] (#503)\n\n\n2.0.0 (2018-10-30)\n------------------\n\nBreaking changes:\n\n- ILeadImage and IRichText behaviors now have proper \"Marker\"-Interfaces.\n As this was only possible by renaming the schema adapter to *Behavior* to\n not break with implementations inside the collective, the FTI-behavior-definition\n has changed:\n\n - ``plone.app.contenttypes.behaviors.leadimage.ILeadImage``\n becomes\n ``plone.app.contenttypes.behaviors.leadimage.ILeadImageBehavior``\n and\n - ``plone.app.contenttypes.behaviors.richtext.IRichText``\n becomes\n ``plone.app.contenttypes.behaviors.richtext.IRichTextBehavior``\n\n [iham]\n\nNew features:\n\n- By using correct (Marker-)Interfaces for the ILeadImage and IRichText,\n the factories are now working properly and can be reconfigured\n wherever you might need them. ZCA FTW!\n [iham]\n- Use human_readable_size from Products.CMFPlone.utils to replace getObjSize\n script. #1801\n [reinhardt]\n\nBug fixes:\n\n- The ``Format`` accessor should actually return the ``format`` attribute\n (see plone/Products.CMFPlone#2540)\n [ale-rt]\n\n- Fix resource warnings.\n [davisagli]\n\n1.4.12 (2018-09-23)\n-------------------\n\nBreaking changes:\n\n- ILeadImage and IRichText behaviors now have proper \"Marker\"-Interfaces.\n As this was only possible by renaming the schema adapter to *Behavior* to\n not break with implementations inside the collective, the FTI-behavior-definition\n has changed:\n\n - ``plone.app.contenttypes.behaviors.leadimage.ILeadImage``\n becomes\n ``plone.app.contenttypes.behaviors.leadimage.ILeadImageBehavior``\n and\n - ``plone.app.contenttypes.behaviors.richtext.IRichText``\n becomes\n ``plone.app.contenttypes.behaviors.richtext.IRichTextBehavior``\n\n [iham]\n\nNew features:\n\n- By using correct (Marker-)Interfaces for the ILeadImage and IRichText,\n the factories are now working properly and can be reconfigured\n wherever you might need them. ZCA FTW!\n [iham]\n\nBug fixes:\n\n- Fix folder layout property migration. The default listing_view layout was\n always set if a folder didn't have a layout property.\n Also a default_page property could be inherited from parent folders or\n the Plone Siteroot, causing 'front-page' default_pages on many folders.\n Now only a direct layout property is copied and in that case on the local\n default_page if set is copied again.\n see `issue 444 `\n [fredvd]\n\n- Fixed false implemented Factories and Markers for ILeadImage and IRichText.\n see `issue 457 `\n [iham]\n\n- Fixed Tests for collection and migration.\n see `issue `\n [iham]\n\n- Pinned pydocstyle as it broke buildout.\n [iham]\n\n- pep8 cleanup.\n [iham]\n\n- Fix various issues in py3\n [pbauer]\n\n\n1.4.11 (2018-06-18)\n-------------------\n\nBug fixes:\n\n- Fix SearchableText in Python 3\n [pbauer]\n\n- Skip migration tests if ATContentTypes is not installed.\n [davisagli]\n\n- check if a contentrule exists before assignment on migration\n [MrTango]\n\n\n1.4.10 (2018-04-03)\n-------------------\n\nNew features:\n\n- Set the ``plone.app.contenttypes_migration_running`` key while running a migration.\n Other addons can check for that and handle accordingly.\n [thet]\n\nBug fixes:\n\n- Implement better human readable file size logic.\n [hvelarde]\n\n- Do not encode query strings on internal link redirections;\n fixes `issue 457 `_.\n [hvelarde]\n\n- Migrations:\n\n - Handle ignore catalog errors where a brain can't find it's object.\n - Try to delete the layout attribute before setting the layout.\n Rework parts where the layout is set by always setting the layout.\n\n [thet]\n\n- In folder listings, when a content object has no title show it's id instead of an empty title.\n [thet]\n\n- Fix upgrades steps when the catalog is inconsistent\n [ale-rt]\n\n\n1.4.9 (2018-02-11)\n------------------\n\nNew features:\n\n- Members folder made permanently private. Fixes https://github.com/plone/Products.CMFPlone/issues/2259\n [mrsaicharan1]\n\n\n1.4.8 (2018-02-05)\n------------------\n\nBug fixes:\n\n- Do not use ``portal_quickinstaller`` in the migration form.\n Use ``get_installer`` to check if ``plone.app.contenttypes`` is\n installed or installable. Use ``portal_setup`` directly for\n blacklisting the ``type_info`` step when installing our profile.\n [maurits]\n\n- Add Python 2 / 3 compatibility\n [pbauer]\n\n\n1.4.7 (2017-12-14)\n------------------\n\nBug fixes:\n\n- Rename post_handlers. Fixes https://github.com/plone/Products.CMFPlone/issues/2238\n [pbauer]\n\n\n1.4.6 (2017-11-26)\n------------------\n\nNew features:\n\n- Allow to patch searchableText index during migrations.\n [pbauer]\n\n- Expose option to skip catalog-reindex after migration in form.\n [pbauer]\n\nBug fixes:\n\n- Remove last use of ``atcontenttypes`` translation domain.\n Fixes `issue 37 `_.\n [maurits]\n\n- Don't overwrite existing settings for Plone Site.\n [roel]\n\n1.4.5 (2017-10-06)\n------------------\n\nBug fixes:\n\n- Do not install plone.app.discussion when installing plone.app.contenttypes.\n [timo]\n\n\n1.4.4 (2017-10-02)\n------------------\n\nNew features:\n\n- Test SVG handling\n [tomgross]\n\n- Use post_handler instead of import_steps.\n [pbauer]\n\nBug fixes:\n\n- Do not use a default value in the form of ``http://`` for the link.\n The new link widget resolves that to the portal root object.\n Also, it's not a valid URL.\n Fixes: https://github.com/plone/Products.CMFPlone/issues/2163\n [thet]\n\n- Remove obsolete HAS_MULTILINGUAL from utils.\n [pbauer]\n\n- Clean up all ``__init__`` methods of the browser views to avoid unnecessary code execution.\n [thet]\n\n- Make sure the effects of the robotframework REMOTE_LIBRARY_BUNDLE_FIXTURE\n fixture are not accidentally removed as part of tearing down the\n PLONE_APP_CONTENTTYPES_ROBOT_FIXTURE.\n [davisagli]\n\n\n1.4.3 (2017-08-30)\n------------------\n\nBug fixes:\n\n- Disable queuing of indexing-operations (PLIP https://github.com/plone/Products.CMFPlone/issues/1343)\n during migration to Dexterity to prevent catalog-errors.\n [pbauer]\n\n\n1.4.2 (2017-08-27)\n------------------\n\nNew features:\n\n- Index default values when indexing the file fails due to a missing binary.\n [pbauer]\n\n- Allow to skip rebuilding the catalog when migrating at to dx in code.\n [pbauer]\n\nBug fixes:\n\n- Add translation namesspace and i18n:translate to the dexterity schema\n definitions for the content types that have extra field defined on top of the\n behavior composition. Otherwise no translations can be picked up.\n [fredvd]\n\n- Use original raw text and mimetype when indexing rich text.\n This avoids a double transform (raw source to output mimetype to plain text).\n Includes a reindex of the SearchableText index for Collections, Documents and News Items.\n `Issue 2066 `_.\n [maurits]\n\n- Migrate the richtext-field 'text' when migrating ATTopics to Collections.\n [pbauer]\n\n- Remove Language='all' from migration-query since it was removed from p.a.multilingual\n [pbauer]\n\n- Actually migrate all migratable types when passing 'all' to at-dx migration.\n [pbauer]\n\n- Remove plone.app.robotframework 'reload' extra.\n This allows to remove quite some other external dependencies that are not Python 3 compatible.\n [gforcada]\n\n1.4.1 (2017-07-03)\n------------------\n\nNew features:\n\n- Integrate new link widget from plone.app.z3cform.\n [tomgross]\n\nBug fixes:\n\n- Made sure the text field of Collections is searchable.\n `Issue 406 `_.\n [maurits]\n\n- Fix issue preventing disabling icons and/or thumbs globally.\n [fgrcon]\n\n1.4 (2017-06-03)\n----------------\n\n\nNew features:\n\n- New metadata catalog column MimeType\n https://github.com/plone/Products.CMFPlone/issues/1995\n [fgrcon]\n\n- new behavior: IThumbIconHandling, supress thumbs /icons, adjust thumb size, templates adapted\n https://github.com/plone/Products.CMFPlone/issues/1734 (PLIP)\n\nBug fixes:\n\n- fixed css-classes for thumb scales ...\n https://github.com/plone/Products.CMFPlone/issues/2077\n [fgrcon]\n\n- Fix test for checking if TinyMCE is loaded which broke after https://github.com/plone/Products.CMFPlone/pull/2059\n [thet]\n\n- Fix flaky test in test_indexes.\n [thet]\n\n- removed unittest2 dependency\n [kakshay21]\n\n- Fix issue where contentFilter could not be read from request\n [datakurre]\n\n\n1.3.0 (2017-03-27)\n------------------\n\nNew features:\n\n- Make use of plone.namedfile's tag() function to generate img tags. Part of plip 1483.\n [didrix]\n\nBug fixes:\n\n- Avoid failure during migration if relation is broken.\n [cedricmessiant]\n\n- Fix import location for Products.ATContentTypes.interfaces.\n [thet]\n\n1.2.22 (2017-02-20)\n-------------------\n\nBug fixes:\n\n- Add condition so custom folder migration does not fail if there is not\n an 'excludeFromNav'\n [cdw9]\n\n\n1.2.21 (2017-02-05)\n-------------------\n\nNew features:\n\n- Remove browserlayer from listing views to allow overrides from other packages\n [agitator]\n\nBug fixes:\n\n- Use helper method to retrieve all catalog brains in migration code, because Products.ZCatalog removed the ability to get all brains by calling the catalog without arguments.\n [thet, gogobd]\n\n- Fix use of add_file in testbrowser tests. [davisagli]\n\n- Render migration results without using Zope session. [davisagli]\n\n\n1.2.20 (2017-01-20)\n-------------------\n\nBug fixes:\n\n- Use unicode string when .format() parameter is unicode for the field migrator\n [frapell]\n\n\n1.2.19 (2016-12-02)\n-------------------\n\nBug fixes:\n\n- Fix SearchableText indexer, using textvalue.mimeType\n [agitator]\n\n- Fix Mimetype icon path. With the removal of the skins folder in\n https://github.com/plone/Products.MimetypesRegistry/pull/8/commits/61acf8327e5c844bff9e5c5676170aaf0ee2c323\n we need the full resourcepath now\n [agitator]\n\n- Show message for editors when viewing Link.\n Fixes `issue 375 `_.\n [maurits]\n\n- Update code to follow Plone styleguide.\n [gforcada]\n\n- Update File.xml view action url_expr to append /view\n Fixes 'issue 378' `_.\n [lbrannon]\n\n\n1.2.18 (2016-09-14)\n-------------------\n\nBug fixes:\n\n- Correct the SearchableText base indexer: use mime type of RichText output\n (rather than raw) value in plaintext conversion. Fixes #357.\n [petri]\n\n\n1.2.17 (2016-08-18)\n-------------------\n\nNew features:\n\n- Configure edit urls for locking support, where locking support is enabled.\n [thet]\n\n- Add ``i18n:attribute`` properies to all action nodes for FTI types.\n [thet]\n\n- added few pypi links in 'Migration' section\n [kkhan]\n\nBug fixes:\n\n- Marked relative location criterion robot test as unstable.\n This needs further investigation, but must not block Plone development.\n See issue https://github.com/plone/plone.app.contenttypes/issues/362\n [maurits]\n\n- Remove ``path`` index injection in \"plone.collection\" behaviors ``results`` method.\n It is a duplicate.\n Exactly the same is done already in the ``plone.app.querybuilder.querybuilder._makequery``,\n which is called by above ``results`` method.\n [jensens]\n\n- Select all migratable types in migration-form by default. Fixes #193.\n [pbauer]\n\n- Use zope.interface decorator.\n [gforcada]\n\n- Mark robot test ``plone.app.contenttypes.tests.test_robot.RobotTestCase.Scenario Test Absolute Location Criterion`` as unstable.\n This needs further investigation, but must not block Plone development.\n [jensens]\n\n- corrected typos in the documentation\n [kkhan]\n\n\n1.2.16 (2016-06-12)\n-------------------\n\nBug fixes:\n\n- Wait longer to fix unstable robot tests. [maurits]\n\n\n1.2.15 (2016-06-06)\n-------------------\n\nBug fixes:\n\n- Fixed possible cross site scripting (XSS) attack in lead image caption. [maurits]\n\n\n1.2.14 (2016-05-25)\n-------------------\n\nBug fixes:\n\n- Encode the linked url for the Link type to allow for non ascii characters in the url.\n [martior]\n\n\n1.2.13 (2016-05-12)\n-------------------\n\nFixes:\n\n- Deferred adapter lookup in collection view.\n This was looked up for contentmenu/toolbar at every authenticated request.\n It also had side effects if custom collection behaviors are used.\n [jensens]\n\n- Fixed unstable robot test for location criterion. [maurits]\n\n- Don't fail for ``utils.replace_link_variables_by_paths``, if value is ``None``.\n The value can be ``None`` when creating a ``Link`` type with ``invokeFactory`` without ``remoteUrl`` set and calling the indexer before setting the URL.\n [thet]\n\n\n1.2.12 (2016-04-13)\n-------------------\n\n\nNew:\n\n- assign shortnames to behaviors as supported by plone.behavior\n [thet]\n\n\n1.2.11 (2016-03-31)\n-------------------\n\nNew:\n\n- WebDAV support for File and Image\n [ebrehault]\n\nFixes:\n\n- Made xpath expression in test less restrictive.\n [maurits]\n\n- Register explicitly plone.app.event dependency on configure.zcml.\n [hvelarde]\n\n\n1.2.10 (2016-02-27)\n-------------------\n\nNew:\n\n- Added *listing* macro as found in ``listing.pt`` to\n ``listing_album.pt`` and ``listing_tabular.pt`` for\n a coherent customization.\n [tomgross]\n\nFixes:\n\n- Check if there is a non-empty leadimage field for migration.\n [bsuttor]\n\n- Make sure to have image scale before generating tag for album view.\n [vangheem]\n\n- Also remove collections upon uninstalling.\n [pbauer]\n\n- Various fixes while migrating custom contenttypes:\n\n - do not fail if source object does not have a 'excludeFromNav' field;\n - do not fail if source object field's label contains special characters;\n - do not try to migrate assigned portlets if source object is not\n portlet assignable.\n [gbastien]\n\n- No longer try to install ATContentTypes-types on uninstalling.\n [pbauer]\n\n- Enhancement: Split up migration test for modification date and references\n in two functions for easier debugging.\n [jensens]\n\n- Simplify test in robot framework which fails in its newer version.\n [jensens]\n\n\n1.2.9 (2016-01-08)\n------------------\n\nFixes:\n\n- Change all text getters on ``plone.app.textfield.value.RichTextValue``\n objects to ``output_relative_to`` with the current context. This correctly\n transforms relative links. See:\n https://github.com/plone/plone.app.textfield/issues/7\n [thet]\n\n\n1.2.8 (2015-12-15)\n------------------\n\nFixes:\n\n- fix issue in migration where source or target uuid could not\n be found\n [vangheem]\n\n\n1.2.7 (2015-11-28)\n------------------\n\nFixes:\n\n- Index subject field on the catalog so that is searchable.\n Fixes https://github.com/plone/plone.app.contenttypes/issues/194\n [gforcada]\n\n\n1.2.6 (2015-11-25)\n------------------\n\nNew:\n\n- Allow to pass custom field_migrator methods with custom migrations.\n [pbauer]\n\nFixes:\n\n- Create standard news/events collections with ``selection.any``.\n Issue https://github.com/plone/Products.CMFPlone/issues/1040\n [maurits]\n\n- Avoid AttributeError from potential acquisition issues with folder listings\n [vangheem]\n\n- Avoid AttributeError when trying to get the default_page of an item\n when migrating\n [frapell]\n\n- Used html5 doctype in image_view_fullscreen. Now it can be parsed\n correctly by for example i18ndude.\n [maurits]\n\n- Use plone i18n domain in zcml.\n [vincentfretin]\n\n- Do a ``IRichText`` text indexing on all registered SearchableText indexers by\n doing it as part of the base ``SearchableText`` function. Convert the text\n from the source mimetype to ``text/plain``.\n [thet]\n\n- Add ``getRawQuery`` method to Collection content type for backward compatibility with Archetypes API.\n Fixes (partially) https://github.com/plone/plone.app.contenttypes/issues/283.\n [hvelarde]\n\n\n1.2.5 (2015-10-28)\n------------------\n\nFixes:\n\n- Fix custom migration from and to types with spaces in the type-name.\n [pbauer]\n\n- Fixed full_view when content is not IUUIDAware (like the portal).\n\n- Cleanup and rework: contenttype-icons\n and showing thumbnails for images/leadimages in listings ...\n https://github.com/plone/Products.CMFPlone/issues/1226\n [fgrcon]\n\n- Fix full_view when content is not IUUIDAware (like the portal).\n Fixes https://github.com/plone/Products.CMFPlone/issues/1109.\n [pbauer]\n\n- Added plone.app.linkintegrity to dependencies due to test-issues.\n [pbauer]\n\n\n1.2.4 (2015-09-27)\n------------------\n\n- Fixed full_view error when collection contains itself.\n [vangheem]\n\n- test_content_profile: do not appy Products.CMFPlone:plone.\n [maurits]\n\n\n1.2.3 (2015-09-20)\n------------------\n\n- Do not raise an exception for items where @@full_view_item throws an\n exception. Instead hide the object.\n [pbauer]\n\n- Do not raise errors when IPrimaryFieldInfo(obj) fails (e.g. when the\n Schema-Cache is gone).\n Fixes https://github.com/plone/Products.CMFPlone/issues/839\n [pbauer]\n\n- Fix an error with logging an exception on indexing SearchableText for files\n and concating utf-8 encoded strings.\n [thet]\n\n- Make consistent use of LeadImage behavior everywhere. Related to\n plone/plone.app.contenttypes#1012. Contentleadimages no longer show up in\n full_view since they are a viewlet.\n [sneridagh, pbauer]\n\n- Fixed the summary_view styling\n [sneridagh]\n- redirect_links property has moved to the configuration registry.\n- redirect_links, types_view_action_in_listings properies have moved to the\n configuration registry.\n [esteele]\n\n\n1.2.2 (2015-09-15)\n------------------\n\n- Prevent negative ints and zero when limiting collection-results.\n [pbauer]\n\n\n1.2.1 (2015-09-12)\n------------------\n\n- Migrate next-previous-navigation.\n Fix https://github.com/plone/plone.app.contenttypes/issues/267\n [pbauer]\n\n\n1.2.0 (2015-09-07)\n------------------\n\n- Handle languages better for content that is create when site is generated\n [vangheem]\n\n- In ``FolderView`` based views, don't include the ``portal_types`` query, if\n ``object_provides`` is set in the ``results`` method keyword arguments. Fixes\n a case, where no Album Images were shown, when portal_state's\n ``friendly_types`` didn't include the ``Image`` type.\n [thet]\n\n\n1.2b4 (2015-08-22)\n------------------\n\n- Test Creator criterion with Any selection.\n [mvanrees]\n\n- Selection criterion converter: allow selection.is alternative operation.\n [mvanrees]\n\n- Fixed corner case in topic migration.\n [mvanrees]\n\n- Use event_listung for /events/aggregator in new sites.\n [pbauer]\n\n- Remove obsolete collections.css\n [pbauer]\n\n- Add plone.app.querystring as a dependency (fixes collections migrated to p5\n and dexterity).\n [pbauer]\n\n- Migrate layout of portal to use the new listing-views when migrating to dx.\n [pbauer]\n\n- Migrate layout using the new listing-views when migrating folders,\n collections, topics.\n [pbauer]\n\n- Update allowed view_methods of the site-root on installing or migrating.\n Fixes #25.\n [pbauer]\n\n- Set default_view when updating view_methods. Fixes #250.\n [pbauer]\n\n- Fix bug in reference-migrations where linkintegrity-relations were turned\n into relatedItems.\n [pbauer]\n\n- Setup calendar and visible ids even when no default-content gets created.\n [pbauer]\n\n- Remove upgrade-step that resets all behaviors. Fixes #246.\n [pbauer]\n\n- Add convenience-view @@export_all_relations to export all relations.\n [pbauer]\n\n- Add method link_items that allows to link any kind of item (AT/DX) with any\n kind of relationship.\n [pbauer]\n\n- New implementation of reference-migrations.\n [pbauer]\n\n- Fix i18n on custom_migration view.\n [vincentfretin]\n\n\n1.2b3 (2015-07-18)\n------------------\n\n- Fix BlobNewsItemMigrator.\n [MrTango]\n\n- Fix ATSelectionCriterionConverter to set the right operators.\n [MrTango]\n\n- Fix @@custom_migraton when they type-name has a space (fixes #243).\n [pbauer]\n\n- Get and set linkintegrity-setting with registry.\n [pbauer]\n\n- Use generic field_migrators in all migrations.\n [pbauer]\n\n- Remove superfluous 'for'. Fixes plone/Products.CMFPlone#669.\n [fulv]\n\n\n1.2b2 (2015-06-05)\n------------------\n\n- Use modal pattern for news item image instead of jquery tools.\n [vangheem]\n\n\n1.2b1 (2015-05-30)\n------------------\n\n- Keep additional view_methods when migrating to new view_methods. Fixes #231.\n [pbauer]\n\n- Fix upgrade-step to use new view_methods.\n [pbauer]\n\n- Fix possible error setting fields for tabular_view for\n collections. Issue #209.\n [maurits]\n\n\n1.2a9 (2015-05-13)\n------------------\n\n- Provide table of contents for document view.\n [vangheem]\n\n- Default to using locking support on Page, Collection, Event and News Item types.\n [vangheem]\n\n- Show the LeadImageViewlet only on default views.\n [thet]\n\n\n1.2a8 (2015-05-04)\n------------------\n\n- Follow best practice for CHANGES.rst.\n [timo]\n\n- Add migrations from custom AT types to available DX types (fix #133).\n [gbastien, cekk, tiazma, flohcim, pbauer]\n\n- Fix ``contentFilter`` for collections.\n [thet]\n\n- Don't batch the already batched collection results. Fixes #221.\n [thet]\n\n- I18n fixes.\n [vincentfretin]\n\n- Fix ``test_warning_for_uneditable_content`` to work with recent browser layer\n changes in ``plone.app.z3cform``.\n [thet]\n\n- Update image_view_fullscreen.pt for mobile friendliness.\n [fulv]\n\n- Removed dependency on CMFDefault\n [tomgross]\n\n\n1.2a7 (2015-03-27)\n------------------\n\n- Re-relase 1.2a6. See https://github.com/plone/plone.app.contenttypes/commit/7cb74a2fcbf108acd43fe4ae3713f007db2073bf for details.\n [timo]\n\n\n1.2a6 (2015-03-26)\n------------------\n\n- In the listing view, don't repeat on the ``article`` tag, which makes it\n impossible to override this structure. Instead, repeat on a unrendered\n ``tal`` tag and move the article tag within.\n [thet]\n\n- Don't try to show IContentLeadImage images, if theree none. Use the \"mini\"\n scale as default scale for IContentLeadImage.\n [thet]\n\n- Improve handling of Link types with other URL schemes than ``http://`` and\n ``https://``.\n [thet]\n\n- When installing the default profile, restrict uninstalling of old types to\n old FTI based ones.\n [thet]\n\n- Reformatted all templates for 2 space indentation, 4 space for attributes.\n [thet]\n\n- Register folder and collection views under the same name. Old registrations\n are kept for BBB compatibility.\n [thet]\n\n- Refactor full_view and incorporate fixes from collective.fullview to\n 1) display the default views of it's items, 2) be recursively callable\n and 3) have the same templates for folder and collections.\n [thet]\n\n- Refactor folder_listing, folder_summary_view, folder_tabular_view and\n folder_album_view for folders as well as standard_view (collection_view),\n summary_view, tabular_view and thumbnail_view for collections to use the same\n templates and base view class.\n [thet]\n\n- In the file view, render HTML5 ``