#4: Show new stuff since last login

Contents
  1. Motivation
  2. Proposal
by Jon Stahl last modified Oct 09, 2006 12:02 AM

Add various methods for showing returning forum visitors which forums and conversations have new content since their last visit.

Proposed by
Jon Stahl, ONE/Northwest
Seconded by
Marshall Mayer, LiveModern.com
Proposal type
User interface
State
completed

Motivation

Returning forum visitors quickly become frustrated by having to wade through all of the old forum content in order to find what's new. This problem only becomes more severe as a forum grows, and can become a huge barrier to effective ongoing user participation in a forum.

Proposal

We believe that there are several simple steps to making it easy for Ploneboard user to find "what's new."


1) In the board contents page, show:
* The total number of conversations & replies for each forum
* The number of new conversations + replies since user's last login

2) In the forum contents page, show:
* The number of new replies since user's last login

3) Create one or more portlets that could be deployed anywhere on the site showing:
* Most recently created forums and/or conversations (since user's last login, or overall if not logged in)
* Most recently active forums and/or conversations (based on # of recent conversations and/or replies since user's last login or overall if not logged in)

Comments (5)

Alex Limi Oct 19, 2005 05:17 AM
I agree with the general idea here, but it should be executed with care to be scalable and usable in big installations.

The two killer functionalities I see are

- Unanswered posts (great for people trying to help newbies)

- Unread posts since the last time you logged on

It's very easy to make too many of these available, though - and kill caching as a result. Especially the portlet approach is a disaster waiting to happen. ;)

It all depends on the scale of your site of course - but a general pattern in Plone in the upcoming versions is that we're trying to make it as cache-friendly as possible, and move often-updated listings like the Review portlet and Latest Changes portlet to a separate "Dashboard" template that can have different caching policies.
Jon Stahl Oct 19, 2005 06:14 AM
Scalability is very, very important. For this feature and everything about Ploneboard.

It's all about "unburying" new/hot content in the forums, which becomes ever more important on a large site.

Marshall Mayer Oct 19, 2005 04:49 PM
If we agree on this approach, what happens until some future verson of Plone (more cache-friendly)?
Martin Aspeli Jun 19, 2006 09:58 PM
It's not very hard do to this - but I'm unsure where in the UI we display this information? Just a separate form with a link form the forum front page?

Martin
Marshall Mayer Jul 03, 2006 12:55 PM
I'll reproduce here an email exchange between myself and Wichert on what these pages should look and act like. Feedback needed here ASAP.

Marshall proposal: A portlet should be developed, but not installed anywhere as part of
the quickinstall. The title of the portlet should be "forum
comments". Each list entry should include the title of the
conversation, the title of the forum (in parentheses, right after the
conversation title), and the date of the new comment (all preceded by
a graphic, and alternating background). It should include only the 5
most recent comments, most recent first. Pretty standard stuff. A
More... link should take you to the page described below.

Wichert comment: In what context should those be searched? Should the portlet be
site-global?

Marshall proposal: A page should be developed that displays all of the most recent
comments, most recent comments first. If you are not logged in, it
will display all recent comments. If you are logged in, it will
display all comments since your last login, most recent first.

Wichert comment: Unfortunately it is not always possible to know the last login time:
the last login time is only recorded when someone uses the login form to
log in. If you use single sign-on, HTTP authentication, session cookies
or any other method which does not use the login form it is not
recorded.

Marshall proposal: The link to this page (besides in the portlet) should be on each main
page template (for all forums, for all conversations, and for all
comments in a conversation), near the top of the page (across from
the up to links, underneath the rss/print/email/toggle buttons?). The
page itself should list all recent comments, with the following
columns: forum title (each list entry linked to the actual forum);
conversation title (each list entry linked to the actual
conversation); author (each list entry linked to the author's profile
that originated the conversation); comments (with the number of
comments to the specific conversation); and last comment (each list
entry to include the date and time and the author of the last
comment, linked to the actual comment). Once a list entry has been
accessed in a particular session, the list entry should be grayed
out. List entries should be kept to one line, and 20 items should be
listed per page. Access to previous and next pages should be linked.

Wichert comment: This will violate one of the Plone principles: no use of sessions.

Marshall proposal: Conversations that have never received a comment should also have
their own page. It should be like the most recent comments, but made
visible only to accounts that have other than membership permissions
(i.e., all listings on this page are specific to the account because
the account has reviewer or owner in a specific forum, or manager
permissions for the site). The link to this page should be next to
the links above, but visible only if you have permission to view the
page.

Wichert comment: Why do you want to restrict it? The required information is already
accessible to normal members, just not as conveniently. Adding extra
restrictions makes it a lot more expensive to generate the page: we will
have to do manual security checking and wake up a lot of objects.

I'll respond below...