Package: collective.cover
Table of ContentsLife, the Universe, and EverythingDemoUse casesWho is using it?Mostly HarmlessKnown issuesDon’t PanicInstallationDevelopmentUpgrading from 1.x to 2.xNot entirely unlikeReleasing using zest.releaserShare and EnjoyChangelog3.0.0 (2023-03-29)2.2.3 (2021-02-02)2.2.2 (2019-12-27)2.2.1 (2019-12-24)2.2.0 (2019-02-26)2.1b2 (2018-10-04)2.1b1 (2018-09-28)2.0b1 (2018-08-24)1.7b3 (2018-07-09)1.7b2 (2018-04-27)1.7b1 (2018-04-27)1.6b5 (2017-11-21)1.6b4 (2017-10-30)1.6b3 (2017-10-23)1.6b2 (2017-09-01)1.6b1 (2017-06-23)1.5b1 (2017-06-12)1.4b1 (2016-12-14)1.3b1 (2016-09-12)1.2b1 (2016-07-04)1.1b1 (2016-03-31)Life, the Universe, and Everythingcollective.coveris a package that allows the creation of elaborate covers
for website homepages, especially for news portals, government sites and
intranets that require more resources than a simple page or collection can
offer. However, despite offering rich resources to build a cover,collective.coveralso provides a very easy mechanism for managing its
contents, built around a drag-and-drop interface.collective.coveris based onBlocksandTiles,
likeMosaic,
the new layout solution for Plone.NoteStarting from version 2.0b1 this package is compatible with Plone 5.1;
nevertheless, there are someknown issues.DemoFor impatient types, there is a demo installation of collective.cover onHeroku.
It needs about 60 seconds to spin up and it will purge all changes after about an hour of non-usage.Use casesSuppose you are running The Planet, a news portal that has a bunch of editors
focused on getting news on different topics, like Economy, Health or Sports.If you are the main publisher of the site, you may want to delegate the
construction of the front page of the Economy section to the people working on
that content area, but you might not want them messing around the Sports
section as well.Also, suppose you have the final game of the World Cup and the match is going
to be defined on penalties: you may want to prepare a couple of cover pages
and publish the right one focused on the team that won in the end.These are the kind of issues we want to solve with this package; we are still
far from it, but that is the idea.Who is using it?These are some of the sites usingcollective.cover:CartaCapital(BR)Clean Clothes Campaign(NL)Conselho Federal de Administração(BR)La Jornada(MX)Palácio do Planalto(BR)Portal Brasil(BR)Rede Brasil Atual(BR)Venezolana de Televisión(VE)European Climate Adaptation Platform(EU)The Presidency of Brazil usescollective.coveron the front page of its site.Mostly HarmlessGot an idea? Found a bug? Let us know byopening a support ticket.Known issuesURI validation happens outside modal window.
This is an issue present on Banner and Basic tiles.Package is not compatible with standard Plone tiles.
This will be addressed in a future release, if we get an sponsor.See thecomplete list of bugs on GitHub.Don’t PanicWe are currently working on the documentation of the package; this is what we have right now (contributions are always welcomed):Quick Tour video on YouTube.End user documentationDeveloper documentationInstallationTo enable this package in a buildout-based installation:Edit your buildout.cfg and add the following to it:[buildout]...eggs=collective.coverIf you want to use the relation field you must use the[relations]extra in your buildout configuration.[buildout]...eggs=collective.cover [relations]After updating the configuration you need to run ‘’bin/buildout’’, which will
take care of updating your system.Go to the ‘Site Setup’ page in a Plone site and click on the ‘Add-ons’ link.Check the box next tocollective.coverand click the ‘Activate’ button.NoteYou may have to empty your browser cache and save your resource registries
in order to see the effects of the product installation.DevelopmentWe usewebpackto process static resources on this package.webpackprocesses SCSS and JS files, minifies the resulting CSS and JS, and optimizes all images.To contribute, you should start the instance in one shell and start webpack watcher on another with the following command:$bin/watch-coverThen go towebpack/appfolder and edit SCSS and JS files;webpackwatcher will automatically create the final resources in the right place.There are also other commands added to handle more complex scenarios.The following command will set the buildout node installation in the system PATH,
this way you can usewebpackas described on their documentation.$bin/env-coverThe following command generates JS and CSS without the minify step (it can be used to check the code being generated in a human readable way).$bin/debug-coverThe following command rebuilds static files and exit (insted of keep watching the changes):$bin/build-coverUpgrading from 1.x to 2.xIn version 2.0b1 we removed a hard dependency onplone.app.relationfield.
You must use the[relations]extra in your buildout configuration as stated above,
or your site will break with the following error:AttributeError: type object 'ICatalog' has no attribute '__iro__'Not entirely unlikeOver the years there have been some packages designed to solve the problem of
creating section covers in Plone. We have used and have taken ideas from the
following:CompositePackVery old; the legacy code is so complex that is not maintainable anymore.
It has (arguably) the best user interface of all. Layouts can not be
created TTW. Viewlets are just page templates associated with content
types; you can drag&drop viewlets around the layout. Publishers love it.CMFContentPanelsCode is very old, but still maintained (at least works in Plone 4). Allows
to create complex layouts TTW and use any layout as a template. Easy to
extend and edit (but is terrible to find a content to use). Needs a lot of
memory to work and aggressive cache settings.CollageAllows the creation of layouts TTW but it has (arguably) the worst user
interface of all. It is easily extended and there are several add-ons
available that provide new functionality for it.Home Page Editor of the Brazilian Chamber of Deputies SiteStrongly based onCollage, this package was presented at theWorld Plone Day 2012 Brasilia.
It allows editing of home pages and the definition of permissions on blocks of content.
Works under Plone 3 only.collective.panelsA new package that lets site editors add portlets to a set of new
locations: above and below page contents, portal top and footer. The
package comes with a number of flexible layouts that are used to position
the portlets, and locations can be fixed to the nearest site object, to
facilitate inheritance. Incollective.cover(this package), we don’t
want to use portlets at all.Releasing using zest.releaserStatic resources on this package are generated usingwebpackand aren’t included in VCS.
If you release using zest.releaser you have toupload manually the files to PyPIor you will end with a broken distribution:runlongtestandfullrelease, as usuallyanswer “no” when asked to upload to PyPI and continue normallydo a checkout to the tag you’re releasingrunbin/build-coverto update static filescreate the distribution files usingpython setup.py sdist bdist_wheelas usualupload the files usingtwine upload dist/*In case of errors you will have to create a new release as the PyPI Warehousedoesn’t allow for a filename to be reused.Share and Enjoycollective.coverwould not have been possible without the contribution of
the following people:André NogueiraAsko SoukkaCarlos de la GuardiaCleber J. SantosDaniel JowettDavi LimaDenis KrienbühlÉrico AndreiFranco PellegriniFred van DijkFulvio CasaliGiorgio BorelliGonzalo AlmeidaHéctor VelardeJeanMichel FRANCOISJuan A. DíazJuan Pablo GiménezKuno WoudtLaura Pérez MayosMarcos F. RomeroMaurits van ReesRodrigo Ferreira de SouzaSilvestre HuensThiago CurveloThiago TamosauskasLaunched Pixels(icon)You can find an updated list of package contributors onGitHub.Development sponsored by Open Multimedia, Ravvit andSimples Consultoria.ChangelogThere’s a frood who really knows where his towel is.3.0.0 (2023-03-29)Adds icons for the Cover content type and for the Compose and Layout tabs.
[wesleybl]Fix error when clicking on a folder in Content Tree.
[idgserpro]Fix error when clearing content chooser input (fixes#942).
[wesleybl]Improve content chooser search input layout.
[wesleybl]Fix layout scroll - impossible to save.
[idgserpro]Remove patch inProducts.ZCatalog.query.IndexQuery.Products.ZCatalog5.4 fix bug when search parameter is a record.
[wesleybl]Drop suport to Python 3.6.
[wesleybl]Use plone resource instead of browser resource.
[wesleybl]Remove javascript customization that was making ajax calls synchronous.
[wesleybl]Shows selected folder path in Content Tree (fixes#921).
[wesleybl]Add missing dependencies:Products.MimetypesRegistry,Products.ZCatalog,persistent,plone.locking,zope.container,zope.traversing,ZODBandZope.
[wesleybl]Remove unused dependencies:plone.app.content,plone.app.jquery,cssselect,testfixturesandtransaction.
[wesleybl]Fix link integrity (fixes#615).
[wesleybl]Unlock Cover when editor leaves Compose/Layout tabs (fixes#916).
[wesleybl]Fix PicklingError when editing basic tile that contains an image (fixes#907).
[wesleybl]Reorganizes the js events register in Compose when we drag content from one tile to
another, in order to prevent the content from remaining on the source tile.
[wesleybl]InPersistentCoverTileDataManagerset, purge tile after put values into storage to
prevent old values from being cache, since purge accessestile.data.
Also updated the attribute where data is saved forself.storage.
[wesleybl]Show Cover in navbar.
[wesleybl]Remove custom message of onbeforeunload popup. Browsers no longer display the custom
message.
[wesleybl]Apply patch inProducts.ZCatalog.query.IndexQuery, to avoid error when clicking on a day with event in the calendar tile.
[wesleybl]Fix calendar tile in Plone 5.2 (fixes#633).
[wesleybl, pbauer]Remove old upgrade steps.
[wesleybl]Add suport to Python 3.6, 3.7 and 3.8.
[pbauer]Drop support for Plone 4.x
[cleberjsantos]Add support to Plone 5.2.
[cleberjsantos]Drop PFG support
[cleberjsantos]Fix plone.namedfile scales
[cleberjsantos]Correction of the visualization of the image scales
[cleberjsantos]Fix Js registry with new concepts in Plone 5
[cleberjsantos]Drop Deco grid
[cleberjsantos]Refactor tests
[cleberjsantos]2.2.3 (2021-02-02)Fix removing a list tile item.
[fredvd]Fixed changing the order in a list tile by drag and drop.
[maurits]2.2.2 (2019-12-27)Fix brown bag release.
[hvelarde]2.2.1 (2019-12-24)Fix multiple regressions caused by the migration of JavaScript code to webpack in release 2.2.0 (fixes#859,#861,#868and#871).
[Mubra]2.2.0 (2019-02-26)Deprecate resource registries; instead, we now use a viewlet inplone.htmlheadto load JavaScript code.
This simplifies maintainance of the add-on among multiple Plone versions.
[rodfersou]Process static resources using webpack.
[rodfersou]2.1b2 (2018-10-04)Fix behavior ofremote_urlfield on Basic tiles as populating them from an alternate URL could result on incorrect links stored.
Remove upgrade step from profile version 22 used to update the field;
we include a new upgrade step that lists suspicious tiles to help fix any issue by hand (fixes#839).
[hvelarde]2.1b1 (2018-09-28)Fixremote_urlfield definition in Banner tile and hideatag if no URL is defined.
[hvelarde]Links on Basic tiles are now editable (fixes#397).
[hvelarde]AvoidTypeErrorwhen a style used on a tile was removed (fixes#827).
[rodfersou]AvoidKeyErrorwhen tile schema has changed (refs.brasil.gov.portal#524).
[hvelarde]Fix package uninstall.
[hvelarde]2.0b1 (2018-08-24)WarningThe PFG tile is now deprecated an will be removed in collective.cover 3.
This version removes the hard dependency onplone.app.relationfield;
if you’re ugrading from a previous version ofcollective.coveryou must add the extra[relations].
Upgrading from versions below 1.2b1 is no longer supported.
You must upgrade at least to version 1.2b1 before upgrading to this release.Update package dependencies.
[hvelarde]Deprecate PFG tile; it will remain available in Plone 4, but not in Plone 5.
[hvelarde]Remove hard dependency onplone.app.relationfield;
if you’re ugrading from a previous version ofcollective.coveryou must add the extra[relations](closes#684).
[hvelarde]Remove predefined layouts as they were created using Deco grid system and they are broken in Plone 5 (closes#652).
You can still create your own layouts using your favorite grid system as usually.
[rodfersou]Remove upgrade steps for old, unsupported releases.
[hvelarde]Remove deprecated adaptersCollectionUIDsProvider,FolderUIDsProviderandGenericUIDsProvider.
[hvelarde]Fix retrieval of available image scales in tile layout configuration for Plone 5 (fixes#781).
[rodfersou]Fix edit list element in compose tab on Plone 5 (fixes#770).
[rodfersou]Fix display of tabs in content chooser for Plone 5.
[cdw9, rodfersou]1.7b3 (2018-07-09)Review multiple class selection when there are many classes (closes#785).
[rodfersou]Small code refactor to increase future Python 3 compatibility.
[hvelarde]1.7b2 (2018-04-27)Fix multiple CSS class selection in tile configuration for tiles different from basic tile.
[rodfersou]1.7b1 (2018-04-27)Update i18n, Brazilian Portuguese and Spanish translations.
[hvelarde]Allow selection of multiple CSS classes in tile configuration.
[rodfersou]Small code refactor to increase future Python 3 compatibility;
add dependency onsix.
[hvelarde]Provide alternative text for image fields in tiles (closes#628).
[hvelarde]1.6b5 (2017-11-21)Fix purging of tile annotations when removing tiles from the cover layout.
This solves exponential growth of cover objects when using versioning,
leading to check in/check out (plone.app.iterate) timeouts on backends using proxy servers (fixes#765).
[rodfersou]Do not auto include package dependencies, but declare them explicitly.
[hvelarde]1.6b4 (2017-10-30)Revert declaringcover_layoutfield in content type schema asreadonly(fixes#761).
[hvelarde]1.6b3 (2017-10-23)Fix edit view of carousel tile when one carousel item has a unicode character in its title (fixes#757).
[fulv]Explicitly declarecover_layoutfield in content type schema asreadonly;
Robot Framework tests pass again with latest version of Plone 4.3 (fixes#759).
[hvelarde]1.6b2 (2017-09-01)Use correctimage/x-iconMIME type for ICO file format (fixes#750).
[hvelarde]Fix IDatetimeWidget tile override if using plone.app.contenttypes >= 1.1.1:
collective.z3cform.datetimewidget is merged into plone.formwidget.datetime,
so the zcml must override the template from plone.formwidget.datetime.z3cform.interfaces.IDatetimeWidget
as well. (closes#745).
[idgserpro]Review tile refresh using custom event.
[rodfersou]1.6b1 (2017-06-23)Fix deprecation of adapters made in previous release, as they were incorrectly removed.
Code removal will still happen in collective.cover v1.7.
[idgserpro]Use absolute URL for root in content chooser tree (fixes#733).
[maurits]Fix content chooser clear button to update results (closes#727).
[rodfersou]Drop support for Plone 4.2.
[hvelarde]Fix typo in basic tile template (is_emptyis not a property but a function).
[hvelarde]1.5b1 (2017-06-12)WarningIf you are upgrading plone.app.tiles note that latests versions of this package no longer depend on plone.app.drafts.
You should explicitly add plone.app.drafts to theeggspart of your buildout configuration to avoid issues.
You can safely uninstall plone.app.drafts after that, if you are not using it.Adapters used to get the items inside a folder or the results of the query in a collection were deprecated.
The following classes will be removed in collective.cover v1.7:ICoverUIDsProvider,CollectionUIDsProvider,FolderUIDsProviderandGenericUIDsProvider.Information stored on basic tiles populated with private content is no longer shown to users without proper permissions (fixes#721).
[hvelarde]Dropping a folder on a carousel tile no longer populates the tile with the items inside the folder;
populating the carousel tile with the results of the query in a collection is still supported.
[rodfersou, hvelarde]Dropping a folder or a collection into a list tile previously resulted in the tile being populated with the items inside the folder or the results of the query in the collection,
making impossible to have folders or collection as items of the list tile themselves (fixes#713).
[rodfersou, hvelarde]Update recommended versions of Blocks dependencies to keep in sync with current Mosaic development.
[hvelarde]Fix order of UUIDs of sorted function in ListTile’s ‘results’ method.
[idgserpro]Review content chooser events to happen just at Compose tab (fixes#710).
[rodfersou]Do not assume all tile types have schemas.
[alecm]Do not declare theCoverclass as an implementer ofIDAVAware;
This makes absolutely no sense and is causing an error when doing a GenericSetup export (fixes#396).
[hvelarde]1.4b1 (2016-12-14)Fix@@updatetilecontentview to avoid rendering outdated data.
[hvelarde]FixTypeErrorwhen changing default image scale on basic tiles (fixes#686).
[rodfersou]Fixed adding a ‘more’ link in list tiles.
Previously you could select an item to use as ‘more’ link,
but it did not stick.  [maurits]Thereplace_with_objectsmethod was removed from the list tile;
usereplace_with_uuidsinstead.
[hvelarde]“Add Content” button is now shown also in Plone 5.
[hvelarde]Avoid exceptions while using the content chooser in Plone 5.
[hvelarde]Add helper function to get the human representation of a mime-type on Dexterity-based content types.
This fixed anAttributeErrorthat was causing an exception on Plone 5.
[hvelarde]We now get the types that use the view action in listings in Plone 5 also.
[hvelarde]ESI support was refactored; now all tiles inherit fromESIPersistentTileby default.
[hvelarde]Add plone.protect when save layout (fixes#651).
[rodfersou]Usepat-modalinstead ofprepOverlayfor Plone 5 (fixes#641).
[rodfersou]Enforce usage of plone.app.tiles >= 1.1.0 to avoid creation of zillions of empty blob files when using versioning (fixes#532, huge HT @datakurre).
[hvelarde]1.3b1 (2016-09-12)WarningA huge code refactoring was made as part of the removal of the dependency on five.grok.
The following unused views were removed:AddCTWidget,AddTileWidget,SetWidgetMap,UpdateWidgetandRemoveTileWidget.
All Compose tab helper views use nowcmf.ModifyPortalContentpermission.
All Layout tab helper views use nowcollective.cover.CanEditLayoutpermission.
TheBaseGridclass is now located in thecollective.cover.gridsmodule.Update Traditional Chinese translation.
[l34marr]Remove dependency on five.grok (closes#510).
[l34marr, rodfersou]Use theX-Robots-Tagheader to avoid indexing of image scales on default view;
this will reduce the number of 404 (Not Found) responses generated by crawlers visiting the site in search of volatile content.
[hvelarde]Enforce usage of plone.api >= 1.4.11 to avoidTypeErrorwhile running upgrade step to profile 14.
[hvelarde]1.2b1 (2016-07-04)A new calendar tile was added.
The tile dislays a calendar that highlights the events taking place on the current month,
the same way as the standard calendar portlet does.
[rodfersou]HandleAssertionErroron upgrade step to profile 13 to avoid failures when a cover object has duplicated tiles on it.
Now, an error message will be logged and the object will be skipped;
you must manually remove the duplicated tiles (closes #619).
[hvelarde]1.1b1 (2016-03-31)WarningThis release removes some packages from the list of dependencies.
Be sure to read the whole changelog and apply the related changes to your buildout configuration while upgrading.
Also, note that we have reorganized the static resources contained here;
as some of them are not registered in Resource Registry tools, you could end with a broken layout if you don’t clear your intermediate caches.Enforce usage of plone.app.blocks 2.2.1 to avoid issues with tiles breaking the whole cover page.
[hvelarde]Add option to select random items in collection tile (closes#608).
[rodfersou]Carousel tile now uses a relative ratio to set its height (fixes#414).
[terapyon, hvelarde]Remove hard dependency on plone.app.referenceablebehavior as Archetypes is no longer the default framework in Plone 5.
Under Plone < 5.0 you should now explicitly add it to theeggspart of your buildout configuration to avoid issues while upgrading.
[hvelarde]Link integrity was refactored to work on all tiles and under Plone 5;
a hard dependency on Products.Archetypes was removed (fixes#578).
[hvelarde, rodfersou]Do not use the calendar tool to discover Event-like objects as it was removed on Plone 5.
Instead, try to guess if an object is an Event by using its catalog metadata.
[hvelarde]Package is now also tested with plone.app.contenttypes installed;
a few bugs related with API incompatibilities among Archetypes and Dexterity were fixed.
[hvelarde]Remove Grok dependency for vocabularies.
[l34marr]You can now use a collection to populate a carousel tile;
search results without a lead image will be bypassed (fixes#574).
[rodfersou]Shows message to user if an exception is thrown in a tile in AJAX calls. (closes#581).
[idgserpro]Fix date format in collection tiles (closes#584).
[tcurvelo]RichText tile no longer breaks with plone.app.widgets installed (closes#543).
[frapell, rodfersou]Add missing dependency on collective.z3cform.datetimewidget.
[hvelarde]Remove hard dependency on plone.app.stagingbehavior as that package is no longer needed in Plone 5.
Under Plone < 5.0 you should now explicitly add it to theeggspart of your buildout configuration to avoid issues while upgrading.
[hvelarde]Implement drag and drop among tiles (closes#487).
[rodfersou]Clean up static files.
[rodfersou]Previous entries can be found in the HISTORY.rst file.