plone.app.dexterity


Nameplone.app.dexterity JSON
Version 4.0.2 PyPI version JSON
download
home_pagehttp://plone.org/products/dexterity
SummaryDexterity is a content type framework for CMF applications, with particular emphasis on Plone. It can be viewed as an alternative to Archetypes that is more light-weight and modular.
upload_time2024-10-23 19:24:28
maintainerNone
docs_urlNone
authorMartin Aspeli, David Glick, et al
requires_python>=3.10
licenseGPL
keywords plone ttw dexterity schema interface
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            .. contents:: Table of Contents

.. note:: ``2.1.1`` is the last Plone 4 compatible release.


Introduction
============

Dexterity wants to make some things really easy. These are:

* Create a "real" content type entirely through-the-web without having to
  know programming.
* As a business user, create a schema using visual or through-the-web tools,
  and augment it with adapters, event handlers, and other Python code written
  on the filesystem by a Python programmer.
* Create content types in filesystem code quickly and easily, without losing
  the ability to customise any aspect of the type and its operation later if
  required.
* Support general "behaviours" that can be enabled on a custom type in a
  declarative fashion. Behaviours can be things like title-to-id naming,
  support for locking or versioning, or sets of standard metadata with
  associated UI elements.
* Easily package up and distribute content types defined through-the-web, on
  the filesystem, or using a combination of the two.

Philosophy
==========

Dexterity is designed with a specific philosophy in mind. This can be
summarised as follows:

Reuse over reinvention
  As far as possible, Dexterity should reuse components and technologies that
  already exist. More importantly, however, Dexterity should reuse concepts that
  exist elsewhere. It should be easy to learn Dexterity by analogy, and to work
  with Dexterity types using familiar APIs and techniques.

Small over big
  Mega-frameworks be damned. Dexterity consists of a number of specialised
  packages, each of which is independently tested and reusable. Furthermore,
  packages should have as few dependencies as possible, and should declare their
  dependencies explicitly. This helps keep the design clean and the code
  manageable.

Natural interaction over excessive generality
  The Dexterity design was driven by several use cases that express the way in
  which we want people to work with Dexterity. The end goal is to make it easy
  to get started, but also easy to progress from an initial prototype to a
  complex set of types and associated behaviours through step-wise learning and
  natural interaction patterns. Dexterity aims to consider its users - be they
  business analysts, light integrators or Python developers, and be they new or
  experienced - and cater to them explicitly with obvious, well-documented,
  natural interaction patterns.

Real code over generated code
  Generated code is difficult to understand and difficult to debug when it
  doesn't work as expected. There is rarely, if ever, any reason to scribble
  methods or 'exec' strings of Python code.

Zope 3 over Zope 2
  Although Dexterity does not pretend to work with non-CMF systems, as many
  components as possible should work with plain Zope 3, and even where there are
  dependencies on Zope 2, CMF or Plone, they should - as far as is practical -
  follow Zope 3 techniques and best practices. Many operations (e.g. managing
  objects in a folder, creating new objects or manipulating objects through a
  defined schema) are better designed in Zope 3 than they were in Zope 2.

Zope concepts over new paradigms
  We want Dexterity to be "Zope-ish". Zope is a mature, well-designed (well,
  mostly) and battle tested platform. We do not want to invent brand new
  paradigms and techniques if we can help it.

Automated testing over wishful thinking
  "Everything" should be covered by automated tests. Dexterity necessarily has a
  lot of moving parts. Untested moving parts tend to come loose and fall on
  people's heads. Nobody likes that.

Getting started
===============

Please read the `installation guide`_ to get Dexterity up and running.

.. _`installation guide`: http://docs.plone.org/external/plone.app.dexterity/docs/install.html

Then log in to Plone, go to Site Setup, and go to the ``Dexterity Types``
control panel to get started creating content types through the web.

Or read the `Dexterity Developer Manual`_ to get started developing
Dexterity content types on the filesystem.

The 2.0.x release series of Dexterity is compatible with
and included with Plone 4.3.

Upgrading
=========

If you are upgrading from a previous release of Dexterity, you need to:

1. Update your buildout with the new versions (or extend the updated KGS),
   and re-run it.
2. Restart Zope.
3. Go to the Add-ons control panel in Plone Site Setup, and run the
   upgrade steps for "Dexterity Content Types" if there are any available.

Documentation
=============

Various documentation is available:

* `Dexterity Developer Manual`_
* `How to create reusable behaviors for Dexterity types`_

.. _`Dexterity Developer Manual`: http://docs.plone.org/external/plone.app.dexterity/docs/index.html
.. _`How to create reusable behaviors for Dexterity types`: http://docs.plone.org/external/plone.app.dexterity/docs/behaviors/index.html

The following documents are not Dexterity-specific, but will likely be useful
to users of Dexterity:

* `Schema-driven forms manual`_

.. _`Schema-driven forms manual`: http://docs.plone.org/develop/addons/schema-driven-forms/index.html


Issue tracker
=============

Please report issues via the `Plone issue tracker`_.

.. _`Plone issue tracker`: https://github.com/plone/plone.app.dexterity/issues

Support
=======

Dexterity use questions may be answered via `Plone's support channels`_.

.. _`Plone's support channels`: http://plone.org/support

Contributing
============

Contributors please read the document `Process for Plone core's development <https://docs.plone.org/develop/coredev/docs/index.html>`_

Sources are at the `Plone code repository hosted at Github <https://github.com/plone/plone.app.dexterity>`_.

Dexterity wouldn't be possible without the hard work of a lot of people, including:

* Martin Aspeli
* Jian Aijun
* Wichert Akkerman
* Jonas Baumann
* David Brenneman
* Joel Burton
* Vincent Fretin
* Rok Garbas
* Anthony Gerrard
* Nathan van Gheem
* David Glick
* Craig Haynal
* Wouter Vanden Hove
* Jean-Michel Francois
* Jim Fulton
* Jamie Lentin
* Alex Limi
* Steve McMahon
* Jason Mehring
* Alec Mitchell
* Daniel Nouri
* Ross Patterson
* Maurits van Rees
* Lennart Regebro
* Laurence Rowe
* Israel Saeta Perez
* Hanno Schlichting
* Christian Schneider
* Carsten Senger
* Jon Stahl
* Eric Steele
* Gaudenz Steinlin
* Dorneles Tremea
* Sean Upton
* Sylvain Viollon
* Matthew Wilkes
* Matt Yoder
* Andi Zeidler
* Hector Velarde
* Giacomo Spettoli
* Jens Klein

(Please add your name if we have neglected to.)

Release Notes
=============

Dexterity 2.0 is a major release of Dexterity. It has focused on getting
Dexterity included in Plone core, by cleaning things up and making
dependencies that are not ready for primetime optional.

Grok-style configuration no longer included by default
------------------------------------------------------

Dexterity 1.0 included ``five.grok`` to allow configuring components via
Python directives rather than in separate XML-based ZCML files.  It also
included two packages, ``plone.directives.form`` and
``plone.directives.dexterity``, to provide some grok-style directives for
Dexterity-specific features.

The Dexterity authors still like grok and believe it makes it easier to learn
how to customize Plone.  However, it has been turned into an optional feature
so that Dexterity has a chance to enter Plone core even if the Plone framework
team doesn't want to add grok to the already complex stack.

To include these three grok-related packages when you install Dexterity,
enable the "grok" extra::

  [instance]
  eggs =
      plone.app.dexterity [grok]

By the way, a number of schema directives from ``plone.directives.form`` that
used to require grok to work have been reimplemented so that they work without
grok. In particular, the ``Schema`` class and the ``model``, ``fieldset``,
and ``primary`` directives were moved to ``plone.supermodel.model``. The
``omitted``, ``no_omit``, ``mode``, ``widget``, ``order_before``,
``order_after``, ``read_permission``, and ``write_permission`` directives were
moved to ``plone.autoform.directives``.  There are aliases in the old locations
so you don't need to update existing code, but you can switch to the new
locations if you're trying to avoid depending on grok.

Relation support no longer included by default
----------------------------------------------

Dexterity 1.0 included support for object relations based on the zc.relation
catalog and plone.app.relationfield, as well as a behavior
(``plone.app.dexterity.behaviors.related.IRelatedItems``) providing a
generic list of related items based on that implementation.

Since this feature was added to Dexterity, we discovered that it will be hard
to support this type of relation well in Zope 2 until Zope 2 is setting
__parent__ pointers everywhere. In addition, we encountered some problems with
using interfaces as keys in the zc.relation catalog. And Dexterity gained
support for the Archetypes reference engine in
``plone.app.referenceablebehavior``. As a result of these factors, the
zc.relation approach to object relationships will not be included in Dexterity or Plone core for the time being.

VERY IMPORTANT: If you are upgrading a site with Dexterity 1.0 to Dexterity
2.0, it will break unless you install plone.app.relationfield, since your
database contains persistent intid and relations utilities. The easiest way
to include plone.app.relationfield is to install plone.app.dexterity with
the "relations" extra::

  [instance]
  eggs =
      plone.app.dexterity [relations]

Using relations via plone.app.relationfield
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

If you were relying on the support for relations, you can re-enable support
by installing the ``plone.app.relationfield`` package. You need to add it to
your package's install_requires in setup.py::

  install_requires=[
      'plone.app.relationfield',
      ]

Make sure your package is including its ZCML in configure.zcml::

  <include package="plone.app.relationfield" />

And install its GenericSetup profile as a dependency in your package's metadata.xml::

  <dependencies>
    <dependency>profile-plone.app.relationfield:default</dependency>
  </dependencies>

If you have any content types using the IRelatedItems behavior, you should
update them to import the behavior from the new location::

  <property name="behaviors">
      <element value="plone.app.relationfield.behavior.IRelatedItems" />
  </property>

Content tree and Autocomplete widgets no longer included by default
-------------------------------------------------------------------

In Dexterity 1.0, the widgets in ``plone.formwidget.autocomplete`` and
``plone.formwidget.contenttree`` were installed as dependencies of
``plone.app.dexterity``. In Dexterity 2.0 they are no longer installed
by default, because they are not used by any of the included behaviors
or made available via the through-the-web content type editor at this
time.

If you use these widgets, make sure your package lists them as
dependencies in setup.py, loads their ZCML in configure.zcml, and
activates their GenericSetup profiles as dependencies in metadata.xml.

Changelog
=========

.. You should *NOT* be adding new change log entries to this file.
   You should create a file in the news directory instead.
   For helpful instructions, please see:
   https://github.com/plone/plone.releaser/blob/master/ADD-A-NEWS-ITEM.rst

.. towncrier release notes start

4.0.2 (2024-10-23)
------------------

Internal:


- Update configuration files.
  [plone devs]


Tests


