Metadata support for Silva
Silva Metadata provides a tool to define generic metadata set for Silva content types. Metadata are defined in a service, service_metadata, and metadata values edited on the content type.
Metadata can be optionaly indexed into the Zope catalog, and imported and exported as XML. Metadata definitions can be too imported and exported as XML files.
You can find more information on how to use the metadata system in the Silva developer documentation.
You can find the code of this extension in Git: https://github.com/silvacms/Products.SilvaMetadata
- Ensure that calls to getMetadataValue with existing metadata set, metadata key or invalid content doesn’t fail and return None instead.
- Translate metadata set title and description.
- Update to Silva 3.0c1 API.
- Fix bugs, binding validation while using setValues.
- Cleanup and optimize code: remove useless features.
- Update for Zope 2.13 and Python 2.7.
- Declare dependencies correctly.
- Simplify getMetadataValue when a custom handler is installed.
- Improve getMetadataSets not to fail with buggy values.
- Add a Zope event when metadata are changed.
- If a metadata is read-only, when you should not be able to edit it.
- Simplify binding creation by using an adapter.
- Update code to be compatible with Zope 2.12, replace ZCTextIndex with TextIndex.
- Clean CMF compatibility code.
- Remove the usage of Products.Annotations. We now use regular zope.annotations.
- Service Metadata is registered as an utility, and is a service inheriting from silva.core.services.
- Catalog service from silva.core.services is now used. It used adapters instead of Products.ProxyIndex. This make possible to copy a metadata value in the catalog, to access it from the brain object without waking up the object itself.
- Add support in Bindings for rendering the edit views of elements with values from the request.
- Rewrite documentation as a clean ReST.
- Add id suggestion for set naming convention to add ui.
- Binding.setValuesFromRequest more cleanly ‘fakes’ a real HTTPRequest when calling form.validate_all, so that referencelookupwindows can be used as metadata fields.
- The Zope 2.10 event system was causing importing .zexp which contained the metadata service to fail. Fixed this.
- Made SilvaMetadata Zope-2.10 compliant, so that it works with Silva 2.0.
Features added :
- 2007-03-15: The default access handler and the MetadataBindingAdapter now have a read_only parameter, False by default, that if set to true will cause all write actions to the binding to be silently ignored.
- 2007-01-25: Added missing imports in MetadataTool.py.
- MetadataTool.getMetadataValue did not work correctly for Ghosts and GhostFolders, it does now.
- Added ‘Export Metadata Set as XML’ button to set overview screen.
- Changed the button value in Content Type Mappings from ‘edit mappings’ to ‘save mappings’.
- Bugfix for empty strings in aqcuirable metadata fields blocking acquisition. Many thanks to Nico Grubert for the bug report and proposed fix!
- MetadataTool.getMetadataValue can now get just this objects metadata, not acquiring parent metadata
- If an extension to Silva provides IAcquiredUpdater adapters for content objects, these will used. An IAcquiredUpdater adapter for an IContainer could for instance reindex any sub-objects.
- Use Zope 3 style interfaces. This means that Zope 2.8 is now required.
- Stop using deprecated CMFCore.CMFCorePermissions module
- Even more fixes to the unit tests (issue 1381).
- Fixed unit tests (issue 1380).
- Metadata sets can have a ‘category’ property. This property can be used to define special purpose metadata sets.
- The minimal_role and category properties are exported and imported to/from the XML metadata set definitions.
- setValuesFromRequest now uses Formulator to validate user input. This solves the infamous ‘checkbox’ problem.
- MetadataTool.setMetadataValues() has been removed.
- XML export/import now works with latest Formulator release (fixing issues with Formulator’s i18n support).
- unit test have been updated to run with Silva.
- MetadataTool.getMetadataValue now supports object delegation.
- Metadata Sets now have a Minimal Role property, that can be used by Silva to restrict access to a Set.
- Make getMetadataValue shortcut a bit more robust. Also some performance tweaks.
- XML import with unrecognized metadata sets now skips these sets silently.
- XML export for integers and floats should now work properly when Python 2.1 is used.
- Make SilvaMetadata field editing work with Formulator 1.6.0.
- XML import would fail with a NameError if a metadata set is imported that is not registered. Now it fails with a more informative error… What should be happening is that this unrecognized metadata is skipped, instead.
- icon for service_metadata.
- XML import of complex lists for items now works.
- Indexing with XML import now works.
- getMetadataValue was buggy and didn’t really work. Fixed.
- Added Infrae standard release documentation.
- Avoid quadratic behavior while indexing. Previously, for n elements that are indexed, for each element indexing the data for the n indexes was accessed, resulting in quadratic behavior while indexing (n * n values were accessed per object).
- Initial public release of SilvaMetadata.