Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

https://github.com/collective/collective.messagesviewlet/actions/workflows/plone-package-test.yml/badge.svg?branch=master https://coveralls.io/repos/collective/collective.messagesviewlet/badge.svg?branch=master PyPI badge

collective.messagesviewlet

Add-on displaying manager defined messages in a viewlet

The three message types.

Features

Messages are defined in control panel.

Multiple messages can be displayed together in the viewlet.

A message contains the following configuration attributes:

  • text : displayed text in the viewlet

  • message type : info, significant, warning (different layout in the viewlet)

  • can hide : if checked, the user can hide the message (mark as read)

  • start date : displaying start date (optional)

  • end date : displaying end date (optional)

  • required roles : user must have one of the required roles (optional)

  • use local roles : message displayed for users having Reader local role on message (optional)

  • location : full site or homepage only

Local messages can also be authorized (through control panel) to be added in any folderish content types and you can then choose if / on which levels they display.

The collective.behavior.talcondition is enabled, providing 2 attributes.

  • tal condition : optional tal expression evaluated on viewlet context

  • bypassing roles : optional roles bypassing the tal condition

The management interface.

A workflow is provided with the following states:

  • inactive : not displayed

  • activated : displayed

The hiding functionality uses a cookie. It is necessary to (re-)activate a message to “reset” the cookie. After new activation, the message will be displayed again even for users that hide it.

The optional ‘messages’ profile adds some usefull examples that can be activated when needed:

  • message for scheduled maintenance (limited to Member)

  • message for imminent or current maintenance : (given to anonymous)

  • message for staging site

There is also a PseudoMessage class that can be instantiated and used in viewlet templates.

Limitations

This add-on has been developed on Plone 4.3, but works with Plone 5 and Plone 6 too.

Current branch is tested on:

  • Python 2.7 / Plone 4.3.x & Plone 5.1.x

  • Python 3.7 / Plone 5.2.x

  • Python 3.8 / Plone 5.2.x & Plone 6.0.x

Improvements

  • Modify hidden_uid when some fields are changed: end when gone, can_hide (to unchecked), start when end is gone

  • Message definition from file system

  • Message definition from rss feed

Translations

This product has been translated into

  • English

  • French

Installation

Install collective.messagesviewlet by adding it to your buildout:

[buildout]

 ...

 eggs =
     collective.messagesviewlet

and then running “bin/buildout”

Contribute

Support

If you are having issues, please let us know.

License

The project is licensed under the GPLv2.

Contributors

Changelog

1.0b5 (2026-10-22)

  • Fix messages disappearing (or appearing) up to 2 hours too early when the server isn’t in UTC: the catalog was queried with a naive local “now”, which the start/end DateRecurringIndex reads as UTC [remdub]

  • add_message: default start is now computed at call time, in the portal timezone, instead of once at import time [remdub]

1.0b4 (2025-04-24)

  • Add Plone 6.1 compatibility by replacing pkg_resources with importlib [remdub]

1.0b3 (2023-08-24)

  • Add upgrade step : Remove deprecated control panel action [boulch]

  • Improve uninstall product [boulch, gbastien]

1.0b2 (2022-12-26)

  • Fix bundle registry upgrade step [laulaz]

