Skip to main content

EEA versions

Project description

develop master

EEA Versions is a versioning system based on a version ID to group certains objects and EffectiveDate to determine version number.


This add-on doesn’t do anything by itself. It needs to be integrated by a developer within your own products. For reference you can check the eea.sparql package.




If you are using zc.buildout and the plone.recipe.zope2instance recipe to manage your project, you can do this:

  • Update your buildout.cfg file:

    eggs =
    zcml =
  • Re-run buildout, e.g. with:

    $ ./bin/buildout

You can skip the ZCML slug if you are going to explicitly include the package from another package’s configure.zcml file.

Source code

Latest source code (Plone 4 compatible): - Plone Collective on Github - EEA on Github


EEA - European Enviroment Agency (EU)


12.4 - (2021-06-17)

  • Change: earlier versions of a given object now return with moddified urls to have /view appended in case the object.portal_type is in site_properties.typesUseViewActionInListings. See docs/versions.txt for tests on how this affects the returned results. [ichim-david refs #108348]
  • Change: ds_resolve now returns link with /view if needed [ichim-david refs #108348]
  • Change: latest version portal message now point user to obj + ‘/view’ if needed [ichim-david refs #108348]

12.3 - (2020-09-18)

  • Change: Removed extra icon from older versions [ichim-david refs #120397]

12.2 - (2020-07-21)

  • Change: Changed portlet_versions so that we no longer have a div with the id ‘eea-versions-portlet’ and now we attached the id to the accordion panel class [iulianpetchesi refs #119540]
  • Change: removed documentDescription class from assign_version when checking current version set as that is not documentDescription [ichim-david refs #117296]
  • Bug fix: avoid Unauthorised error when checking if context is report within portlet_versions [ichim-david refs #117296]

12.1 - (2020-06-19)

  • Change: versions data is now hidden behind an accordion [ichim-david refs #117295]

12.0 - (2020-01-30)

  • Bug fix: Fixed the older versions viewlet for Data and EEAFigures [alecghica refs #113639]

11.9 - (2019-12-17)

  • Change: Revert previous allowed_attributes change for older versions viewlet [iulianpetchesi refs #112194]

11.8 - (2019-12-05)

  • Change: Refs #110020 Fix version viewlet error. [iulianpetchesi refs #110020]

11.7 - (2019-11-28)

  • Change: Modified the older versions viewlet to use publication version series for publications(Report) [iulianpetchesi refs #110020]

11.6 - (2019-10-03)

  • Change: Modified the older versions viewlet to use effective/creation date instead of lastUpload [iulianpetchesi refs #102731]

11.5 - (2019-01-28)

  • Jenkins: Add sonarqube step [avoinea refs #101552]
  • Change: updated URLs pointing to with https:// [alecghica refs #95849]

11.4 - (2018-04-24)

  • Bug fix: fix for non version enhanced objects [valipod refs #93975]

11.3 - (2018-04-19)

  • Bug fix: fix for default view being linked as a version of the parent folder [valipod refs #93975]

11.2 - (2018-03-05)

  • Bug fix: Don’t crash folder move/rename due to Catalog indexing queue [avoinea refs #92869]

11.1 - (2018-03-01)

  • Feature: Fix tests to work with Products.CMFCore >= 2.2.12 [avoinea refs #92869]

11.0 - (2018-01-30)

  • Bug fix: Drop canonical_object call for default_page. Use instead aq_parent [avoinea refs #91514]

10.9 - (2018-01-26)

  • Bug fix: avoid crash of versions method because of unrestricted search [valipod refs #90671]

10.8 - (2018-01-25)

  • Bug fix: fixed bug in create version for folders with changed default view when parent folder is not IVersionEnhanced [alecghica refs #89997]

10.7 - (2018-01-23)

  • Bug fix: fixed bug in create version for folders with changed default view [valipod refs #89997]
  • Bug fix: fixed bug in older versions portlet in case of folders with changed default view [valipod refs #89997]

10.6 - (2017-12-12)

  • Change: Replace eeacms/zptlint with eeacms/plone-test:4 zptlint [avoinea refs #90415]
  • Change: make new version warning simpler, more visible and user friendly. [demarant refs #87958]

10.5 - (2017-11-07)

  • Change: Remove Sphinx generated documentation [petchesi-iulian refs #88212]

10.4 - (2017-09-27)

  • Bug fix: Remove hardcoded EEA ‘SITE’ language from versions [petchesi-iulian refs #87470]

10.3 - (2017-09-26)

  • Bug fix: Added language entry to the latest version link in order for it to work properly [petchesi-iulian refs #87470]

10.2 - (2017-09-15)

  • Bug fix: Changed the versions catalog search to use unrestrictedSearchResults for anonymous users [iulianpetchesi refs #87488]
  • Change: assignVersion and revokeVersion now redirect to absolute_url + ‘/view’ for portal_types defined in site_properties.typesUseViewActionInListings [ichim-david refs #87691]

10.1 - (2017-08-16)

  • Bug fix W3C compliance modifications [valipod refs #86295]

10.0 - (2017-05-15)

  • Change: fixed PyLint warnings and errors [eduard-fironda refs #84949]

9.9 - (2017-05-08)

  • Feature: customize canonical url viewlet to point to latest version [ichim-david refs #83306]

9.8 - (2017-04-24)

  • Change: updated package information [eduard-fironda]

9.7 - (2017-02-21)

  • Feature: Remove older version portlet from PDF export [avoinea refs #81054]

9.6 - (2016-11-21)

  • Feature: permalinks are now visible on all content types [alecghica refs #76194]
  • Feature: permalinks and older versions are displayed as accordion [alecghica refs #76194]

9.5 - (2016-11-14)

  • Feature: all permalinks logic moved under this package, e.g. ds_resolveuid [alecghica refs #76194]
  • Feature: permalink macro is now generic, ds_resolveuid can be called now from any context [alecghica refs #76194]

9.4 - (2016-10-26)

  • Bug fix: Drop eea.rdfmarshaller hard dependency [avoinea refs #1 (github)]

9.3 - (2016-06-02)

  • Change: create EEA Permalink Mapping objects if eea.dataservice is installed when migrating versions to new schema [ichimdav refs #72875]

9.2 - (2016-05-31)

  • Bug fix: reindex getVersionId when performing a revoke in order to ensure that the version viewlet no longer takes into consideration the revoked object as part of the previous versioning chain [ichimdav refs #72875]

9.1 - (2016-05-27)

  • Feature: added prefix_language option for version object which if enabled allows you to have a language suffix for all versions [ichim-david refs #72521]
  • Feature: translated objects from LinguaPlone get version plus language prefix as version id if version object is defined in order to avoid adding a new prefixed object in case we have a new translation [ichim-david refs #72521]
  • Feature: migration now sets version plus language prefix as version id if version object is defined in order to avoid adding a new prefixed object in case we have a new translation [ichim-david refs #72521]
  • Feature: migration of objects now allows rerun if prefix is different [ichim-david refs #72521]
  • Feature: productID exposed in rdf output [alecghica refs #72025]

9.0 - (2016-05-05)

  • Feature: added ability to create prefixes in order to have non random version ids [ichimdav refs #70786]
  • Feature: added tests for versioning process [ichimdav refs #70786]
  • Feature: added ability to migrate content types from the random to the prefixed incremented versions [ichimdav refs #70786]

8.1 - (2015-12-16)

  • Bug fix: reset relations on versioned objects as the paste seems to loose the relationship [ichimdav refs #31440]

8.0 - (2015-11-03)

  • Feature: Performance improvement when creating new version by usign the patched manage_pasteObjects and so avoid the rename after the copy/paste operation [chiridra refs #14598]

7.9 - (2015-10-05)

  • Change: fixed issue 2 - to have previous versions shown on all versions. [chiridra refs #28681]
  • Change: removed js code that dealt with hiding of the older versions, this was a design implementation that isn’t generic and was moved to another eea theme package [ichimdav refs #27220]

7.8 - (2015-08-18)

  • Change: Auto-include zcml within plone context in order to make this package work without having to add it within buildout zcml directive. [avoinea]

7.7 - (2015-04-02)

  • Change: added missing commit for ticket 23017 which changes the portalMessage of older versions to archiveMessage [ichimdav refs #23017]

7.6 - (2015-03-17)

  • Change: Switched to curl in the jenkins build install script [olimpiurob refs #22402]
  • Change: Changed fetch url for jenkins build install script to the install script from the main EEA CPB repository [olimpiurob refs #22402]
  • Change: added eea.versions.older viewlet with logic that was previously within eea.versions.status viewlet about displaying older revisions [ichimdav refs #23017]

7.5 - (2014-12-23)

  • Feature: Ajax versioning is now checking if a version isn’t already in progress in which case no new versioning is attempted until previous version call is terminated [ichim-david refs #22047]
  • Bug fix: Added browserlayer for viewlets, so don’t throw error when eea.versions is installed but not activated yet. [szabozo0]

7.4 - (2014-11-20)

  • Bug fix: Display also archived (expired) versions within versioning viewlet for anonymous users. [voineali refs #21515]

7.3 - (2014-10-15)

  • Upgrade step: run SITE/@@updateCreationDate [ichim-david refs #21326]
  • Feature: added updateCreationDate BrowserView which will set the CreationDate to that of the EffectiveDate if the CreationDate is smaller than the EffectiveDate [ichim-david refs #21326]
  • Change: order of versions no longer takes into consideration that effective_date needs to be older than the creation date, opting to sort by effective_date if that is found on the object. This reverts the logic change done in ticket 20827 [ichim-david refs #21326]
  • Bug fix: user must be able to create a new version with Add Portal Content permission. Semantically creating new versions means adding new content to the site. This way users can create new versions of published content which it may be not editable anymore. [demarant refs #21369]

7.2 - (2014-09-15)

  • Bug fix: check if effective_date isn’t smaller than that of the creation_date when returning the versions of an object and if so sort by creation_date since the order of the versions determine which is latest version [ichimdav refs #20827]

7.1 - (2014-07-15)

  • Bug fix: fixed permission for @@can_version, it is now set to zope2.View instead of wrong ModifyPortalContent one. [ghicaale refs #20381]
  • Change: GetVersions class no longer requires a request which isn’t found when class is called from [ichimdav refs #19859]
  • Bug fix: fix create new version ajax method when the operation takes too much time. [ghicaale refs #20193]

7.0 - (2014-05-13)

  • Change: fixed pylint warnings [ichimdav refs #18316]

6.9 - (2014-03-10)

  • Change: getLatestVersionUrl can now be called from the getLatestVersionUrl browser page [ichimdav refs #18316]

6.8 - (2014-01-23)

  • Feature: added test which documents the way versions are returned when viewed by anonymous users [ichim-david refs #18155]
  • Bug fix: archiving an object no longer messes the order of versions for anonymous users [ichim-david refs #18155]
  • Change: creating a version now sets the currently logged in user as the creator of the object while also preserving the previous creators [ichim-david refs #18142]

6.7 - (2014-01-22)

  • Bug fix: removed wrongly added blockquotes within README.rst [ichim-david refs #18064]
  • Feature: adding Sphinx-generated documentation in Page Template format [batradav refs #9502]

6.6 - (2013-12-05)

  • Feature: added a portlet_versions viewlet [tiberich refs #17321]

6.5 - (2013-09-23)

  • Bug fix: code cleanup; slightly refactor the way the random versionId is calculated [tiberich]

6.4 - (2013-09-17)

  • Bug fix: added a script to migrate old objects storage to new versions storage for objects which were not IVersionEnhanced [tiberich #14751]

6.3 - (2013-09-17)

  • Bug fix: Fixed inconsistent information message regarding assessment state for anonymous users. [tiberich #14613]
  • Bug fix: don’t calculate versions if versionId is empty [tiberich #16751]
  • Bug fix: Removed endless loop while generating random_id [voineali refs #16723]

6.2 - (2013-09-06)

  • Bug fix: use POST instead of GET when creating a new version [tiberich #16641]

6.1 - (2013-08-09)

  • Change: when a newer version is present, only show the latest version in the portlet_versions, instead of showing a list of all newer versions

6.0 - (2013-05-21)

  • Bug fix: fix bug caused by missing proper security wrapper in init of a view [tiberich #14568]

5.9 - (2013-05-21)

  • Bug fix: fix getLatestVersionUrl, it needs to be a separate view [tiberich #14568]

5.8 - (2013-05-20)

  • Bug fix: bump version in metadata.xml to ensure automatic upgrades [tiberich #14008]

5.7 - (2013-05-20)

  • Feature: added IVersionControl.can_create_new_version and @@can_create_new_version view as the basis of a mechanism to disable creation of new versions
  • Change: refactor the versioning to simplify code and make it easier to use. Added and improved tests. [tiberich #14008]
  • Pre-upgrade step: run as first step! Go to portal_setup, Upgrades, choose eea.versions:default, execute upgrade step [tiberich #14361]

5.6 - (2013-04-17)

  • Bug fix: improve message show in portlet versions about the latest version [tiberich #14050]

5.5 - (2013-02-25)

  • Feature: added information for contributors [ciobabog refs #13892]
  • Bug fix: don’t strip obj of aquisition context when deleting conversation, avoids possible reindexing errors [tiberich #13836]

5.4 - (2013-01-10)

  • Change: hide older version listing by default, listing can be seen by clicking on older versions link [ichimdav #10182]
  • Change: moved older versions listing to the portalMessage div containing new and old versions [ichimdav #10182]
  • Bug fix: avoid page reload when clicking on previous version [ichimdav #10182]

5.3 - (2012-11-27)

  • Bug fix: fix migration code for #9847

5.2 - (2012-11-22)

  • Bug fix: make revoke action hidden by default [tiberich]

5.1 - (2012-11-09)

  • Feature: Added i18n translations [avoinea]
  • Bug fix: don’t fail if reindex fails for children of copied (versioned) objects. They will be reindexed anyway in a later step [tiberich #9946]

5.0 - (2012-10-08)

  • Bug fix: added a page to detect and fix objects that have a recorded versionId but they don’t publish this to the catalog [tiberich refs #5502]
  • Upgrade step: go to /www/@@missing_values_for_index?portal_type=Specification&index=getVersionId&fix=true Visit it two times. Note the output should be empty the second time. [tiberich refs #5502]

4.7 - (2012-08-10)

  • Bugfix: made eea.versions compatible with plone 4.0 [szabozo0 refs #5387]

4.6 - (2012-06-12)

  • Bug fix: fixed markup of HISTORY.txt file [ciobabog refs #5231]
  • Feature: updated for 2.0.10 [szabozo0 #5189]
  • Bug fix: fix pylint warnings [tiberich #5111]
  • Bug Fix: Fixed duplicate key for translation in .pt files [prospchr refs #5162]

4.5 - (2012-05-03)

  • Bug fix: no longer depend on collective.indexing [tiberich #5111]

4.4 - (2012-03-30)

  • Bug fix: check if ver.talkback is None to avoid crash [tiberich #5020]
  • Bug fix: don’t start an uncontrolled number of timeouts in javascript versions popup [tiberich #5020]
  • Bug fix: moved createVersionAjax to its own class; use @@createVersion view to do the versioning. This allows packages to override version creation [tiberich #5020]
  • Feature: added test to see if using collective.indexing is faster [tiberich #5033]

4.3 - (2012-02-15)

  • Feature: added method for checking if context object is latest [demarant]

4.2 - (2011-11-22)

  • Bug fix: Fixed versions portlet for items with non-ASCII chars [voineali #4760]

4.1 - (2011-11-18)

  • Rerelease broken egg

4.0 - (2011-11-18)

  • Change: Cleaned up, the modal box copes with server errors, it displays an error message in case of any error (except apache timeout) [szabozo0 #4612]
  • Feature: Avoid timeout error message on creating new version, display fancybox while copying, show link to the new version when copy is done [szabozo0 #4612]
  • Bugfix: fixed “Permalink to latest version” in case if only one entry is available [szabozo0 #4630]
  • Feature: added a utility view, @@get_interfaces [tiberich #4275]
  • Feature: Added upgrade steps [voineali #4392]
  • Feature: Plone 4.x compatible release [tiberich #4275]

1.10 - (2011-04-07)

  • Bug fix: omitted the change of object to obj which broke the version portlet [ichimdav]
  • Cleanup: of pyflakes warnings [ichimdav #4141]
  • Cleanup: of pylint violations [ichimdav #4140]

1.9 - (2011-02-01)

  • Feature: make versioning trigger IVersionCreated event [tiberich #3988]
  • Change: set effective and expiration date to None when creating a version [tiberich #4000]

1.8 - (2010-10-29)

  • API Change: renamed has_versions to isVersionEnhanced, also coresponding view [tiberich #3278]

1.7 - (2010-10-29)

  • Change: changes _get_random() to make catalog checks, so that it doesn’t return duplicated versionIds [tiberich #3758]

1.6 - (2010-10-07)

  • Use getToolByName instead of acquisition to retrieve portal_membership. [tiberich]

1.5 - (2010-10-06)

  • Add a nextURL parameter in the @@assign_version view [tiberich #3650]

1.4 - (2010-09-30)

  • Feature: Delete comments when creating a new version [ghicaale #3601]

1.3 - (2010-09-17)

  • Bug fix: fixed getting workflow state title [ghicaale]

1.2 - (2010-09-06)

  • Feature: Messages now display title of the workflow state instead of its id [ghicaale #3576]
  • Feature: Versions listing colored based on review_state [ghicaale #3576]
  • Bug fix: Do not display versions in ‘public draft’ for anonymous [ghicaale #3576]

1.1 - (2010-08-16)

  • Feature: If there is no EffectiveDate, version number is computed based on CreationDate [ghicaale #3506]

1.0 - (2010-07-01)

  • Initial release, based on code from eea.dataservice [tiberich]

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 (131.6 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