Signals

The djangocms_moderation.signals module defines a set of signals sent by Django CMS Moderation.

submitted_for_review

djangocms_moderation.submitted_for_review

Sent when a Moderation Collections is submitted for review, or when select Moderation Requests are resubmitted after being rejected.

Arguments sent with this signal:

sender

djangocms_moderation.models.ModerationCollection class

collection

A djangocms_moderation.models.ModerationCollection instance which was submitted for review

moderation_requests

A list of djangocms_moderation.models.ModerationRequest instances which were submitted for review

Note

It’s possible for this list to contain only some of the requests belonging to the collection being moderated, because only some of the requests required rework.

This case is only possible for resubmitting after a rework.

user

A django.contrib.auth.models.User instance which triggered the submission

rework

A bool value specifying if this was the first time the collection was submitted, or a rework of its moderation requests

published

djangocms_moderation.published

Sent when a Moderation Collections is being published

Arguments sent with this signal:

sender

djangocms_moderation.models.ModerationCollection class

collection

A djangocms_moderation.models.ModerationCollection instance which was submitted to be published.

moderator

A django.contrib.auth.models.User associated with the collection which is the moderator of the collection.

moderation_requests

A list of djangocms_moderation.models.ModerationRequest instances which were published.

Note

It’s possible for this list to contain only some of the requests belonging to the collection being moderated, because only some of the requests were published.

workflow

An instance of djangocms_moderation.models.Workflow which was used for this collection.

unpublished

djangocms_moderation.unpublished

Sent when a Moderation Collections is being unpublished

Arguments sent with this signal:

sender

djangocms_moderation.models.ModerationCollection class

collection

A djangocms_moderation.models.ModerationCollection instance which was submitted to be unpublished.

moderator

A django.contrib.auth.models.User associated with the collection which is the moderator of the collection.

moderation_requests

A list of djangocms_moderation.models.ModerationRequest instances which were unpublished.

Note

It’s possible for this list to contain only some of the requests belonging to the collection being moderated, because only some of the requests were unpublished.

workflow

An instance of djangocms_moderation.models.Workflow which was used for this collection.

How to use the moderation publish signal for a collection

The CMS used to provide page publish and unpublish signals which have been removed in django CMS 4.0. You can use the signals provided above to replace these.

django CMS Moderation provides a way to take further actions once a collection has been published. The published event is the last event executed for a moderation.

from django.dispatch import receiver

from djangocms_moderation.signals import published


@receiver(published)
def do_something_on_publish_event(sender, collection, moderator, moderation_requests, workflow, **kwargs):
    for moderation_request in moderation_requests:
        ...  # e.g. invalidate caches, ping a webhook, update a search index