Provides a behavior for using CMFEditions with dexterity content types
Project description
Introduction
The plone.versioning (IVersionable) behavior is used for enabling the CMFEditions functionality for dexterity contents. It adds a changeNote-field to the edit- and add-forms and creates a new version when the content is edited, if enabled for the content type.
It’s based on Products.CMFEditions. For listing the versions of an object use CMFEdtions’ view versions_history_form or the history viewlet (see default @@view).
Usage
Just use the behavior plone.versioning (plone.app.versioningbehavior.behaviors.IVersionable) in your dexterity content type.
In your profiles/default/types/YOURTYPE.xml add the behavior plone.versioning:
<?xml version="1.0"?> <object name="example.conference.presenter" meta_type="Dexterity FTI" i18n:domain="example.conference" xmlns:i18n="http://xml.zope.org/namespaces/i18n"> <!-- enabled behaviors --> <property name="behaviors"> <element value="plone.versioning" /> </property> </object>
The ``plone.versioning`` behavior just adds versioning support to your content type, but it does not enable it.
You have to set the “versioning” option in the Plone types control panel (/@@content-controlpanel) to either “Manual” or “Automatic” for activating versioning.
If you want to automatically enable versioning for your custom content types through generic setup you have to create a file “repositorytool.xml” in your gs profile (e.g. “profiles/default”) with the following content:
<?xml version="1.0"?> <repositorytool> <policymap> <type name="MyType"> <policy name="at_edit_autoversion"/> <policy name="version_on_revert"/> </type> <type name="AnotherType"> <policy name="at_edit_autoversion"/> <policy name="version_on_revert"/> </type> </policymap> </repositorytool>
See http://plone.org/documentation/manual/upgrade-guide/version/upgrading-plone-4.0-to-4.1/updating-add-on-products-for-plone-4.1/use-generic-setup-for-defining-versioning-policies for more details.
More Information
For more information about how the versioning works see the documentation of Products.CMFEditions:
Changelog
2.0.3 (2024-07-31)
Bug fixes:
Remove setuptools fossils. [maurits] (#72)
Internal:
Update configuration files. [plone devs] (6e36bcc4)
2.0.2 (2024-01-19)
Bug fixes:
Update configuration. [plone devs] (#12345)
2.0.1 (2023-03-22)
Internal:
Update configuration files. [plone devs] (b2d5d4a5)
2.0.0 (2022-11-30)
Bug fixes:
Final release. [gforcada] (#600)
2.0.0b1 (2022-07-21)
Bug fixes:
Fix test for changed label in Products.CMFEditions. [petschki] (#64)
Improve performance of the CloneNamedFileBlobs modifier which is used to handle Dexterity NamedBlobFile and NamedBlobImage fields while creating and retrieving versions. Previously the contents of the Blob were copied to a new Blob, but that is unnecessary and slow. Now the modifier simply ensures that the version retains a reference to the existing Blob. This also reduces use of data storage since only one copy of the Blob is needed rather than two. [davisagli] (#66)
1.4.6 (2022-02-04)
Bug fixes:
Removed deprecated plone.namedfile[blobs] from the test requirements. [maurits] (#106)
1.4.5 (2022-01-28)
Bug fixes:
Depend on plone.namedfile core instead of its empty [blobs] extra. [maurits] (#106)
1.4.4 (2021-11-26)
Bug fixes:
Fix tests on Python 2 with newer plone.dexterity using repr for the schema. [wesleybl] (#60)
1.4.3 (2021-05-03)
Bug fixes:
Fix issue where versioning dynamic content types with blob fields broke after a schema update due to change in dynamic schema identifiers since plone.dexterity >= 2.10.0 [datakurre] (#57)
1.4.2 (2021-02-16)
Bug fixes:
Do not break if the portal_repository tool cannot be found (#53)
1.4.1 (2020-07-30)
Bug fixes:
Avoid traceback when transforming links on content type with no primary field [laulaz] (#51)
1.4.0 (2020-04-30)
New features:
Change to use Python’s built-in filecmp.cmp(shallow=False) to compare blobs for differences instead of the old method of comparing them line by line. [datakurre] (#50)
1.3.9 (2020-04-20)
Bug fixes:
Update the documentation that was pointing to the obsolete @@types-controlpanel (it is @@content-controlpanel instead) (#33)
1.3.8 (2019-06-27)
Bug fixes:
Initial version for versionable objects is properly created [ale-rt] (#47)
1.3.7 (2019-02-13)
Bug fixes:
If a behavior that provides a NamedBlobFile was renamed, we can now still find the blob file, provided that the old behavior’s dotted name was properly registered. [pysailor] (#45)
1.3.6 (2018-12-10)
Bug fixes:
Move change notes field to be the last field of the form (just above the buttons). https://github.com/plone/Products.CMFPlone/issues/2640 [gforcada]
1.3.5 (2018-11-02)
Bug fixes:
Made writing Blob less aggressive.(issue #42) [iham]
Remove (testing) dependency on zope.app.intid. [gforcada]
1.3.4 (2018-09-25)
Bug fixes:
Migrate tests away from PloneTestCase [pbauer]
Fix imports for py3 [pbauer]
1.3.3 (2018-04-03)
New features:
Add a field for disabling versions per content item https://github.com/plone/Products.CMFPlone/issues/2341 [tomgross]
Bug fixes:
Remove obsolete grok usage [tomgross]
1.3.2 (2018-02-02)
Bug fixes:
Imports are Python3 compatible [ale-rt, robbuh]
1.3.1 (2017-06-06)
Bug fixes:
Added a missing TTW edit form. [Rotonen]
1.3 (2016-12-30)
New features:
Add shortname plone.versioning for behavior. [jensens]
1.2.10 (2016-09-23)
Bug fixes:
Do not break in the case of dexterity objects with relations migrated from something else (usually Archetypes). [ale-rt]
1.2.9 (2016-08-18)
Bug fixes:
Use zope.interface decorator. [gforcada]
1.2.8 (2016-05-15)
Fixes:
Fixes #25: URLs like ${absolute_url}/@@images/${uuid}.png are not converted on @@version-view. [rafaelbco]
1.2.7 (2016-02-11)
New:
Used plone i18n domain and removed locales folder. [klinger]
Fixes:
Updated Traditional Chinese translations. [l34marr]
1.2.6 (2015-11-28)
Fixes:
Update Italian translations [ale-rt, cekk]
Fixes #10: Views for Image and File versions don’t work. [rafaelbco]
1.2.5 (2015-09-20)
Update French translations [enclope]
1.2.4 (2015-09-11)
Updated basque translation [erral]
1.2.3 (2015-07-18)
Correct functional test, it was not checking correct on version1. [bloodbare]
1.2.2 (2015-05-13)
Synchronize translations [vincentfretin]
provide better description of how new versions are created when in manual mode [vangheem]
1.2.1 (2015-03-13)
Ported tests to plone.app.testing. Removed PloneTestCase / p.a.testing compatibility hack. [jone]
Remove dependencies on zope.app.container and rwproperty. [davisagli]
Added Italian translations. [cekk]
1.2.0 (2014-09-11)
Remove customization of versions_history_form since the changes were ported to Products.CMFEditions>2.2.9. [rafaelbco]
1.1.4 (2014-08-25)
Deal with AttributeError when trying to access fields provided by behaviors using attribute storage. [lgraf]
Added Traditional Chinese translations. [marr]
1.1.3 (2014-02-26)
Include *.rst files in the release. 1.1.2 was a brown bag release. [timo]
1.1.2 (2014-02-26)
Remove plone.directives.form dependency since this fetches five.grok, which is not allowed in Plone core. [timo]
1.1.1 (2013-07-19)
Merge Rafael Oliveira’s (@rafaelbco) versions_history_form fixes from collective.cmfeditionsdexteritycompat. [rpatterson]
danish translation added [tmog]
Fixed an issue where a clone modifier would cause an incorrect pickle due to an implementation detail in CPython’s memory allocation routine (exposed in Python as the object id). [malthe]
Include grok when grok package is installed. This makes sure the ZCML for the grok directive is loaded. [lgraf]
For dexterity 1.x compatibility grok the package if grok is installed. [jone]
Added Dutch translations. [kingel]
Fix case where versioning of blobs would cause an error if a field was removed from a schema between revisions. [mikerhodes]
1.1 (2012-02-20)
Added French translations. [jone]
Fixed SkipRelations modifier to also work with behaviors which are storing relations in attributes. [buchi]
Added Spanish translation. [hvelarde]
1.0 (2011-11-17)
Added pt_BR translation. [rafaelbco, davisagli]
Added support for versioning items with relations (plone.app.relationfield). Relations are skipped on clone and added from the working copy on restore. [buchi]
1.0b7 (2011-10-03)
Fixed a bug in the CloneNamedFileBlobs modifier causing an AttributeError when the previous version doesn’t have a blob and the working copy has one. [buchi]
1.0b6 (2011-09-25)
Add missing dependency declaration on plone.namedfile[blobs]. [davisagli]
1.0b5 (2011-09-01)
Fixed setuphandler to not fail with older versions of Products.CMFEditions that do not have a Skip_z3c_blobfile modifier. [buchi]
Fixed CloneNamedFileBlobs modifier to handle fields with value None. [buchi]
1.0b4 (2011-08-11)
Added generic setup profile which installs and enables the modifier for cloning blobs and disables the Skip_z3c_blobfile modifier. [buchi]
Added support for versioning blobs (NamedBlobFile, NamedBlobImage). [buchi]
1.0b3 (2011-03-01)
Remove grok usage, tidy up and declare zope.app.container dependency. [elro]
Only version the modified object, not its container on modification. [elro]
1.0b2 (2011-01-25)
Changed the behavior so that the changeNote field is only rendered in the Add and Edit forms. [deo]
Made sure to always try to catch the ArchivistUnregisteredError exception at create_version_on_save (this mimics the original handling from CMFEditions). [deo]
1.0b1 (2010-11-04)
Renamed package to plone.app.versioningbehavior. [jbaumann]
Load Products.CMFEditions before testing. [jbaumann]
Added some more tests. [jbaumann]
Renamed package to plone.versioningbehavior (see dexterity mailing list). [jbaumann]
Re-enabled IObjectAddedEvent-Eventhandler. The pickling error was fixed in CMFEdition’s trunk. [jbaumann]
Renamed the behavior marker interface IVersionOnSave to IVersioningSupport because it depends on the “version” settings in the types control panel if a content is automatically versioning on saving or not. The marker interface should only indicate if the type could be versioned or not. [jbaumann]
Added locales directory with own domain for local translations. [jbaumann]
Updated README.txt, included doctests in long-description. [jbaumann]
Updated tests: events and version creation are now tested properly. [jbaumann]
Added helper method for getting the changenote from the request annotation. [jbaumann]
Storing changenote in an annotation on the request between the field-adapter and the event handler which creates the version. That makes it possible to use different form and widget manager prefixes. [jbaumann]
Added localization for the comment field. [jbaumann]
Disabled the Added-Event because it’s not working due to a pickling problem. [jbaumann]
Added a form-field changeNote. It’s content is used as comment for the created version. [jbaumann]
Added a Event-Handler for creating a new version on save. [jbaumann]
Implemented the behavior plone.behaviors.versioning.behaviors.IVersionable. [jbaumann]
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for plone_app_versioningbehavior-2.0.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3ddd50910482d1c2c83335aa18c825688817ed9f1569299200a92a8ac8d3331f |
|
MD5 | 9e8070a9fb9926c7f58f709fe6ee99ce |
|
BLAKE2b-256 | ce3cad6dd03e191964c78017c866e5bd8dff8884f916ac530eb8dc1ec878d0e8 |
Hashes for plone.app.versioningbehavior-2.0.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 42dbecf0442fa0aa572c3ad4e69450054171a0b819a3742920c0f5f1812b8e97 |
|
MD5 | f567da2d96384aafb2002d43a3f71bca |
|
BLAKE2b-256 | b842f18360f8bbf353251077a5f864b62c9d361c1d4c48e70680571fc9ab41be |