Skip to main content

A EDTF behavior for Plone.

Project description Coveralls License Join the chat at


A Plone behavior which provides a EDTF Date field and some indexes to search and sort on complex and historic dates.

Note: the current implementation of the used library python-edtf , still uses an earlier draft of the standard:


  • Allows unspecific dates or date intervals: “1989-11” or “1989-11~” or “1989-11-01/1989-11-30”
  • Seasons: 2001-21 >> Spring, 2001
  • old dates like 03.08.1492
  • Search indexes: date_earliest and date_latest
  • Sort indexes: date_sort_ascending and date_sort_descending


Install collective.edtf_behavior by adding it to your buildout:



eggs =

and then running bin/buildout

After you activated the add-on in the Plone Add-ons section, you can Enable this behavior on any Dexterity based content type.


from plone import api

find any document which earliest date is 06.02.1920 or later.

results = api.content.find(
        'query':, 2, 6),
        'range': 'min',

find any document which latest date is 11.11.1711 or earlier.

results = api.content.find(
        'query':, 11, 11),
        'range': 'max',

This package provides a DateRangeInRangeIndex named edtf_start_end_range.

find all documents that fall at least with one start/end date of there interval into the range:

results = api.content.find(
        'start':, 11, 11),
        'end':, 2, 6),

For more examples how to query the indexes, have a look at the tests .

Extending it

One could improve indexing by using a DateRangeIndex, like the effectiveRange index in Plone if needed.

<!-- Example of a DateRangeIndex like the effectiveRange index in Plone -->
<index name="edtf_date_range" meta_type="DateRangeIndex"
  since_field="date_earliest" until_field="date_latest" />


If you are having issues, please let us know. You can reach us on Gitter.


The project is licensed under the GPLv2.



1.0.3 (2019-08-26)

  • Faxed test and test setup, small cleanup [MrTango]

1.0.2 (2019-03-22)

  • Add edtf_parseable validator (constraint) to edtf_behavior [MrTango]

1.0.1 (2019-03-18)

  • Add absolute_import statement to all files, to improve Py3 support, fix README syntax [MrTango]

1.0 (2019-03-18)

  • Add edtf_start_end_range index and document querying in the readme. [MrTango]

1.0a1 (2019-03-14)

  • Initial release, with EDTF behavior and 4 main indexes. [MrTango]

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

collective.edtf_behavior-1.0.3.tar.gz (18.0 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page