Opened 5 years ago

Last modified 15 months ago

#6536 accepted enhancement

Introduce the concept of "read" and "unread" comments for better workflow in the admin

Reported by: markjaquith Owned by: markjaquith
Priority: normal Milestone: Future Release
Component: Comments Version: 2.5
Severity: normal Keywords: needs-patch
Cc:

Description

The Moderation Queue is a great way to manage your comment workflow. All comments go in there, and you approve, spam, or delete them. At the end you get a nice little "0" and you know you've dealt with all new comments. This doesn't work for people who don't moderate every comment. They have no idea when they are done, and which comments they have or have not looked at.

I'd like to add a comment_read column to the comments table. It would be either "1" or "0". There would be a new sub-tab for Comments: "Unread comments (%d)" This page would be just like the Moderation page, except that it would only show comments with comment_read = 0. This could act as "comment workflow central" for both people who pre-moderate and people who post-moderate. Unapproved comments would have the actions: Approve, Spam and Delete. Approved comments would have the actions: Archive, Spam and Delete. Clicking any of these actions would both carry out that action AND mark that comment as read, making it disappear from the "Unread comments" page. ("Archive" only marks it as read).

Enterprising theme developers could even have this status shown on the public blog, so that people know whether their comments have been seen.

For background on this idea, please see The Comment Inbox

Note that this has benefits for people who moderate every comment, because they can now store comments in the moderation queue (comments they want to remove from the blog, but not delete) without that getting in the way of their comment workflow.

Change History (4)

Instead of adding an extra column to the comments table, why not handle this in a meta-data table?

  • You don't really need a "read" or "unread" status for every comment: "spam" and "delete" are always in "read" status, in that like your Gmail account, they're not part of the inbox. Unapproved comments are "unread." That leaves distinguishing between "read" and "unread" approved comments.
  • It would use less disk space, since instead of making every one of thousands of comments have a "read" status, we could assign a "read" status meta-value to just "unread" comments (since "unread" comments should be in the minority). Then we would delete that meta-value once the comment is read. I.e. all unread comments have an "unread" meta-value of "1", and read comments don't have an "unread" meta value at all (which also provides simple backwards compatibility).
  • We need that meta-data table anyways, for all kinds of cool things like undo delete, threaded comments, comment voting systems, etc., and we could move the user data there.
  • Owner changed from anonymous to markjaquith
  • Status changed from new to assigned

I'd be fine with that approach. I've long been in favor of comment meta.

  • Component changed from Administration to Comments
  • Keywords needs-patch added
  • Milestone changed from 2.9 to Future Release

this should be on a per user basis, ideally. and stored in a user_meta, once that thing accepts multiple items with same keys.

3 years! We have comment meta now. :)

I would really like to have an "Archive" action to get comments I don't want to delete but don't need in the main list out of the way (like CoTweet had).

Note: See TracTickets for help on using tickets.