1.0b1 (2022-12-22)

  • Migrate to Plone 6.0.0: remove dexteritytextindexer, use new simplified resources registry, fix styles, fix icons, … [boulch, laulaz]

  • Add local messages feature. Local messages can be added in any folderish content types and you can choose if / on which levels they display. [boulch]

  • Protect messages-config folder with one-state private workflow. [boulch]

  • Add control panel (with messages-config folder link). [boulch]

  • Use JS to show/hide messages when closed, to avoid caching problems (#12). [laulaz]

  • Update / improve translations. [boulch, laulaz]

0.23 (2020-04-17)

  • Fix tests & travis build (#8). [laulaz]

  • Prevent a bug when compare 2 dates with different timezone format. [boulch]

0.22 (2020-01-15)

  • Fix bug when message configuration don’t permit to hide this message (close button stayed). [boulch]

  • Adapted code for Plone5.2/Py3. [gbastien]

0.21 (2019-10-14)

  • Bypass allowed content types contraint when (post)install messagesConfig container [boulch]

0.20 (2019-08-23)

  • Added parameter caching=True to utils.get_messages_to_show, if True, the method result is cached in the request for given context. [gbastien]

0.19 (2019-07-15)

  • Added PseudoMessage class that be be used in viewlet template. [sgeulette]

0.18 (2019-05-27)

  • Define version to 2000 in metadata.xml of plone4 profile or upgrade step to 2000 is always displayed. [gbastien]

0.17 (2019-04-23)

  • Evaluate TAL condition using behavior evaluate method instead calling directly submethod utils.evaluateExpressionFor so behavior method complete_extra_expr_ctx is called. [gbastien]

  • Call JS on portal_url so it can be cached by the browser. [gbastien]

  • Tests on Plone5 and Plone4. [bsuttor]

  • Manage profiles differently [sgeulette]

  • Moved MessagesViewlet.getAllMessages code to utils.get_messages_to_show so it is easily callable from outside. [gbastien]

  • Be defensive while managing TZ of message dates : do not set it if already set, it fails, moreover, indexing a metadata from a date attribute that had no TZ to one having TZ fails so undindex/reindex the entire message. [gbastien]

0.16 (2018-10-18)

  • Corrected import step dependencies to avoid unresolved warning. Save really changes ! [sgeulette]

0.15 (2018-10-11)

  • Corrected import step dependencies to avoid unresolved warning. [sgeulette]

0.14 (2018-07-23)

  • Generate new uid when message is activated or re-activated. [sgeulette]

0.13 (2018-06-13)

  • Add <span> around cross <img> to ease override. [mgennart]

0.12 (2017-05-30)

  • Corrected image path. [sgeulette]

  • Decrease space between messages [sgeulette]

0.11 (2017-03-16)

  • Added default message to warn that application only runs correctly on Firefox and Chrome, in addition to the already existing message that warned about the application only running correctly on Firefox. [gbastien]

  • Use CheckBoxWidget for IMessage.required_roles` to ease selection when displaying several elements. [gbastien]

  • Use RadioFieldWidget for Bool fields IMessage.can_hide and IMessage.use_local_roles so it is displayed correctly on the view, especially when it is False. [gbastien]

0.10 (2017-02-06)

  • Use INavigationRoot instead of IPloneSiteRoot to check if context is homepage. [bsuttor]

0.9 (2016-03-30)

  • Increased coverage by using vocabulary methods instead of redefining it in tests. [gbastien]

  • Added new example message: bad browser (not Firefox) warning [sgeulette]

  • Use plone.formwidget.datetime to have hour at 0 by default. [sgeulette]

  • CSS fix : display ‘cursor: pointer;’ when hovering the close button. [gbastien]

  • Added ‘MessagesConfig’ to site_properties.types_not_searched. [gbastien]

0.8 (2016-01-18)

  • Added parameter ‘activate’ to utils.add_message that makes it possible to create an ‘activated’ message directly. [gbastien]

  • Adapted tests to use utils.add_message instead of duplicating this code. [gbastien]

0.7 (2015-11-17)

  • Do not pass a default ‘context’ in utils._ to avoid strange ConnectionStateError. [gbastien]

  • Give context to translate method. [sgeulette]

  • Corrected and added icon type images. [sgeulette]

0.6 (2015-09-18)

  • Simplify workflow. Only one activated state. Unrestricted search results before filtering. Added ‘use local role’ boolean attribute. [sgeulette]

  • Updated default messages [sgeulette]

  • Added local roles test [sgeulette]

  • Renamed bad transition name [sgeulette]

0.5 (2015-09-14)

  • Removed useless dependency on z3c.jbot. [gbastien]

  • Corrected rst in readme. [sgeulette]

0.4 (2015-09-10)

  • Use full url for readme images to display correctly on pypi. [sgeulette]

0.3 (2015-09-10)

  • Translate title configuration folder. [sgeulette]

0.2 (2015-09-09)

  • Added utils method to create message. Added example profile to add some messages. [sgeulette]

0.1 (2015-09-08)

  • Initial release. [sgeulette, anuyens, DieKatze, boulch]

Metadata

Release files for collective.messagesviewlet 1.0b5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for collective.messagesviewlet 1.0b5
File Size Uploaded Provenance Actions
collective_messagesviewlet-1.0b5.tar.gz 218.9 kB Without provenance Details for collective_messagesviewlet-1.0b5.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for collective.messagesviewlet 1.0b5
File Interpreter ABI Platform Actions
collective_messagesviewlet-1.0b5-py3-none-any.whl Python 3 none any Details for collective_messagesviewlet-1.0b5-py3-none-any.whl

Total release size: 297.0 kB

Release files / collective_messagesviewlet-1.0b5.tar.gz

Download URL collective_messagesviewlet-1.0b5.tar.gz
Size 218.9 kB
Tags Source
SHA-256 checksum
How to use checksums
03bfbdc6cf09bb55c52abc50f2597759fc632c0247937621e10383dda60fbc16
BLAKE2b-256 checksum
How to use checksums
5a22bbe2f491138be5fdb871a5d06a6ed0565772f33cc99cff2f38eba349cc50
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.3

Release files / collective_messagesviewlet-1.0b5-py3-none-any.whl

Download URL collective_messagesviewlet-1.0b5-py3-none-any.whl
Size 78.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9727e38594a13bcbefec9e3d4701acee2ebb98e01b810d05f22f990753c27123
BLAKE2b-256 checksum
How to use checksums
9a495fc962d91150b368d33ac3d849e7e3c925a31ffd8f11a96078818077437c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.3

Security for collective.messagesviewlet 1.0b5

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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page