Skip to main content

An activity feed for Plone.

Project description

ftw.activity

ftw.activity provides a view with an activity stream for Plone.

https://raw.githubusercontent.com/4teamwork/ftw.activity/master/docs/screenshot.png

How it works

The feed is based on a simple catalog query restricted to the current context, ordered by modified date so that the newest modifications are on top.

Limitations:

  • The ordering by modified date is not exactly accurate since the precision of the catalog index is only down to the minute.

  • Since it is based on a catalog query each object only appears once even when it is edited multiple times in a row.

  • Only existing objects are listed, so deleting objects will not appear in the feed at all.

  • Only actions which change the modification date are covered.

  • We do not register any links or actions, so that you can integrate it into Plone as you like. See the usage sections.

Usage

  • Add ftw.activity as dependency to your package (setup.py) or to your buildout configuration:

[instance]
eggs +=
    ftw.activity
  • Install the generic import profile in Plone’s addons control panel.

Once the package is installed there is no link to the view. The view is available as /activity on any context, so you might want to place a link anywhere you like or add an action.

For collections, ftw.activity registers an Activity view which can be selected as default view. Just make sure to sort the collection by modification date and reverse it for best experience.

ftw.activity also registers an ftw.tabbedview tab with the name tabbedview_view-activity.

Custom event representations

By default the each event is represented by some metadata (e.g. author with portrait, action, etc) and the title of the modified object.

If you’d like to display more information you can do this by registering a custom representation adapter in your custom code.

Register the adapter in your ZCML:

<adapter factory=".activity.IssueResponseRepresentation"
         for="..interfaces.IIssueResponse *"
         provides="ftw.activity.interfaces.IActivityRepresentation"
         />

create the adapter class (example ./activity.py):

from ftw.activity.browser.representations import DefaultRepresentation
from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile

class IssueResponseRepresentation(DefaultRepresentation):
    index = ViewPageTemplateFile('templates/issue_representation.pt')

    # helper methods when needed

and a template (example ./templates/issue_representation.pt):

<metal:wrapper use-macro="context/@@activity_macros/macros/event">
  <metal:CONTENT fill-slot="body-content">

    <div class="issue-text"
         tal:content="context/text" />

  </metal:CONTENT>
</metal:wrapper>

take a look at the activity_macros for details on what slots you can fill.

Changelog

1.1.5 (2015-05-18)

  • Fix diazo error when fetching more events. [jone]

  • disable diazo themeing for ajax responses. [jone]

1.1.4 (2015-03-25)

  • Fix width of too wide images. [Kevin Bieri]

1.1.3 (2014-11-18)

  • Fixes a bug where the activity view crashed when the modifying user is no longer available. [mbaechtold]

1.1.2 (2014-09-24)

  • Ignore comments in activity view. Fixes a bug where the activity view crashed when comments were added. [jone]

1.1.1 (2014-09-24)

  • Empty brown-bag release.

1.1.0 (2014-09-04)

  • Add support for collections. [jone]

1.0.0 (2014-09-03)

  • Initial implementation.

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

ftw.activity-1.1.5.zip (90.5 kB view details)

Uploaded Source

File details

Details for the file ftw.activity-1.1.5.zip.

File metadata

  • Download URL: ftw.activity-1.1.5.zip
  • Upload date:
  • Size: 90.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for ftw.activity-1.1.5.zip
Algorithm Hash digest
SHA256 d13569503394b4f006bf315b1f04132393889a8e0b45023c1185a11ad19950ae
MD5 1b5a8d82bd6b45f2f3fafda4b5af1c71
BLAKE2b-256 9dc3a1abd9dab7f9749eb64873294c607cbcfb6a8a7c0bbac038791c1e80af88

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page