- port robot tests [1letter] (#393)


4.0.1 (2024-09-03)
------------------

Breaking changes:


- `plone.app.discussion` is now a core addon.
  The `plone.discussion` behavior class was moved over there.
  This is the real reason that 4.0.0 was a breaking release: this is for Plone 6.1 only.
  [@jensens] (#371)


4.0.0 (2024-05-30)
------------------

Bug fixes:


- Remove a DeprecationWarning from a moved p.a.z3cform.widgets import. [@jensens] (#387)


Internal:


- Update configuration files.
  [plone devs] (6e36bcc4)


3.2.0 (2023-11-03)
------------------

Internal:


- Make the dependency on ``plone.app.content`` conditional.
  This is for ``INameFromTitle``, which we want to move to ``plone.base``.
  [maurits] (#3858)


3.1.2 (2023-10-25)
------------------

Internal:


- Update configuration files.
  [plone devs] (55bda5c9)
- Move some tests to `plone.app.content` to avoid
  a circular dependency with that package.
  [gforcada] (#3858)


3.1.1 (2023-05-22)
------------------

Bug fixes:


- Fix transitive circular dependency on `plone.app.layout`.
  Use moved imports in `plone.base`.
  Move `plone.app.layout.nextprevious.interfaces.INextPreviousProvider` to `.behaviors.nextprevious`.
  Move defaultpage warning viewlet to `plone.app.layout`.
  [@jensens] (fix-circular-dep-palayout)


3.1.0 (2023-05-08)
------------------

New features:


- Content types control panel: Show behavior name and interface. @ksuess, @stevepiercy (#363)


3.0.5 (2023-04-14)
------------------

Bug fixes:


- Fix for searchable Named(Blob)File indexer. Safely convert to str.
  [petschki] (#362)


Internal:


- Update configuration files.
  [plone devs] (#47959565)


3.0.4 (2023-02-08)
------------------

Bug fixes:


- Restore and deprecate "ModelEditorView.modelSource".
  It will be removed in Plone 7.
  [thet] (#359)
- Deprecate ModelEditorView.escaped_model_source which is not needed anymore.
  It will be removed in Plone 7.
  [thet] (#359)
- Use the tal engine to escape HTML via non-structure variable insertion.
  [thet] (#359)


3.0.3 (2022-12-12)
------------------

Bug fixes:


- Modeleditor: Don't double escape the xml.

  Use the page template's structure keyword when inserting the escaped HTML into
  the modeleditor's textarea. This allows the source code pattern to properly
  parse and display the XML for editing.

  Fixes: #357 (#358)


3.0.2 (2022-12-10)
------------------

Bug fixes:


- Fix ``XMLSyntaxError`` when saving model source in the modeleditor.
  [maurits] (#3695)


3.0.1 (2022-12-02)
------------------

Bug fixes:


- Remove deprecated imports from ``plone.app.widgets``
  [petschki] (#355)


3.0.0 (2022-12-02)
------------------

Bug fixes:


- Final release for Plone 6.0.0. (#600)


3.0.0b2 (2022-10-04)
--------------------

Bug fixes:


- Fix folder_listing to show the content ID if no title is available. [jensens] (#353)


3.0.0b1 (2022-07-21)
--------------------

Bug fixes:


- Tests: add names to behaviors.
  [maurits] (#169)


3.0.0a11 (2022-05-24)
---------------------

Bug fixes:


- Rename "Dexterity Content Types" to just "Content Types"
  [tisto] (#331)
- Don't acquire language from portal root default_language for ICategorization.language.
  Fixes https://github.com/plone/plone.app.dexterity/issues/258
  [jaroel] (#350)


3.0.0a10 (2022-05-09)
---------------------

Breaking changes:


- Code Style: isort + black.
  Pyupgrade and six removal.
  Short name usage of behaviors in tests.
  Sleep in editing.rst reduced (saves 10sec in tests).
  Use plone.base.
  [jensens] (#348)


Bug fixes:


- Make compatible with robotframework 3-5.
  [maurits] (#5)
- Replaced use of ``plone.api``.
  That should not be done in Plone core.
  [maurits] (#346)
- Better naming and description of `plone.textindexer` in behaviors control panel.
  [jensens] (#347)


3.0.0a9 (2022-04-07)
--------------------

Breaking changes:


- Remove JavaScript from this package and move it to Mockup.
  [thet]

  Modeleditor: Use pat-code-editor from Patternslib instead ACE.
  Make the model editing form usable without JavaScript.
  Allow editing the form even with XML errors to be able to fix the problem.
  [thet] (#334)


New features:


- PLIP 2780: Move features of collective.dexteritytextindexer to core.
  [zworkb] (#2780)


Bug fixes:


- Remove deprecation warnings after PLIP 3395, some black & isort, some six removal.
  [jensens] (#345)
- Modeleditor: when there is no model_source yet, show the model_file.
  [maurits] (#3473)


3.0.0a8 (2022-02-24)
--------------------

Bug fixes:


- Update the new type icon to svg, the old one was png and the expression as url does not work anymore (must be a icon resolver compatible name).
  [yurj] (#340)


3.0.0a7 (2022-01-28)
--------------------

Bug fixes:


- Depend on `plone.namedfile` core instead of its empty `[scales]` extra.
  [maurits] (#106)


3.0.0a6 (2022-01-19)
--------------------

Bug fixes:


- Fix warning about legacy version specifiers in setup.py.
  [maurits] (#337)


3.0.0a5 (2022-01-07)
--------------------

Bug fixes:


- Use the shared 'Plone test setup' and 'Plone test teardown' keywords in Robot tests.
  [Rotonen] (#292)
- Fix form text.
  [agitator] (#336)


3.0.0a4 (2021-11-23)
--------------------

Bug fixes:


- Rename "Dexterity Content Types" to just "Content Types"
  [timo] (#331)
- Fix broken test for https://github.com/plone/plone.app.contenttypes/pull/624
  [agitator] (#333)


3.0.0a3 (2021-09-15)
--------------------

Bug fixes:


- Remove cyclic dependency with Products.CMFPlone
  [ericof] (#329)


3.0.0a2 (2021-08-04)
--------------------

Bug fixes:


- Update documentation. (#1)


3.0.0a1 (2021-04-20)
--------------------

Breaking changes:


- Update for Plone 6 with Bootstrap markup
  [petschki, agitator] (#322)


2.6.9 (2021-01-08)
------------------

Bug fixes:


- Fix the constraint types mode calculation, disabling acquisition and gracefully checking for the existence of a portal type attribute in the container (#319)


2.6.8 (2020-11-17)
------------------

Bug fixes:


- For increased security, in the modeleditor do not resolve entities, and remove processing instructions.
  [maurits] (#3209)


2.6.7 (2020-10-30)
------------------

Bug fixes:


- Update tests to fix updated schema cache.
  See https://github.com/plone/plone.dexterity/pull/137
  [@avoinea, maurits] (#313)


2.6.6 (2020-09-21)
------------------

Bug fixes:


- Do not require nextPreviousEnabled (#312)


2.6.5 (2020-04-15)
------------------

Bug fixes:


- Make sure getNextItem function returns None if position can not be looked up. [timo] (#308)


2.6.4 (2019-11-25)
------------------

Bug fixes:


- Use https links to documentation. [vincentfretin] (#299)
- Update documentation introduction w/r/t archetypes (#301) (#302)
- Fix mr.bob command in documentation (#305)


2.6.3 (2019-06-27)
------------------

Bug fixes:


- Update docu for creating dexterity behaviors (#281)
- The @@behaviors form was wrongly encoding the added behavior names on Python3 [ale-rt] (#296)
- Fix tests in Python 3.8 [pbauer] (#298)


2.6.2 (2019-06-19)
------------------

Bug fixes:


- Update docu for creating dexterity behaviors (#281)


2.6.1 (2019-05-21)
------------------

Bug fixes:


- Moved TTW creation of content types to use and add/remove named behaviors. [iham] (#290)
- Improper naming issue resolved,IBasic.description must be IDublinCore.description
  [Ritwik Agarwal] (#294)


2.6.0 (2019-04-29)
------------------

New features:


- ``IWidgetsLayer`` is no longer needed, use ``IPloneFormLayer`` instead.
  Import ``IFieldPermissionChecker`` from ``plone.app.z3cform`` instead of ``plone.app.widgets``.
  [jensens] (#268)


Bug fixes:


- Speed up traversal by marking main_template as a browser-view.
  [pbauer] (#289)


2.5.3 (2019-02-08)
------------------

Bug fixes:


- Release upload lock when name chooser fails. [maurits] (#276)
- Import Type Profile fails because code was using StringIO instead of ByteIO
  (#279)
- Do not acquire ``constrain_types_mode`` from parent when not defined
  [frapell] (#284)


2.5.1 (2018-09-23)
------------------

Bug fixes:

- Remove bbb for MessageFactory import.
  [jensens]

- Python 3 fixes.
  [jensens, pbauer]


2.5.0 (2018-06-24)
------------------

New features:

- Add plone.schema>=1.1.0 as minimal dependency in setup.py.
  [timo]

- Add JSONField that has been added to plone.schema 1.1.0 to ALLOWED_FIELDS in types.py.
  [timo]


2.4.10 (2018-06-18)
-------------------

Bug fixes:

- Python 3 fixes.
  [pbauer]


2.4.9 (2018-04-03)
------------------

Bug fixes:

- Don't break if types are without widgets or groups.
  Fixes an error with displaying TTW Dexterity types via plone.app.contenttypes full_view.
  [thet]


2.4.8 (2018-02-04)
------------------

Bug fixes:

- Do not fail in upgrade step or tests when portal_quickinstaller is not there.
  [maurits]

- Python 2 / 3 compatible imports.
  [vincero]


2.4.7 (2017-10-17)
------------------

Bug fixes:

- Make sure robot autologin test fixture is not accidentally torn down
  when the Dexterity fixture's ZODB sandbox is reverted.
  [davisagli]


2.4.6 (2017-09-03)
------------------

Bug fixes:

- Uniformity with the "Contributors" label.
  [arsenico13]


2.4.5 (2017-08-27)
------------------

Bug fixes:

- Modernized the ``vocabularies`` documentation.
  [jensens]


2.4.4 (2017-07-03)
------------------

Bug fixes:

 - The ``ICategorization`` behavior should only expose those content languages which
   are configured instead of all available languages.
   [thetet]

2.4.3 (2017-06-26)
------------------

New features:

  add documentation for plone.app.contenttypes.behaviors.thumb_icon.IThumbIconHandling
  see PLIP https://github.com/plone/Products.CMFPlone/issues/1734
  [fgrcon]

Bug fixes:

- The ``ICategorization`` behavior should only expose those content languages which are configured instead of all available languages.
  [thet]

- fix typo in deprecation message
  [tkimnguyen]

- Remove the transaction.begin call before creating a dx object,
  remove the transaction.commit call after creating a dx object.
  Fixes #243.
  [ale-rt]


2.4.2 (2017-05-24)
------------------

Bug fixes:

- Cleanup code of ``permissions.py`` (ZCA-decorator, reduce complexity)
  [jensens]

- Fix issue with field permissions check on add forms when the parent has no "Modify portal content" permission.
  New: For add forms use the "Add portal content" permission as default field permission.
  As great side effect vocabularies for i.e. AjaxSelectWidget from ``plone.app.content``,
  which are using the check, are working on add forms in a context w/o "Modify portal content".
  [jensens]
- removed deprecated getIcon() from documentation
  [fgrcon]

- JavaScript formatting according to style guides.
  [thet]


2.4.1 (2017-03-26)
------------------

Bug fixes:

- Made exclude_from_nav optional. Fixed #101
  [jaroel]


2.4.0 (2017-02-12)
------------------

Breaking changes:

- When setting the Description field, do not remove new lines but keep the input as-is.
  Instead remove new lines in the plone.dexterity ``Description`` metadata accessor.
  [thet]

Bug fixes:

- Do not import ``IFileFactory`` in interfaces from plone.app.widgets.
  It is only imported over there.
  [jensens]

- Fix tests when using zope.testbrowser 5.0 [davisagli]


2.3.6 (2017-01-20)
------------------

New features:

- Add generic version of folder_listing view & macro. Only registered for
  Plone 5.1, to avoid taking precedence over skin layer templates for
  Archetypes content in Plone 5.0
  [davisagli]


2.3.5 (2016-11-18)
------------------

Bug fixes:

- Update code to follow Plone styleguide.
  [gforcada]

- Documentation: Add dexterity test example using a behavior.
  [ramiroluz]

- Add a generic version of the folder_listing view
  so that the container view can use it even without plone.app.contenttypes
  (such as in tests using the DEXTERITY_FIXTURE)
  [davisagli]


2.3.4 (2016-10-03)
------------------

Bug fixes:

- Replaced ``secureSend`` with ``send`` in documentation.
  ``secureSend`` has long been deprecated.
  [maurits]


2.3.3 (2016-09-14)
------------------

Bug fixes:

- TTW behaviors selection of the name is now bound to the registration,
  prior it was bound to the interface.
  But interfaces may be used by more than one registered behavior.
  [jensens]


2.3.2 (2016-08-12)
------------------

Bug fixes:

- Use zope.interface decorator.
  [gforcada]

Documentation changes:

- Revised tutorial sections to use mr.bob and bobtemplates.plone rather than ZopeSkel.
  [smcmahon]


2.3.1 (2016-06-07)
------------------

Bug fixes:

- Removed ``dexterity-types`` from portal_actions.  This is set
  correctly in ``controlpanel.xml``.
  Issue https://github.com/plone/plone.app.dexterity/issues/218
  [maurits]


2.3.0 (2016-05-21)
------------------

New features:

- The defaults of exclude from navigation is now obtained from a contextaware default factory, which value is obtained from an adapter.
  The default adapter returns False.
  An alternative adapter which defaults to True is provided but not registered.
  This change makes it possible to provide a custom context specific implementation.
  [jensens]

- Documentation: Shortnames added and some missing behaviors added.
  [jensens]

Bug fixes:

- Linebreaks in description are replaced with a space instead of vanishing it.
  Thus an editor can use them w/o having word glued together afterwards.
  [jensens]


2.2.0 (2016-04-28)
------------------

New:

- Assign short names for all behaviors as supported by plone.behavior.
  [jensens]

Fixes:

- Remove dups from TTW behavior FTI editor.
  [jensens]

- Fix problem in ConstrainTypesBehavior:
  when mode was ENABLED but only setLocallyAllowedTypes were set,
  then getImmediatelyAddableTypes returned None,
  but all consuming code expect it to return a list
  [jensens]

- Lookup of Content Type from MIME-Type for using right Plone Content Type to store Images (especially Tiff) correct as Images not Files.
  [loechel]


2.1.20 (2016-03-31)
-------------------

Fixes:

- Docs: Overhaul of chapter form-schema-hints.rst
  [jensens]

- Use the type ID in HTML classes in the type listing rather than titles.
  [davidjb]


2.1.19 (2016-02-26)
-------------------

Fixes:

- Rerelease due to possible brown bag release.  [maurits]


2.1.18 (2016-02-26)
-------------------

Fixes:

- Make the form permission validator a bit more generic so it can be used
  with non-AddForms.
  [alecm]


2.1.17 (2016-01-08)
-------------------

Fixes:

- Update event handler documentation.
  [jensens]

- Remove unused locales folder, translations are now in plone.app.locales.
  [vincentfretin]


2.1.16 (2015-12-03)
-------------------

Fixes:

- Fix wrong usage of MessageFactory
  [jensens]

- Use plone i18n domain
  [gforcada]

- Fix non existing self._request with schema.Choice value_type.
  [pcdummy]


2.1.15 (2015-10-28)
-------------------

New:

- Updated Traditional Chinese translation.
  [l34marr]

- Updated Brazil translations.
  [claytonc]

Fixes:

- Updated doc links in modeleditor.
  Issue `CMFPlone#1027`_.
  [pabo3000]

- Fixed icons in dexterity types list.
  Issues `CMFPlone#1013`_ and `CMFPlone#1151`_.
  [fgrcon]

- No longer rely on deprecated ``bobobase_modification_time`` from
  ``Persistence.Persistent``.
  [thet]

- Fixed typos in german translation. Thx bierik for reporting in
  Issue `dexterity#183`_.
  [jensens]

- Avoid re-adding the UUID on an upgrade step.
  [gforcada]


2.1.14 (2015-09-21)
-------------------

- Updated French translations.
  [enclope]


2.1.13 (2015-09-20)
-------------------

- Fixed issue with permission checker add form context.
  Issue `CMFPlone#1027`_.
  [alecm]

- Fixed ace editor javascript reference.
  Issue `CMFPlone#895`_.
  [rodfersou]

- Rerun i18ndude and updated German translation.
  [pabo3000]


2.1.12 (2015-09-15)
-------------------

- Remove unittest2 dependency.
  [gforcada]


2.1.11 (2015-09-11)
-------------------

- Updated basque translation
  [erral]


2.1.10 (2015-09-08)
-------------------

- Fix modeleditor for Plone 5
  [vangheem]


2.1.9 (2015-09-07)
------------------

- Restrict allowed field types to regular types (so plone.app.users do not show
  up)
  [ebrehault]


2.1.8 (2015-08-20)
------------------

- Avoid ``DeprecationWarning`` for ``getIcon`` and ``splitSchemaName``.
  [maurits]


2.1.7 (2015-07-18)
------------------

- Remove duplicate plone.app.z3cform pin in setup.py. This fixes https://github.com/plone/plone.app.dexterity/issues/167.
  [timo]

- Fixed an adapter path at custom add forms documentation.
  [brunobbbs]

- Change the category of the configlet to 'plone-content'.
  [sneridagh]

- Unlock before changing id (fixes
  https://github.com/plone/Products.CMFPlone/issues/623).
  [pbauer]

- Remove superfluous 'for'. Fixes plone/Products.CMFPlone#669.
  [fulv]

- Schemaeditor does not redirect anymore.
  [barichu]


2.1.6 (2015-06-05)
------------------

- change control panel title to be upper cased
  [vangheem]

- ignore protected fields when testing addability.
  [ebrehault]

- Update Japanese translation.
  [terapyon]


2.1.5 (2015-05-04)
------------------

- pat-modal pattern has been renamed to pat-plone-modal
  [jcbrand]


2.1.4 (2015-03-26)
------------------

- Add i18n:domain for Default Page Warning template.
  [l34marr]

- Update Traditional Chinese translation.
  [l34marr]


2.1.3 (2015-03-13)
------------------

- Code and docs housekeeping: pep8 et al, zca decorators, doc style.
  [jensens]

- Ensure the default creator value is a unicode string.
  [lentinj]

- Add facility to import type profiles in zip archives. Added button to
  types edit page. Import format is identical to export.
  [smcmahon]

- Update markup and javascript for Plone 5.
  [davisagli]

- Fix the IDexterityContainer view to make use of plone.app.contenttype's new
  listing view. Accessing it's macro needs the macro-caller's view variable set
  to the new listing view.
  [thet]


2.1.2 (2014-10-23)
------------------

- Added transifex-client configuration for manage the translations
  from Plone transifex organization [macagua].

- Updated Spanish translation [flamelcanto, macagua].

- Add validator to ensure expires date is after effective date.
  [benniboy]

- Remove line feeds and carriage returns from meta description and
  added upgrade step to do it for existing content
  [bosim]

- Fixed issue.
  Multiple (two or more) acquisition from parent was failing when
  user didn't have add permission on parent.
  [keul, cekk]


2.1.1 (2014-04-13)
------------------

- Add behavior to let an item's id be edited from its edit form
  (plone.app.dexterity.behaviors.id.ShortName).
  [davisagli]

- Cloning of types containing white space did not work, this commit
  fixes that bug.
  [bosim]


2.1.0 (2014-03-01)
------------------

- Don't throw an error if allowed_content_types is none or missing.
  Fix https://github.com/plone/plone.app.contenttypes/issues/91
  [pbauer]

- PLIP #13705: Remove <base> tag.
  [frapell]


2.0.11 (2013-12-07)
-------------------

- Fix bug where the type editor's inline javascript was mangled by diazo.
  [davisagli]

- Fixed Add view URL of cloned content type.
  Refs http://dev.plone.org/ticket/13776.
  [thomasdesvenain]

- Add robot testing environment and first robot test.
  [cedricmessiant]

- Better string normalization when setting type id from type title
  (change accented or special characters with corresponding letters).
  [cedricmessiant]

- Show a warning when editing the default page of a folder.
  [davisagli]



2.0.10 (2013-09-16)
-------------------

- Fix determination of allowed types so it checks permission in
  the context of the original folder when inheriting allowed
  types.
  [davisagli]


2.0.9 (2013-08-13)
------------------

- Add documentation for defaultFactory tag in XML ref.
  [smcmahon]

- Removed line breaks within documentation URLs in modeleditor.py.
  [smcmahon]

- Fixed XML export so that GenericSetup's parser can successfully parse it
  later on at install time.
  [zupo]

- Use @@ploneform-render-widget to render widgets in display mode.
  [cedricmessiant]

- Call the IBasic description field 'Summary' and give it
  help text that is actually helpful.
  [davisagli]

- Don't show the 'Allow Discussion' field on an item's default view.
  [davisagli]


2.0.8 (2013-05-23)
------------------

- Add XML Model Editor based on plone.resourceditor. If plone.resourceditor
  is available, this is exposed by an "Edit XML Field Model" button on
  the fields tab of a content type -- if the content type is editable TTW.
  [smcmahon]

- Added catalan translations [sneridagh]


2.0.7 (2013-04-09)
------------------

- Fix bug in determining whether to show the allowed contained type
  fields.
  [ericof]

- Let the behavior INameFromFileName also set the title from the filename
  if the type has such a field and it is left empty.
  [pbauer]

- Updated french translations.
  [thomasdesvenain]


2.0.6 (2013-04-06)
------------------

- Add missing translation strings.
  [vincentfretin]


2.0.5 (2013-04-06)
------------------

- Updated pt_BR translation [ericof]


2.0.4 (2013-03-05)
------------------

- Add zh_TW translation [TsungWei Hu]

- Add support for constraining container allowed content types using
  the "Restrictions" form in the add menu.  Merged from Patrick
  Gerken's (@do3cc) work in plone.app.contenttypes.
  [rpatterson]

- When a new type is added, redirect to the fields tab as the next view.
  [davisagli]

- Don't show the short name as a field on the type overview page.
  [davisagli]

- Remove the 'Container' checkbox when adding a new type, and default
  to creating a container.
  [davisagli]

- Tweaks to type control panel based on user testing.
  [davisagli]

- Set default language for a new content item based on the language of
  its container.
  [frapell]

- Fixed i18n of "Contents" in folder default view.
  [vincentfretin]

- Added Ukrainian translations
  [kroman0]


2.0.3 (2013-01-17)
------------------

- Nothing changed yet.


2.0.2 (2013-01-01)
------------------

- Added French translations
  [cedricmessiant]

- The behavior controlpanel now correctly invalidates any modified FTIs.
  [malthe]

- I18n improved by adding many missing strings
  [giacomos]

- better graphical integration in the control panel
  [giacomos]

- Allow discussion behavior added.
  [timo]


2.0.1 (2012-08-31)
------------------

- Update MANIFEST.in to correct packaging error.
  [esteele]


2.0 (2012-08-30)
----------------

- DC metadata fields are now correctly encoded and decoded (from byte
  strings to unicode and vice versa). Currently, UTF-8 is assumed.
  [malthe]

- Use lxml instead of elementtree.
  [davisagli]

- Use ViewPageTemplateFile from zope.browserpage.
  [hannosch]

- Add upgrade step to make sure that only uninstalling plone.app.intid will
  remove the intids utility.
  [davisagli]

- Fix traversal over the types context so that skin items used by widgets
  can be acquired.
  [davisagli]

- Provide an ``additionalSchemata`` property on the schema context so the
  schema editor can include a preview of fields from behaviors.
  [davisagli]

- Give a more explicit warning before deleting content types that have existing
  instances.
  [davisagli]

- Add validation to prevent giving a type the same name as an existing type.
  [davisagli]

- Make sure the title and description of new FTIs are stored encoded,
  and with a default i18n domain of 'plone'.
  [davisagli]

- Add overview tab for each type in the control panel.
  [davisagli]

- Added Sphinx source for the Dexterity Developer manual.
  [giacomos]

- Added Italian translation.
  [giacomos]

- Internationalized content type settings pages,
  I18N fixes,
  messages extraction,
  French translations.
  [thomasdesvenain]

- Added Spanish translation.
  [hvelarde]

- Install the profile from collective.z3cform.datetimewidget to enable the
  Jquery Tools date picker for date/time fields.
  [davisagli]

- Bugfix: Make sure type short names are validated.
  [davisagli]

- Bugfix: Fix display of type descriptions in the types control panel.
  [davisagli]

- Bugfix: Make sure subject can still be retrieved as unicode for the
  categorization behavior now that the Subject accessor returns a bytestring.
  [davisagli]

- Add intro message to Dexterity control panel.
  [jonstahl, davisagli]

- Grok support is now an optional "grok" extra. Use this if you want
  ``five.grok``, ``plone.directives.form``, and ``plone.directives.dexterity``.
  See the release notes for more information. The behaviors in this package
  were updated to work without using grok.
  [davisagli]

- plone.formwidget.autocomplete and plone.formwidget.contenttree are no longer
  included by default. See the release notes for more information.
  [davisagli]

- Moved the 'Related Items' behavior to plone.app.relationfield.
  plone.app.relationfield is no longer installed as a dependency. See the
  release notes for more information including how to update your package if it
  depends on relation support or the 'Related Items' behavior.
  IMPORTANT: You must install plone.app.relationfield on sites that are being
  upgraded from Dexterity 1.0 to Dexterity 2.0, or the site will break.
  [davisagli]

- Converted tests to plone.app.testing-based setup. The old PloneTestCase-based
  test case classes and layer are now deprecated.
  [davisagli]

- Remove ++resource++plone.app.dexterity.overlays.css from the CSS registry.
  [davisagli]

- Removed support for Plone 3 / CMF 2.1 / Zope 2.10.
  [davisagli]

- Update dependencies and imports as appropriate for Zope 2.12 & Zope 2.13
  [davisagli]

- Remove CDATA section from "browser\types_listing.pt" (in HTML5: allowed only in SVG/MathML namespaces).
  [kleist]

1.0 - 2011-05-20
----------------

- Fix publishing dates DateTime/datetime conversions so as not to drift by the
  timezone delta every save.
  [elro]

- Make sure cloned types get a new factory.
  [davisagli]

- Don't override overlay CSS in Plone 4.
  [davisagli]

- Fixed cloning of types with a period (.) in their short name.
  [davisagli]

- Allow specifying a type's short name when adding a type.
  [davisagli]

- Make sure the Basic metadata adapter accesses the content's title attribute
  directly so it doesn't get encoded. Also make sure encoded data can't be set
  via this adapter.
  [davisagli]

1.0rc1 - 2011-04-30
-------------------

- Added upgrade step to install new javascript from
  plone.formwidget.autocomplete
  [davisagli]

- Added basic support for making TTW changes to schemas defined in filesystem
  models and code. (Note: This feature will not actually work until some further
  changes are completed in plone.dexterity.)

  In order to support this change, the event handling to serialize schema changes
  was revised. We now register a single event handler for the SchemaModifiedEvent
  raised for the schema context. This allows us to keep track of the FTI
  that changes need to be serialized to on the schema context. The
  serializeSchemaOnFieldEvent and serializeSchemaOnSchemaEvent handlers were
  removed from the serialize module and replaced by serializeSchemaContext. The
  serializeSchema helper remains but is deprecated.
  [davisagli]

- Add MANIFEST.in.
  [WouterVH]

- Add "export" button to types editor. Exports GS-style zip archive of type
  info for selected types.
  [stevem]

- Fix old jquery alias in types_listing.pt. This closes
  http://code.google.com/p/dexterity/issues/detail?id=159
  [davisagli]

- Make display templates fill content-core on Plone 4.
  [elro]

- Add ids to the group fieldsets on display forms.
  [elro]

- Exclude from navigation behavior should be restricted to IDexterityContent.
  [elro]


1.0b4 - 2011-03-15
------------------

- Add a "Name from file name" behavior.
  [elro]

- Remove the NameFromTitle behavior factory, it is not necessary.
  [elro]

- Add "Next previous navigation" and "Next previous navigation toggle"
  behaviors.
  [elro]

- Add an "Exclude from navigation" behavior.
  [lentinj]

- Put the folder listing within a fieldset.
  [lentinj]


1.0b3 - 2011-02-11
------------------

- Add a navigation root behavior.
  [elro]

- Fix decoding error when an encoded description is stored in the FTI.
  [davisagli]

- Avoid empty <div class="field"> tag for title and description in
  item.pt and container.pt.
  [gaudenzius]

- Add locales structure for translations with cs , de, es, eu, fr, ja, nl, pt_BR
  [toutpt]

- Update french translation
  [toutpt]


1.0b2 - 2010-08-05
------------------

- Fix several XML errors in templates. Needed for Chameleon compatibility.
  [wichert]

- cloning a type through the dexterity UI in the control panel did not work
  if the type had a hyphen in it's name. This fixes
  http://code.google.com/p/dexterity/issues/detail?id=126
  [vangheem]


1.0b1 - 2010-04-20
------------------

- Require plone.app.jquerytools for the schema editor UI, and make sure it is
  installed when upgrading.
  [davisagli]

- Remove unused schemaeditor.css.
  [davisagli]

- Omit the metadata fields except on edit and add forms.
  [davisagli]

- Enable the "Name from title" behavior for new types, by default.
  [davisagli]

- Include plone.formwidget.namedfile so that File upload and Image fields are
  available out of the box.  You must explicitly include z3c.blobfile in your
  environment if you want blob-based files.
  [davisagli]

- Added a DexterityLayer that can be used in tests.
  [davisagli]

- Fix issue with the BehaviorsForm accidentally polluting the title of the
  z3c.form EditForm 'Apply' button.
  [davisagli]

- Add upgrades folder and make sure plone.app.z3cform profile gets installed
  on upgrades from previous versions of Dexterity.
  [davisagli]

- Depend on the plone.app.z3cform profile, to make sure the Plone browser layer
  for z3c.form gets installed.
  [davisagli]

- Avoid relying on acquisition to get the portal_url for links in the type
  listing table.
  [davisagli]


1.0a7 - 2010-01-08
------------------

- Make sure the Dublin Core fieldsets appear in the same order as they
  do in AT content.
  [davisagli]

- Make sure the current user is loaded as the default creator for the
  IOwnership schema in an add form.
  [davisagli]

- Include behavior descriptions on the behavior edit tab.
  [davisagli]

- IBasic behavior: set missing_value of description-field to u'' . The
  description should never be None (live_search would not work any more).
  [jbaumann]

- Fix issue where traversing to a nonexistent type name in the types control
  panel did not raise NotFound.
  [davisagli]

- Make it possible to view the fields of non-editable schemata.
  [davisagli]

- Tweaks to the tabbed_forms template used for the types control panel.
  [davisagli]


1.0a6 - 2009-10-12
------------------

- Add plone.app.textfield as a dependency. We don't use it directly in this
  package, but users of Dexterity should have it installed and available.
  [optilude]

- Use some default icons for new types.
  [davisagli]

- Show type icons in type listing if available.
  [davisagli]

- Removed 'container' field from the types listing in the control panel
  (it wasn't working).
  [davisagli]

- Add message factories to titles and descriptions of metadata schema fields.
  Fixes http://code.google.com/p/dexterity/issues/detail?id=75.
  [optilude]

- Patch listActionInfos() instead of listActions() in order to get the
  folder/add category into the actions list. This avoids a problem with
  the 'actions.xml' export handler exporting the folder/add category
  incorrectly. Fixes http://code.google.com/p/dexterity/issues/detail?id=78
  [optilude]


1.0a5 - 2009-07-26
------------------

- Explicitly include overrides.zcml from plone.app.z3cform.
  [optilude]


1.0a4 - 2009-07-12
------------------

- Changed API methods and arguments to mixedCase to be more consistent with
  the rest of Zope. This is a non-backwards-compatible change. Our profuse
  apologies, but it's now or never. :-/

  If you find that you get import errors or unknown keyword arguments in your
  code, please change names from foo_bar too fooBar, e.g. serialize_schema()
  becomes serializeSchema().
  [optilude]


1.0a3 - 2009-06-07
------------------

- Updated use of <plone:behavior /> directive to match plone.behavior 1.0b4.
  [optilude]


1.0a2 - 2009-06-01
------------------

- Remove superfluous <includeOverrides /> in configure.zcml which would cause
  a problem when the package is loaded via z3c.autoinclude.plugin
  [optilude]


1.0a1 - 2009-05-27
--------------------

- Initial release

.. _`dexterity#183`: https://github.com/plone/plone.app.dexterity/issues/183

.. _`CMFPlone#895`: https://github.com/plone/Products.CMFPlone/issues/895
.. _`CMFPlone#1013`: https://github.com/plone/Products.CMFPlone/issues/1013
.. _`CMFPlone#1027`: https://github.com/plone/Products.CMFPlone/issues/1027
.. _`CMFPlone#1151`: https://github.com/plone/Products.CMFPlone/issues/1151
.. _`CMFPlone#1207`: https://github.com/plone/Products.CMFPlone/issues/1207

            

Raw data

            {
    "_id": null,
    "home_page": "http://plone.org/products/dexterity",
    "name": "plone.app.dexterity",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "plone ttw dexterity schema interface",
    "author": "Martin Aspeli, David Glick, et al",
    "author_email": "dexterity-development@googlegroups.com",
    "download_url": "https://files.pythonhosted.org/packages/26/fe/7190f479b6ff8f288fe2b877f09c2045e68abde0d29205427584015874fd/plone_app_dexterity-4.0.2.tar.gz",
    "platform": null,
    "description": ".. contents:: Table of Contents\n\n.. note:: ``2.1.1`` is the last Plone 4 compatible release.\n\n\nIntroduction\n============\n\nDexterity wants to make some things really easy. These are:\n\n* Create a \"real\" content type entirely through-the-web without having to\n  know programming.\n* As a business user, create a schema using visual or through-the-web tools,\n  and augment it with adapters, event handlers, and other Python code written\n  on the filesystem by a Python programmer.\n* Create content types in filesystem code quickly and easily, without losing\n  the ability to customise any aspect of the type and its operation later if\n  required.\n* Support general \"behaviours\" that can be enabled on a custom type in a\n  declarative fashion. Behaviours can be things like title-to-id naming,\n  support for locking or versioning, or sets of standard metadata with\n  associated UI elements.\n* Easily package up and distribute content types defined through-the-web, on\n  the filesystem, or using a combination of the two.\n\nPhilosophy\n==========\n\nDexterity is designed with a specific philosophy in mind. This can be\nsummarised as follows:\n\nReuse over reinvention\n  As far as possible, Dexterity should reuse components and technologies that\n  already exist. More importantly, however, Dexterity should reuse concepts that\n  exist elsewhere. It should be easy to learn Dexterity by analogy, and to work\n  with Dexterity types using familiar APIs and techniques.\n\nSmall over big\n  Mega-frameworks be damned. Dexterity consists of a number of specialised\n  packages, each of which is independently tested and reusable. Furthermore,\n  packages should have as few dependencies as possible, and should declare their\n  dependencies explicitly. This helps keep the design clean and the code\n  manageable.\n\nNatural interaction over excessive generality\n  The Dexterity design was driven by several use cases that express the way in\n  which we want people to work with Dexterity. The end goal is to make it easy\n  to get started, but also easy to progress from an initial prototype to a\n  complex set of types and associated behaviours through step-wise learning and\n  natural interaction patterns. Dexterity aims to consider its users - be they\n  business analysts, light integrators or Python developers, and be they new or\n  experienced - and cater to them explicitly with obvious, well-documented,\n  natural interaction patterns.\n\nReal code over generated code\n  Generated code is difficult to understand and difficult to debug when it\n  doesn't work as expected. There is rarely, if ever, any reason to scribble\n  methods or 'exec' strings of Python code.\n\nZope 3 over Zope 2\n  Although Dexterity does not pretend to work with non-CMF systems, as many\n  components as possible should work with plain Zope 3, and even where there are\n  dependencies on Zope 2, CMF or Plone, they should - as far as is practical -\n  follow Zope 3 techniques and best practices. Many operations (e.g. managing\n  objects in a folder, creating new objects or manipulating objects through a\n  defined schema) are better designed in Zope 3 than they were in Zope 2.\n\nZope concepts over new paradigms\n  We want Dexterity to be \"Zope-ish\". Zope is a mature, well-designed (well,\n  mostly) and battle tested platform. We do not want to invent brand new\n  paradigms and techniques if we can help it.\n\nAutomated testing over wishful thinking\n  \"Everything\" should be covered by automated tests. Dexterity necessarily has a\n  lot of moving parts. Untested moving parts tend to come loose and fall on\n  people's heads. Nobody likes that.\n\nGetting started\n===============\n\nPlease read the `installation guide`_ to get Dexterity up and running.\n\n.. _`installation guide`: http://docs.plone.org/external/plone.app.dexterity/docs/install.html\n\nThen log in to Plone, go to Site Setup, and go to the ``Dexterity Types``\ncontrol panel to get started creating content types through the web.\n\nOr read the `Dexterity Developer Manual`_ to get started developing\nDexterity content types on the filesystem.\n\nThe 2.0.x release series of Dexterity is compatible with\nand included with Plone 4.3.\n\nUpgrading\n=========\n\nIf you are upgrading from a previous release of Dexterity, you need to:\n\n1. Update your buildout with the new versions (or extend the updated KGS),\n   and re-run it.\n2. Restart Zope.\n3. Go to the Add-ons control panel in Plone Site Setup, and run the\n   upgrade steps for \"Dexterity Content Types\" if there are any available.\n\nDocumentation\n=============\n\nVarious documentation is available:\n\n* `Dexterity Developer Manual`_\n* `How to create reusable behaviors for Dexterity types`_\n\n.. _`Dexterity Developer Manual`: http://docs.plone.org/external/plone.app.dexterity/docs/index.html\n.. _`How to create reusable behaviors for Dexterity types`: http://docs.plone.org/external/plone.app.dexterity/docs/behaviors/index.html\n\nThe following documents are not Dexterity-specific, but will likely be useful\nto users of Dexterity:\n\n* `Schema-driven forms manual`_\n\n.. _`Schema-driven forms manual`: http://docs.plone.org/develop/addons/schema-driven-forms/index.html\n\n\nIssue tracker\n=============\n\nPlease report issues via the `Plone issue tracker`_.\n\n.. _`Plone issue tracker`: https://github.com/plone/plone.app.dexterity/issues\n\nSupport\n=======\n\nDexterity use questions may be answered via `Plone's support channels`_.\n\n.. _`Plone's support channels`: http://plone.org/support\n\nContributing\n============\n\nContributors please read the document `Process for Plone core's development <https://docs.plone.org/develop/coredev/docs/index.html>`_\n\nSources are at the `Plone code repository hosted at Github <https://github.com/plone/plone.app.dexterity>`_.\n\nDexterity wouldn't be possible without the hard work of a lot of people, including:\n\n* Martin Aspeli\n* Jian Aijun\n* Wichert Akkerman\n* Jonas Baumann\n* David Brenneman\n* Joel Burton\n* Vincent Fretin\n* Rok Garbas\n* Anthony Gerrard\n* Nathan van Gheem\n* David Glick\n* Craig Haynal\n* Wouter Vanden Hove\n* Jean-Michel Francois\n* Jim Fulton\n* Jamie Lentin\n* Alex Limi\n* Steve McMahon\n* Jason Mehring\n* Alec Mitchell\n* Daniel Nouri\n* Ross Patterson\n* Maurits van Rees\n* Lennart Regebro\n* Laurence Rowe\n* Israel Saeta Perez\n* Hanno Schlichting\n* Christian Schneider\n* Carsten Senger\n* Jon Stahl\n* Eric Steele\n* Gaudenz Steinlin\n* Dorneles Tremea\n* Sean Upton\n* Sylvain Viollon\n* Matthew Wilkes\n* Matt Yoder\n* Andi Zeidler\n* Hector Velarde\n* Giacomo Spettoli\n* Jens Klein\n\n(Please add your name if we have neglected to.)\n\nRelease Notes\n=============\n\nDexterity 2.0 is a major release of Dexterity. It has focused on getting\nDexterity included in Plone core, by cleaning things up and making\ndependencies that are not ready for primetime optional.\n\nGrok-style configuration no longer included by default\n------------------------------------------------------\n\nDexterity 1.0 included ``five.grok`` to allow configuring components via\nPython directives rather than in separate XML-based ZCML files.  It also\nincluded two packages, ``plone.directives.form`` and\n``plone.directives.dexterity``, to provide some grok-style directives for\nDexterity-specific features.\n\nThe Dexterity authors still like grok and believe it makes it easier to learn\nhow to customize Plone.  However, it has been turned into an optional feature\nso that Dexterity has a chance to enter Plone core even if the Plone framework\nteam doesn't want to add grok to the already complex stack.\n\nTo include these three grok-related packages when you install Dexterity,\nenable the \"grok\" extra::\n\n  [instance]\n  eggs =\n      plone.app.dexterity [grok]\n\nBy the way, a number of schema directives from ``plone.directives.form`` that\nused to require grok to work have been reimplemented so that they work without\ngrok. In particular, the ``Schema`` class and the ``model``, ``fieldset``,\nand ``primary`` directives were moved to ``plone.supermodel.model``. The\n``omitted``, ``no_omit``, ``mode``, ``widget``, ``order_before``,\n``order_after``, ``read_permission``, and ``write_permission`` directives were\nmoved to ``plone.autoform.directives``.  There are aliases in the old locations\nso you don't need to update existing code, but you can switch to the new\nlocations if you're trying to avoid depending on grok.\n\nRelation support no longer included by default\n----------------------------------------------\n\nDexterity 1.0 included support for object relations based on the zc.relation\ncatalog and plone.app.relationfield, as well as a behavior\n(``plone.app.dexterity.behaviors.related.IRelatedItems``) providing a\ngeneric list of related items based on that implementation.\n\nSince this feature was added to Dexterity, we discovered that it will be hard\nto support this type of relation well in Zope 2 until Zope 2 is setting\n__parent__ pointers everywhere. In addition, we encountered some problems with\nusing interfaces as keys in the zc.relation catalog. And Dexterity gained\nsupport for the Archetypes reference engine in\n``plone.app.referenceablebehavior``. As a result of these factors, the\nzc.relation approach to object relationships will not be included in Dexterity or Plone core for the time being.\n\nVERY IMPORTANT: If you are upgrading a site with Dexterity 1.0 to Dexterity\n2.0, it will break unless you install plone.app.relationfield, since your\ndatabase contains persistent intid and relations utilities. The easiest way\nto include plone.app.relationfield is to install plone.app.dexterity with\nthe \"relations\" extra::\n\n  [instance]\n  eggs =\n      plone.app.dexterity [relations]\n\nUsing relations via plone.app.relationfield\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nIf you were relying on the support for relations, you can re-enable support\nby installing the ``plone.app.relationfield`` package. You need to add it to\nyour package's install_requires in setup.py::\n\n  install_requires=[\n      'plone.app.relationfield',\n      ]\n\nMake sure your package is including its ZCML in configure.zcml::\n\n  <include package=\"plone.app.relationfield\" />\n\nAnd install its GenericSetup profile as a dependency in your package's metadata.xml::\n\n  <dependencies>\n    <dependency>profile-plone.app.relationfield:default</dependency>\n  </dependencies>\n\nIf you have any content types using the IRelatedItems behavior, you should\nupdate them to import the behavior from the new location::\n\n  <property name=\"behaviors\">\n      <element value=\"plone.app.relationfield.behavior.IRelatedItems\" />\n  </property>\n\nContent tree and Autocomplete widgets no longer included by default\n-------------------------------------------------------------------\n\nIn Dexterity 1.0, the widgets in ``plone.formwidget.autocomplete`` and\n``plone.formwidget.contenttree`` were installed as dependencies of\n``plone.app.dexterity``. In Dexterity 2.0 they are no longer installed\nby default, because they are not used by any of the included behaviors\nor made available via the through-the-web content type editor at this\ntime.\n\nIf you use these widgets, make sure your package lists them as\ndependencies in setup.py, loads their ZCML in configure.zcml, and\nactivates their GenericSetup profiles as dependencies in metadata.xml.\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\n4.0.2 (2024-10-23)\n------------------\n\nInternal:\n\n\n- Update configuration files.\n  [plone devs]\n\n\nTests\n\n\n- port robot tests [1letter] (#393)\n\n\n4.0.1 (2024-09-03)\n------------------\n\nBreaking changes:\n\n\n- `plone.app.discussion` is now a core addon.\n  The `plone.discussion` behavior class was moved over there.\n  This is the real reason that 4.0.0 was a breaking release: this is for Plone 6.1 only.\n  [@jensens] (#371)\n\n\n4.0.0 (2024-05-30)\n------------------\n\nBug fixes:\n\n\n- Remove a DeprecationWarning from a moved p.a.z3cform.widgets import. [@jensens] (#387)\n\n\nInternal:\n\n\n- Update configuration files.\n  [plone devs] (6e36bcc4)\n\n\n3.2.0 (2023-11-03)\n------------------\n\nInternal:\n\n\n- Make the dependency on ``plone.app.content`` conditional.\n  This is for ``INameFromTitle``, which we want to move to ``plone.base``.\n  [maurits] (#3858)\n\n\n3.1.2 (2023-10-25)\n------------------\n\nInternal:\n\n\n- Update configuration files.\n  [plone devs] (55bda5c9)\n- Move some tests to `plone.app.content` to avoid\n  a circular dependency with that package.\n  [gforcada] (#3858)\n\n\n3.1.1 (2023-05-22)\n------------------\n\nBug fixes:\n\n\n- Fix transitive circular dependency on `plone.app.layout`.\n  Use moved imports in `plone.base`.\n  Move `plone.app.layout.nextprevious.interfaces.INextPreviousProvider` to `.behaviors.nextprevious`.\n  Move defaultpage warning viewlet to `plone.app.layout`.\n  [@jensens] (fix-circular-dep-palayout)\n\n\n3.1.0 (2023-05-08)\n------------------\n\nNew features:\n\n\n- Content types control panel: Show behavior name and interface. @ksuess, @stevepiercy (#363)\n\n\n3.0.5 (2023-04-14)\n------------------\n\nBug fixes:\n\n\n- Fix for searchable Named(Blob)File indexer. Safely convert to str.\n  [petschki] (#362)\n\n\nInternal:\n\n\n- Update configuration files.\n  [plone devs] (#47959565)\n\n\n3.0.4 (2023-02-08)\n------------------\n\nBug fixes:\n\n\n- Restore and deprecate \"ModelEditorView.modelSource\".\n  It will be removed in Plone 7.\n  [thet] (#359)\n- Deprecate ModelEditorView.escaped_model_source which is not needed anymore.\n  It will be removed in Plone 7.\n  [thet] (#359)\n- Use the tal engine to escape HTML via non-structure variable insertion.\n  [thet] (#359)\n\n\n3.0.3 (2022-12-12)\n------------------\n\nBug fixes:\n\n\n- Modeleditor: Don't double escape the xml.\n\n  Use the page template's structure keyword when inserting the escaped HTML into\n  the modeleditor's textarea. This allows the source code pattern to properly\n  parse and display the XML for editing.\n\n  Fixes: #357 (#358)\n\n\n3.0.2 (2022-12-10)\n------------------\n\nBug fixes:\n\n\n- Fix ``XMLSyntaxError`` when saving model source in the modeleditor.\n  [maurits] (#3695)\n\n\n3.0.1 (2022-12-02)\n------------------\n\nBug fixes:\n\n\n- Remove deprecated imports from ``plone.app.widgets``\n  [petschki] (#355)\n\n\n3.0.0 (2022-12-02)\n------------------\n\nBug fixes:\n\n\n- Final release for Plone 6.0.0. (#600)\n\n\n3.0.0b2 (2022-10-04)\n--------------------\n\nBug fixes:\n\n\n- Fix folder_listing to show the content ID if no title is available. [jensens] (#353)\n\n\n3.0.0b1 (2022-07-21)\n--------------------\n\nBug fixes:\n\n\n- Tests: add names to behaviors.\n  [maurits] (#169)\n\n\n3.0.0a11 (2022-05-24)\n---------------------\n\nBug fixes:\n\n\n- Rename \"Dexterity Content Types\" to just \"Content Types\"\n  [tisto] (#331)\n- Don't acquire language from portal root default_language for ICategorization.language.\n  Fixes https://github.com/plone/plone.app.dexterity/issues/258\n  [jaroel] (#350)\n\n\n3.0.0a10 (2022-05-09)\n---------------------\n\nBreaking changes:\n\n\n- Code Style: isort + black.\n  Pyupgrade and six removal.\n  Short name usage of behaviors in tests.\n  Sleep in editing.rst reduced (saves 10sec in tests).\n  Use plone.base.\n  [jensens] (#348)\n\n\nBug fixes:\n\n\n- Make compatible with robotframework 3-5.\n  [maurits] (#5)\n- Replaced use of ``plone.api``.\n  That should not be done in Plone core.\n  [maurits] (#346)\n- Better naming and description of `plone.textindexer` in behaviors control panel.\n  [jensens] (#347)\n\n\n3.0.0a9 (2022-04-07)\n--------------------\n\nBreaking changes:\n\n\n- Remove JavaScript from this package and move it to Mockup.\n  [thet]\n\n  Modeleditor: Use pat-code-editor from Patternslib instead ACE.\n  Make the model editing form usable without JavaScript.\n  Allow editing the form even with XML errors to be able to fix the problem.\n  [thet] (#334)\n\n\nNew features:\n\n\n- PLIP 2780: Move features of collective.dexteritytextindexer to core.\n  [zworkb] (#2780)\n\n\nBug fixes:\n\n\n- Remove deprecation warnings after PLIP 3395, some black & isort, some six removal.\n  [jensens] (#345)\n- Modeleditor: when there is no model_source yet, show the model_file.\n  [maurits] (#3473)\n\n\n3.0.0a8 (2022-02-24)\n--------------------\n\nBug fixes:\n\n\n- Update the new type icon to svg, the old one was png and the expression as url does not work anymore (must be a icon resolver compatible name).\n  [yurj] (#340)\n\n\n3.0.0a7 (2022-01-28)\n--------------------\n\nBug fixes:\n\n\n- Depend on `plone.namedfile` core instead of its empty `[scales]` extra.\n  [maurits] (#106)\n\n\n3.0.0a6 (2022-01-19)\n--------------------\n\nBug fixes:\n\n\n- Fix warning about legacy version specifiers in setup.py.\n  [maurits] (#337)\n\n\n3.0.0a5 (2022-01-07)\n--------------------\n\nBug fixes:\n\n\n- Use the shared 'Plone test setup' and 'Plone test teardown' keywords in Robot tests.\n  [Rotonen] (#292)\n- Fix form text.\n  [agitator] (#336)\n\n\n3.0.0a4 (2021-11-23)\n--------------------\n\nBug fixes:\n\n\n- Rename \"Dexterity Content Types\" to just \"Content Types\"\n  [timo] (#331)\n- Fix broken test for https://github.com/plone/plone.app.contenttypes/pull/624\n  [agitator] (#333)\n\n\n3.0.0a3 (2021-09-15)\n--------------------\n\nBug fixes:\n\n\n- Remove cyclic dependency with Products.CMFPlone\n  [ericof] (#329)\n\n\n3.0.0a2 (2021-08-04)\n--------------------\n\nBug fixes:\n\n\n- Update documentation. (#1)\n\n\n3.0.0a1 (2021-04-20)\n--------------------\n\nBreaking changes:\n\n\n- Update for Plone 6 with Bootstrap markup\n  [petschki, agitator] (#322)\n\n\n2.6.9 (2021-01-08)\n------------------\n\nBug fixes:\n\n\n- Fix the constraint types mode calculation, disabling acquisition and gracefully checking for the existence of a portal type attribute in the container (#319)\n\n\n2.6.8 (2020-11-17)\n------------------\n\nBug fixes:\n\n\n- For increased security, in the modeleditor do not resolve entities, and remove processing instructions.\n  [maurits] (#3209)\n\n\n2.6.7 (2020-10-30)\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, maurits] (#313)\n\n\n2.6.6 (2020-09-21)\n------------------\n\nBug fixes:\n\n\n- Do not require nextPreviousEnabled (#312)\n\n\n2.6.5 (2020-04-15)\n------------------\n\nBug fixes:\n\n\n- Make sure getNextItem function returns None if position can not be looked up. [timo] (#308)\n\n\n2.6.4 (2019-11-25)\n------------------\n\nBug fixes:\n\n\n- Use https links to documentation. [vincentfretin] (#299)\n- Update documentation introduction w/r/t archetypes (#301) (#302)\n- Fix mr.bob command in documentation (#305)\n\n\n2.6.3 (2019-06-27)\n------------------\n\nBug fixes:\n\n\n- Update docu for creating dexterity behaviors (#281)\n- The @@behaviors form was wrongly encoding the added behavior names on Python3 [ale-rt] (#296)\n- Fix tests in Python 3.8 [pbauer] (#298)\n\n\n2.6.2 (2019-06-19)\n------------------\n\nBug fixes:\n\n\n- Update docu for creating dexterity behaviors (#281)\n\n\n2.6.1 (2019-05-21)\n------------------\n\nBug fixes:\n\n\n- Moved TTW creation of content types to use and add/remove named behaviors. [iham] (#290)\n- Improper naming issue resolved,IBasic.description must be IDublinCore.description\n  [Ritwik Agarwal] (#294)\n\n\n2.6.0 (2019-04-29)\n------------------\n\nNew features:\n\n\n- ``IWidgetsLayer`` is no longer needed, use ``IPloneFormLayer`` instead.\n  Import ``IFieldPermissionChecker`` from ``plone.app.z3cform`` instead of ``plone.app.widgets``.\n  [jensens] (#268)\n\n\nBug fixes:\n\n\n- Speed up traversal by marking main_template as a browser-view.\n  [pbauer] (#289)\n\n\n2.5.3 (2019-02-08)\n------------------\n\nBug fixes:\n\n\n- Release upload lock when name chooser fails. [maurits] (#276)\n- Import Type Profile fails because code was using StringIO instead of ByteIO\n  (#279)\n- Do not acquire ``constrain_types_mode`` from parent when not defined\n  [frapell] (#284)\n\n\n2.5.1 (2018-09-23)\n------------------\n\nBug fixes:\n\n- Remove bbb for MessageFactory import.\n  [jensens]\n\n- Python 3 fixes.\n  [jensens, pbauer]\n\n\n2.5.0 (2018-06-24)\n------------------\n\nNew features:\n\n- Add plone.schema>=1.1.0 as minimal dependency in setup.py.\n  [timo]\n\n- Add JSONField that has been added to plone.schema 1.1.0 to ALLOWED_FIELDS in types.py.\n  [timo]\n\n\n2.4.10 (2018-06-18)\n-------------------\n\nBug fixes:\n\n- Python 3 fixes.\n  [pbauer]\n\n\n2.4.9 (2018-04-03)\n------------------\n\nBug fixes:\n\n- Don't break if types are without widgets or groups.\n  Fixes an error with displaying TTW Dexterity types via plone.app.contenttypes full_view.\n  [thet]\n\n\n2.4.8 (2018-02-04)\n------------------\n\nBug fixes:\n\n- Do not fail in upgrade step or tests when portal_quickinstaller is not there.\n  [maurits]\n\n- Python 2 / 3 compatible imports.\n  [vincero]\n\n\n2.4.7 (2017-10-17)\n------------------\n\nBug fixes:\n\n- Make sure robot autologin test fixture is not accidentally torn down\n  when the Dexterity fixture's ZODB sandbox is reverted.\n  [davisagli]\n\n\n2.4.6 (2017-09-03)\n------------------\n\nBug fixes:\n\n- Uniformity with the \"Contributors\" label.\n  [arsenico13]\n\n\n2.4.5 (2017-08-27)\n------------------\n\nBug fixes:\n\n- Modernized the ``vocabularies`` documentation.\n  [jensens]\n\n\n2.4.4 (2017-07-03)\n------------------\n\nBug fixes:\n\n - The ``ICategorization`` behavior should only expose those content languages which\n   are configured instead of all available languages.\n   [thetet]\n\n2.4.3 (2017-06-26)\n------------------\n\nNew features:\n\n  add documentation for plone.app.contenttypes.behaviors.thumb_icon.IThumbIconHandling\n  see PLIP https://github.com/plone/Products.CMFPlone/issues/1734\n  [fgrcon]\n\nBug fixes:\n\n- The ``ICategorization`` behavior should only expose those content languages which are configured instead of all available languages.\n  [thet]\n\n- fix typo in deprecation message\n  [tkimnguyen]\n\n- Remove the transaction.begin call before creating a dx object,\n  remove the transaction.commit call after creating a dx object.\n  Fixes #243.\n  [ale-rt]\n\n\n2.4.2 (2017-05-24)\n------------------\n\nBug fixes:\n\n- Cleanup code of ``permissions.py`` (ZCA-decorator, reduce complexity)\n  [jensens]\n\n- Fix issue with field permissions check on add forms when the parent has no \"Modify portal content\" permission.\n  New: For add forms use the \"Add portal content\" permission as default field permission.\n  As great side effect vocabularies for i.e. AjaxSelectWidget from ``plone.app.content``,\n  which are using the check, are working on add forms in a context w/o \"Modify portal content\".\n  [jensens]\n- removed deprecated getIcon() from documentation\n  [fgrcon]\n\n- JavaScript formatting according to style guides.\n  [thet]\n\n\n2.4.1 (2017-03-26)\n------------------\n\nBug fixes:\n\n- Made exclude_from_nav optional. Fixed #101\n  [jaroel]\n\n\n2.4.0 (2017-02-12)\n------------------\n\nBreaking changes:\n\n- When setting the Description field, do not remove new lines but keep the input as-is.\n  Instead remove new lines in the plone.dexterity ``Description`` metadata accessor.\n  [thet]\n\nBug fixes:\n\n- Do not import ``IFileFactory`` in interfaces from plone.app.widgets.\n  It is only imported over there.\n  [jensens]\n\n- Fix tests when using zope.testbrowser 5.0 [davisagli]\n\n\n2.3.6 (2017-01-20)\n------------------\n\nNew features:\n\n- Add generic version of folder_listing view & macro. Only registered for\n  Plone 5.1, to avoid taking precedence over skin layer templates for\n  Archetypes content in Plone 5.0\n  [davisagli]\n\n\n2.3.5 (2016-11-18)\n------------------\n\nBug fixes:\n\n- Update code to follow Plone styleguide.\n  [gforcada]\n\n- Documentation: Add dexterity test example using a behavior.\n  [ramiroluz]\n\n- Add a generic version of the folder_listing view\n  so that the container view can use it even without plone.app.contenttypes\n  (such as in tests using the DEXTERITY_FIXTURE)\n  [davisagli]\n\n\n2.3.4 (2016-10-03)\n------------------\n\nBug fixes:\n\n- Replaced ``secureSend`` with ``send`` in documentation.\n  ``secureSend`` has long been deprecated.\n  [maurits]\n\n\n2.3.3 (2016-09-14)\n------------------\n\nBug fixes:\n\n- TTW behaviors selection of the name is now bound to the registration,\n  prior it was bound to the interface.\n  But interfaces may be used by more than one registered behavior.\n  [jensens]\n\n\n2.3.2 (2016-08-12)\n------------------\n\nBug fixes:\n\n- Use zope.interface decorator.\n  [gforcada]\n\nDocumentation changes:\n\n- Revised tutorial sections to use mr.bob and bobtemplates.plone rather than ZopeSkel.\n  [smcmahon]\n\n\n2.3.1 (2016-06-07)\n------------------\n\nBug fixes:\n\n- Removed ``dexterity-types`` from portal_actions.  This is set\n  correctly in ``controlpanel.xml``.\n  Issue https://github.com/plone/plone.app.dexterity/issues/218\n  [maurits]\n\n\n2.3.0 (2016-05-21)\n------------------\n\nNew features:\n\n- The defaults of exclude from navigation is now obtained from a contextaware default factory, which value is obtained from an adapter.\n  The default adapter returns False.\n  An alternative adapter which defaults to True is provided but not registered.\n  This change makes it possible to provide a custom context specific implementation.\n  [jensens]\n\n- Documentation: Shortnames added and some missing behaviors added.\n  [jensens]\n\nBug fixes:\n\n- Linebreaks in description are replaced with a space instead of vanishing it.\n  Thus an editor can use them w/o having word glued together afterwards.\n  [jensens]\n\n\n2.2.0 (2016-04-28)\n------------------\n\nNew:\n\n- Assign short names for all behaviors as supported by plone.behavior.\n  [jensens]\n\nFixes:\n\n- Remove dups from TTW behavior FTI editor.\n  [jensens]\n\n- Fix problem in ConstrainTypesBehavior:\n  when mode was ENABLED but only setLocallyAllowedTypes were set,\n  then getImmediatelyAddableTypes returned None,\n  but all consuming code expect it to return a list\n  [jensens]\n\n- Lookup of Content Type from MIME-Type for using right Plone Content Type to store Images (especially Tiff) correct as Images not Files.\n  [loechel]\n\n\n2.1.20 (2016-03-31)\n-------------------\n\nFixes:\n\n- Docs: Overhaul of chapter form-schema-hints.rst\n  [jensens]\n\n- Use the type ID in HTML classes in the type listing rather than titles.\n  [davidjb]\n\n\n2.1.19 (2016-02-26)\n-------------------\n\nFixes:\n\n- Rerelease due to possible brown bag release.  [maurits]\n\n\n2.1.18 (2016-02-26)\n-------------------\n\nFixes:\n\n- Make the form permission validator a bit more generic so it can be used\n  with non-AddForms.\n  [alecm]\n\n\n2.1.17 (2016-01-08)\n-------------------\n\nFixes:\n\n- Update event handler documentation.\n  [jensens]\n\n- Remove unused locales folder, translations are now in plone.app.locales.\n  [vincentfretin]\n\n\n2.1.16 (2015-12-03)\n-------------------\n\nFixes:\n\n- Fix wrong usage of MessageFactory\n  [jensens]\n\n- Use plone i18n domain\n  [gforcada]\n\n- Fix non existing self._request with schema.Choice value_type.\n  [pcdummy]\n\n\n2.1.15 (2015-10-28)\n-------------------\n\nNew:\n\n- Updated Traditional Chinese translation.\n  [l34marr]\n\n- Updated Brazil translations.\n  [claytonc]\n\nFixes:\n\n- Updated doc links in modeleditor.\n  Issue `CMFPlone#1027`_.\n  [pabo3000]\n\n- Fixed icons in dexterity types list.\n  Issues `CMFPlone#1013`_ and `CMFPlone#1151`_.\n  [fgrcon]\n\n- No longer rely on deprecated ``bobobase_modification_time`` from\n  ``Persistence.Persistent``.\n  [thet]\n\n- Fixed typos in german translation. Thx bierik for reporting in\n  Issue `dexterity#183`_.\n  [jensens]\n\n- Avoid re-adding the UUID on an upgrade step.\n  [gforcada]\n\n\n2.1.14 (2015-09-21)\n-------------------\n\n- Updated French translations.\n  [enclope]\n\n\n2.1.13 (2015-09-20)\n-------------------\n\n- Fixed issue with permission checker add form context.\n  Issue `CMFPlone#1027`_.\n  [alecm]\n\n- Fixed ace editor javascript reference.\n  Issue `CMFPlone#895`_.\n  [rodfersou]\n\n- Rerun i18ndude and updated German translation.\n  [pabo3000]\n\n\n2.1.12 (2015-09-15)\n-------------------\n\n- Remove unittest2 dependency.\n  [gforcada]\n\n\n2.1.11 (2015-09-11)\n-------------------\n\n- Updated basque translation\n  [erral]\n\n\n2.1.10 (2015-09-08)\n-------------------\n\n- Fix modeleditor for Plone 5\n  [vangheem]\n\n\n2.1.9 (2015-09-07)\n------------------\n\n- Restrict allowed field types to regular types (so plone.app.users do not show\n  up)\n  [ebrehault]\n\n\n2.1.8 (2015-08-20)\n------------------\n\n- Avoid ``DeprecationWarning`` for ``getIcon`` and ``splitSchemaName``.\n  [maurits]\n\n\n2.1.7 (2015-07-18)\n------------------\n\n- Remove duplicate plone.app.z3cform pin in setup.py. This fixes https://github.com/plone/plone.app.dexterity/issues/167.\n  [timo]\n\n- Fixed an adapter path at custom add forms documentation.\n  [brunobbbs]\n\n- Change the category of the configlet to 'plone-content'.\n  [sneridagh]\n\n- Unlock before changing id (fixes\n  https://github.com/plone/Products.CMFPlone/issues/623).\n  [pbauer]\n\n- Remove superfluous 'for'. Fixes plone/Products.CMFPlone#669.\n  [fulv]\n\n- Schemaeditor does not redirect anymore.\n  [barichu]\n\n\n2.1.6 (2015-06-05)\n------------------\n\n- change control panel title to be upper cased\n  [vangheem]\n\n- ignore protected fields when testing addability.\n  [ebrehault]\n\n- Update Japanese translation.\n  [terapyon]\n\n\n2.1.5 (2015-05-04)\n------------------\n\n- pat-modal pattern has been renamed to pat-plone-modal\n  [jcbrand]\n\n\n2.1.4 (2015-03-26)\n------------------\n\n- Add i18n:domain for Default Page Warning template.\n  [l34marr]\n\n- Update Traditional Chinese translation.\n  [l34marr]\n\n\n2.1.3 (2015-03-13)\n------------------\n\n- Code and docs housekeeping: pep8 et al, zca decorators, doc style.\n  [jensens]\n\n- Ensure the default creator value is a unicode string.\n  [lentinj]\n\n- Add facility to import type profiles in zip archives. Added button to\n  types edit page. Import format is identical to export.\n  [smcmahon]\n\n- Update markup and javascript for Plone 5.\n  [davisagli]\n\n- Fix the IDexterityContainer view to make use of plone.app.contenttype's new\n  listing view. Accessing it's macro needs the macro-caller's view variable set\n  to the new listing view.\n  [thet]\n\n\n2.1.2 (2014-10-23)\n------------------\n\n- Added transifex-client configuration for manage the translations\n  from Plone transifex organization [macagua].\n\n- Updated Spanish translation [flamelcanto, macagua].\n\n- Add validator to ensure expires date is after effective date.\n  [benniboy]\n\n- Remove line feeds and carriage returns from meta description and\n  added upgrade step to do it for existing content\n  [bosim]\n\n- Fixed issue.\n  Multiple (two or more) acquisition from parent was failing when\n  user didn't have add permission on parent.\n  [keul, cekk]\n\n\n2.1.1 (2014-04-13)\n------------------\n\n- Add behavior to let an item's id be edited from its edit form\n  (plone.app.dexterity.behaviors.id.ShortName).\n  [davisagli]\n\n- Cloning of types containing white space did not work, this commit\n  fixes that bug.\n  [bosim]\n\n\n2.1.0 (2014-03-01)\n------------------\n\n- Don't throw an error if allowed_content_types is none or missing.\n  Fix https://github.com/plone/plone.app.contenttypes/issues/91\n  [pbauer]\n\n- PLIP #13705: Remove <base> tag.\n  [frapell]\n\n\n2.0.11 (2013-12-07)\n-------------------\n\n- Fix bug where the type editor's inline javascript was mangled by diazo.\n  [davisagli]\n\n- Fixed Add view URL of cloned content type.\n  Refs http://dev.plone.org/ticket/13776.\n  [thomasdesvenain]\n\n- Add robot testing environment and first robot test.\n  [cedricmessiant]\n\n- Better string normalization when setting type id from type title\n  (change accented or special characters with corresponding letters).\n  [cedricmessiant]\n\n- Show a warning when editing the default page of a folder.\n  [davisagli]\n\n\n\n2.0.10 (2013-09-16)\n-------------------\n\n- Fix determination of allowed types so it checks permission in\n  the context of the original folder when inheriting allowed\n  types.\n  [davisagli]\n\n\n2.0.9 (2013-08-13)\n------------------\n\n- Add documentation for defaultFactory tag in XML ref.\n  [smcmahon]\n\n- Removed line breaks within documentation URLs in modeleditor.py.\n  [smcmahon]\n\n- Fixed XML export so that GenericSetup's parser can successfully parse it\n  later on at install time.\n  [zupo]\n\n- Use @@ploneform-render-widget to render widgets in display mode.\n  [cedricmessiant]\n\n- Call the IBasic description field 'Summary' and give it\n  help text that is actually helpful.\n  [davisagli]\n\n- Don't show the 'Allow Discussion' field on an item's default view.\n  [davisagli]\n\n\n2.0.8 (2013-05-23)\n------------------\n\n- Add XML Model Editor based on plone.resourceditor. If plone.resourceditor\n  is available, this is exposed by an \"Edit XML Field Model\" button on\n  the fields tab of a content type -- if the content type is editable TTW.\n  [smcmahon]\n\n- Added catalan translations [sneridagh]\n\n\n2.0.7 (2013-04-09)\n------------------\n\n- Fix bug in determining whether to show the allowed contained type\n  fields.\n  [ericof]\n\n- Let the behavior INameFromFileName also set the title from the filename\n  if the type has such a field and it is left empty.\n  [pbauer]\n\n- Updated french translations.\n  [thomasdesvenain]\n\n\n2.0.6 (2013-04-06)\n------------------\n\n- Add missing translation strings.\n  [vincentfretin]\n\n\n2.0.5 (2013-04-06)\n------------------\n\n- Updated pt_BR translation [ericof]\n\n\n2.0.4 (2013-03-05)\n------------------\n\n- Add zh_TW translation [TsungWei Hu]\n\n- Add support for constraining container allowed content types using\n  the \"Restrictions\" form in the add menu.  Merged from Patrick\n  Gerken's (@do3cc) work in plone.app.contenttypes.\n  [rpatterson]\n\n- When a new type is added, redirect to the fields tab as the next view.\n  [davisagli]\n\n- Don't show the short name as a field on the type overview page.\n  [davisagli]\n\n- Remove the 'Container' checkbox when adding a new type, and default\n  to creating a container.\n  [davisagli]\n\n- Tweaks to type control panel based on user testing.\n  [davisagli]\n\n- Set default language for a new content item based on the language of\n  its container.\n  [frapell]\n\n- Fixed i18n of \"Contents\" in folder default view.\n  [vincentfretin]\n\n- Added Ukrainian translations\n  [kroman0]\n\n\n2.0.3 (2013-01-17)\n------------------\n\n- Nothing changed yet.\n\n\n2.0.2 (2013-01-01)\n------------------\n\n- Added French translations\n  [cedricmessiant]\n\n- The behavior controlpanel now correctly invalidates any modified FTIs.\n  [malthe]\n\n- I18n improved by adding many missing strings\n  [giacomos]\n\n- better graphical integration in the control panel\n  [giacomos]\n\n- Allow discussion behavior added.\n  [timo]\n\n\n2.0.1 (2012-08-31)\n------------------\n\n- Update MANIFEST.in to correct packaging error.\n  [esteele]\n\n\n2.0 (2012-08-30)\n----------------\n\n- DC metadata fields are now correctly encoded and decoded (from byte\n  strings to unicode and vice versa). Currently, UTF-8 is assumed.\n  [malthe]\n\n- Use lxml instead of elementtree.\n  [davisagli]\n\n- Use ViewPageTemplateFile from zope.browserpage.\n  [hannosch]\n\n- Add upgrade step to make sure that only uninstalling plone.app.intid will\n  remove the intids utility.\n  [davisagli]\n\n- Fix traversal over the types context so that skin items used by widgets\n  can be acquired.\n  [davisagli]\n\n- Provide an ``additionalSchemata`` property on the schema context so the\n  schema editor can include a preview of fields from behaviors.\n  [davisagli]\n\n- Give a more explicit warning before deleting content types that have existing\n  instances.\n  [davisagli]\n\n- Add validation to prevent giving a type the same name as an existing type.\n  [davisagli]\n\n- Make sure the title and description of new FTIs are stored encoded,\n  and with a default i18n domain of 'plone'.\n  [davisagli]\n\n- Add overview tab for each type in the control panel.\n  [davisagli]\n\n- Added Sphinx source for the Dexterity Developer manual.\n  [giacomos]\n\n- Added Italian translation.\n  [giacomos]\n\n- Internationalized content type settings pages,\n  I18N fixes,\n  messages extraction,\n  French translations.\n  [thomasdesvenain]\n\n- Added Spanish translation.\n  [hvelarde]\n\n- Install the profile from collective.z3cform.datetimewidget to enable the\n  Jquery Tools date picker for date/time fields.\n  [davisagli]\n\n- Bugfix: Make sure type short names are validated.\n  [davisagli]\n\n- Bugfix: Fix display of type descriptions in the types control panel.\n  [davisagli]\n\n- Bugfix: Make sure subject can still be retrieved as unicode for the\n  categorization behavior now that the Subject accessor returns a bytestring.\n  [davisagli]\n\n- Add intro message to Dexterity control panel.\n  [jonstahl, davisagli]\n\n- Grok support is now an optional \"grok\" extra. Use this if you want\n  ``five.grok``, ``plone.directives.form``, and ``plone.directives.dexterity``.\n  See the release notes for more information. The behaviors in this package\n  were updated to work without using grok.\n  [davisagli]\n\n- plone.formwidget.autocomplete and plone.formwidget.contenttree are no longer\n  included by default. See the release notes for more information.\n  [davisagli]\n\n- Moved the 'Related Items' behavior to plone.app.relationfield.\n  plone.app.relationfield is no longer installed as a dependency. See the\n  release notes for more information including how to update your package if it\n  depends on relation support or the 'Related Items' behavior.\n  IMPORTANT: You must install plone.app.relationfield on sites that are being\n  upgraded from Dexterity 1.0 to Dexterity 2.0, or the site will break.\n  [davisagli]\n\n- Converted tests to plone.app.testing-based setup. The old PloneTestCase-based\n  test case classes and layer are now deprecated.\n  [davisagli]\n\n- Remove ++resource++plone.app.dexterity.overlays.css from the CSS registry.\n  [davisagli]\n\n- Removed support for Plone 3 / CMF 2.1 / Zope 2.10.\n  [davisagli]\n\n- Update dependencies and imports as appropriate for Zope 2.12 & Zope 2.13\n  [davisagli]\n\n- Remove CDATA section from \"browser\\types_listing.pt\" (in HTML5: allowed only in SVG/MathML namespaces).\n  [kleist]\n\n1.0 - 2011-05-20\n----------------\n\n- Fix publishing dates DateTime/datetime conversions so as not to drift by the\n  timezone delta every save.\n  [elro]\n\n- Make sure cloned types get a new factory.\n  [davisagli]\n\n- Don't override overlay CSS in Plone 4.\n  [davisagli]\n\n- Fixed cloning of types with a period (.) in their short name.\n  [davisagli]\n\n- Allow specifying a type's short name when adding a type.\n  [davisagli]\n\n- Make sure the Basic metadata adapter accesses the content's title attribute\n  directly so it doesn't get encoded. Also make sure encoded data can't be set\n  via this adapter.\n  [davisagli]\n\n1.0rc1 - 2011-04-30\n-------------------\n\n- Added upgrade step to install new javascript from\n  plone.formwidget.autocomplete\n  [davisagli]\n\n- Added basic support for making TTW changes to schemas defined in filesystem\n  models and code. (Note: This feature will not actually work until some further\n  changes are completed in plone.dexterity.)\n\n  In order to support this change, the event handling to serialize schema changes\n  was revised. We now register a single event handler for the SchemaModifiedEvent\n  raised for the schema context. This allows us to keep track of the FTI\n  that changes need to be serialized to on the schema context. The\n  serializeSchemaOnFieldEvent and serializeSchemaOnSchemaEvent handlers were\n  removed from the serialize module and replaced by serializeSchemaContext. The\n  serializeSchema helper remains but is deprecated.\n  [davisagli]\n\n- Add MANIFEST.in.\n  [WouterVH]\n\n- Add \"export\" button to types editor. Exports GS-style zip archive of type\n  info for selected types.\n  [stevem]\n\n- Fix old jquery alias in types_listing.pt. This closes\n  http://code.google.com/p/dexterity/issues/detail?id=159\n  [davisagli]\n\n- Make display templates fill content-core on Plone 4.\n  [elro]\n\n- Add ids to the group fieldsets on display forms.\n  [elro]\n\n- Exclude from navigation behavior should be restricted to IDexterityContent.\n  [elro]\n\n\n1.0b4 - 2011-03-15\n------------------\n\n- Add a \"Name from file name\" behavior.\n  [elro]\n\n- Remove the NameFromTitle behavior factory, it is not necessary.\n  [elro]\n\n- Add \"Next previous navigation\" and \"Next previous navigation toggle\"\n  behaviors.\n  [elro]\n\n- Add an \"Exclude from navigation\" behavior.\n  [lentinj]\n\n- Put the folder listing within a fieldset.\n  [lentinj]\n\n\n1.0b3 - 2011-02-11\n------------------\n\n- Add a navigation root behavior.\n  [elro]\n\n- Fix decoding error when an encoded description is stored in the FTI.\n  [davisagli]\n\n- Avoid empty <div class=\"field\"> tag for title and description in\n  item.pt and container.pt.\n  [gaudenzius]\n\n- Add locales structure for translations with cs , de, es, eu, fr, ja, nl, pt_BR\n  [toutpt]\n\n- Update french translation\n  [toutpt]\n\n\n1.0b2 - 2010-08-05\n------------------\n\n- Fix several XML errors in templates. Needed for Chameleon compatibility.\n  [wichert]\n\n- cloning a type through the dexterity UI in the control panel did not work\n  if the type had a hyphen in it's name. This fixes\n  http://code.google.com/p/dexterity/issues/detail?id=126\n  [vangheem]\n\n\n1.0b1 - 2010-04-20\n------------------\n\n- Require plone.app.jquerytools for the schema editor UI, and make sure it is\n  installed when upgrading.\n  [davisagli]\n\n- Remove unused schemaeditor.css.\n  [davisagli]\n\n- Omit the metadata fields except on edit and add forms.\n  [davisagli]\n\n- Enable the \"Name from title\" behavior for new types, by default.\n  [davisagli]\n\n- Include plone.formwidget.namedfile so that File upload and Image fields are\n  available out of the box.  You must explicitly include z3c.blobfile in your\n  environment if you want blob-based files.\n  [davisagli]\n\n- Added a DexterityLayer that can be used in tests.\n  [davisagli]\n\n- Fix issue with the BehaviorsForm accidentally polluting the title of the\n  z3c.form EditForm 'Apply' button.\n  [davisagli]\n\n- Add upgrades folder and make sure plone.app.z3cform profile gets installed\n  on upgrades from previous versions of Dexterity.\n  [davisagli]\n\n- Depend on the plone.app.z3cform profile, to make sure the Plone browser layer\n  for z3c.form gets installed.\n  [davisagli]\n\n- Avoid relying on acquisition to get the portal_url for links in the type\n  listing table.\n  [davisagli]\n\n\n1.0a7 - 2010-01-08\n------------------\n\n- Make sure the Dublin Core fieldsets appear in the same order as they\n  do in AT content.\n  [davisagli]\n\n- Make sure the current user is loaded as the default creator for the\n  IOwnership schema in an add form.\n  [davisagli]\n\n- Include behavior descriptions on the behavior edit tab.\n  [davisagli]\n\n- IBasic behavior: set missing_value of description-field to u'' . The\n  description should never be None (live_search would not work any more).\n  [jbaumann]\n\n- Fix issue where traversing to a nonexistent type name in the types control\n  panel did not raise NotFound.\n  [davisagli]\n\n- Make it possible to view the fields of non-editable schemata.\n  [davisagli]\n\n- Tweaks to the tabbed_forms template used for the types control panel.\n  [davisagli]\n\n\n1.0a6 - 2009-10-12\n------------------\n\n- Add plone.app.textfield as a dependency. We don't use it directly in this\n  package, but users of Dexterity should have it installed and available.\n  [optilude]\n\n- Use some default icons for new types.\n  [davisagli]\n\n- Show type icons in type listing if available.\n  [davisagli]\n\n- Removed 'container' field from the types listing in the control panel\n  (it wasn't working).\n  [davisagli]\n\n- Add message factories to titles and descriptions of metadata schema fields.\n  Fixes http://code.google.com/p/dexterity/issues/detail?id=75.\n  [optilude]\n\n- Patch listActionInfos() instead of listActions() in order to get the\n  folder/add category into the actions list. This avoids a problem with\n  the 'actions.xml' export handler exporting the folder/add category\n  incorrectly. Fixes http://code.google.com/p/dexterity/issues/detail?id=78\n  [optilude]\n\n\n1.0a5 - 2009-07-26\n------------------\n\n- Explicitly include overrides.zcml from plone.app.z3cform.\n  [optilude]\n\n\n1.0a4 - 2009-07-12\n------------------\n\n- Changed API methods and arguments to mixedCase to be more consistent with\n  the rest of Zope. This is a non-backwards-compatible change. Our profuse\n  apologies, but it's now or never. :-/\n\n  If you find that you get import errors or unknown keyword arguments in your\n  code, please change names from foo_bar too fooBar, e.g. serialize_schema()\n  becomes serializeSchema().\n  [optilude]\n\n\n1.0a3 - 2009-06-07\n------------------\n\n- Updated use of <plone:behavior /> directive to match plone.behavior 1.0b4.\n  [optilude]\n\n\n1.0a2 - 2009-06-01\n------------------\n\n- Remove superfluous <includeOverrides /> in configure.zcml which would cause\n  a problem when the package is loaded via z3c.autoinclude.plugin\n  [optilude]\n\n\n1.0a1 - 2009-05-27\n--------------------\n\n- Initial release\n\n.. _`dexterity#183`: https://github.com/plone/plone.app.dexterity/issues/183\n\n.. _`CMFPlone#895`: https://github.com/plone/Products.CMFPlone/issues/895\n.. _`CMFPlone#1013`: https://github.com/plone/Products.CMFPlone/issues/1013\n.. _`CMFPlone#1027`: https://github.com/plone/Products.CMFPlone/issues/1027\n.. _`CMFPlone#1151`: https://github.com/plone/Products.CMFPlone/issues/1151\n.. _`CMFPlone#1207`: https://github.com/plone/Products.CMFPlone/issues/1207\n",
    "bugtrack_url": null,
    "license": "GPL",
    "summary": "Dexterity is a content type framework for CMF  applications, with particular emphasis on Plone. It can be viewed as an alternative to Archetypes that is more light-weight and modular.",
    "version": "4.0.2",
    "project_urls": {
        "Homepage": "http://plone.org/products/dexterity"
    },
    "split_keywords": [
        "plone",
        "ttw",
        "dexterity",
        "schema",
        "interface"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "67ff7e93a045edecc916ee3a8c759d11c9c3db22f3a2dce3ab2636551ab00079",
                "md5": "fd63773d65950539a88c8b56e7f41320",
                "sha256": "441cec260c020a683fd4e88f172278aa54971ef989279e164c4bde10d01d8152"
            },
            "downloads": -1,
            "filename": "plone.app.dexterity-4.0.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "fd63773d65950539a88c8b56e7f41320",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 130839,
            "upload_time": "2024-10-23T19:24:25",
            "upload_time_iso_8601": "2024-10-23T19:24:25.561802Z",
            "url": "https://files.pythonhosted.org/packages/67/ff/7e93a045edecc916ee3a8c759d11c9c3db22f3a2dce3ab2636551ab00079/plone.app.dexterity-4.0.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "26fe7190f479b6ff8f288fe2b877f09c2045e68abde0d29205427584015874fd",
                "md5": "673ce4f8c4f9db75eea228eb5c086eb8",
                "sha256": "75e583fc80487eb0387221ff3a9002b984dd22baa0bf66a9007a79f26df075a6"
            },
            "downloads": -1,
            "filename": "plone_app_dexterity-4.0.2.tar.gz",
            "has_sig": false,
            "md5_digest": "673ce4f8c4f9db75eea228eb5c086eb8",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 228279,
            "upload_time": "2024-10-23T19:24:28",
            "upload_time_iso_8601": "2024-10-23T19:24:28.138048Z",
            "url": "https://files.pythonhosted.org/packages/26/fe/7190f479b6ff8f288fe2b877f09c2045e68abde0d29205427584015874fd/plone_app_dexterity-4.0.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-23 19:24:28",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "plone.app.dexterity"
}
        
Elapsed time: 9.38124s