collective.edtf_behavior
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: http://www.loc.gov/standards/datetime/pre-submission.html
Features
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
Installation
Install collective.edtf_behavior by adding it to your buildout:
[buildout]
...
eggs =
collective.edtf_behavior
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.
Querying
from plone import api
find any document which earliest date is 06.02.1920 or later.
results = api.content.find(
portal_type='Document',
date_earliest={
'query': datetime.date(1920, 2, 6),
'range': 'min',
},
)
find any document which latest date is 11.11.1711 or earlier.
results = api.content.find(
portal_type='Document',
date_latest={
'query': datetime.date(1711, 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(
portal_type='Document',
edtf_start_end_range={
'start': datetime.date(1711, 11, 11),
'end': datetime.date(1920, 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" />
Contribute
Issue Tracker: https://github.com/collective/collective.edtf_behavior/issues
Source Code: https://github.com/collective/collective.edtf_behavior
Support
If you are having issues, please let us know. You can reach us on Gitter.
License
The project is licensed under the GPLv2.
Contributors
Maik Derstappen, md@derico.de
Changelog
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]
Metadata
Release files for collective.edtf-behavior 1.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| collective.edtf_behavior-1.0.3.tar.gz | 18.0 kB | Without provenance | Details for collective.edtf_behavior-1.0.3.tar.gz |
Release files / collective.edtf_behavior-1.0.3.tar.gz
| Download URL | collective.edtf_behavior-1.0.3.tar.gz |
|---|---|
| Size | 18.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cc99feefe666c0ce353b9556227bf04d746ba6dd933ec169f35e74290395626d
|
|
BLAKE2b-256 checksum How to use checksums |
48baf1fd6b1f59e396a5fd6c1adb7d44b5aff3f36aabae8681eeb5e5d0fbab96
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.11.0 pkginfo/1.4.1 requests/2.18.4 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.20.0 CPython/2.7.16
|
Security for collective.edtf-behavior 1.0.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.