Download Reference Manual
The Developer's Library for D
About Wiki Forums Source Search Contact

Ticket #148 (closed task: fixed)

Opened 2 years ago

Last modified 2 years ago

Forum plugin for Trac

Reported by: larsivi Assigned to: brad
Priority: major Milestone: 0.95 Beta1
Component: Web frontend Version:
Keywords: Cc:

Description

This will be used for the forum functionality for the Tango project

Attachments

topic3.jpg (148.9 kB) - added by pragma on 12/20/06 00:23:02.
Updated topic view - shows avatar and quoting support.
timeline1.jpg (121.5 kB) - added by pragma on 12/21/06 21:57:56.
Preliminary timeline support for message activity
search1.jpg (119.2 kB) - added by pragma on 01/02/07 15:43:36.
Profile Searching
search2.jpg (148.1 kB) - added by pragma on 01/02/07 16:00:42.
Forum Searching
move.jpg (134.2 kB) - added by pragma on 01/05/07 00:39:34.
Move Message and Bulk Delete Capability

Change History

12/06/06 13:49:25 changed by pragma

  • status changed from new to assigned.

This will function as a replacment for PHPBB, as well as an augmentation to Trac's interactivity and data management capabilities.

I have some concerns, due to the aggresive timeline that we're on, about the complete feature set that will be available at launch (Jan 1st). As a backup plan, I've organized the features to add in order of precidence for our needs on this project. As Brad can switch dsource over from PHPBB to Tracforums any time he wants, we can always launch Tango with the forum plugin first, then wait until the right time to go 100% Trac.

The following are my primary concerns and are mostly complete:

  • Emulating core functionality of PHPBB (posting, moderation, hiding and locking)
  • Data migration from PHPBB
  • Macros used to display forum activity in the wiki
  • Security

Extra features that are already done:

  • Multiple Avatars per profile
  • Project-specific forums (each project is like it's own PHPBB instance)
  • PHPBB-like data model - forums/topics/mesages
  • Profile 'biographies' (instead of a zillion fields for things)

The following are planned but may not make the cut for the inital release:

  • RSS
  • Pagination
  • Searching
  • Notifications
  • Sticky, Announcement and other topic meta-types

The following are available in PHPBB, but are going to be dropped

  • Private Messages
  • One title per message - was pretty much rendundant anyway

12/16/06 23:17:37 changed by pragma

Added screenshots so folks can see how this is going.

12/17/06 23:34:28 changed by pragma

The converter program is pretty much complete. Overall, this plugin is hovering at around 80%.

The only thing it doesn't do is convert all the profile contact info fields into something useful in the new design. I think these can be dumped into the 'bio' field of the profile, as not to over-complicate the new schema.

The various forum views now show date/time information everywhere you'd expect. The recent activity page works beautifully.

Todo:

  • Do a security sweep and make sure that the hidden and locked features work
  • Add delete confirmation screens where missing
  • Wiki edit fields seem to forget how many lines you want to display
  • Improve .css (possibly break away from the Trac stylesheets a little bit)
  • Remove generic RSS link and add RSS support to each view instead
  • Look into adding forum flavors like "sticky" and "announcement"
  • Rebuild auto-installer based on postgres.sql file.
  • Implement Searchable interface to Trac
  • Implement Timeline interface to Trac (optional - not sure about this)

The last point there is very debatable. While the forum now supports it's own "here's what you missed" interface, the timeline gives a great day-by-day rundown of activity. The problem is that the timeline could very easily be overrun with entries if there's a lot of forum activity, were this implemented.

12/18/06 05:53:43 changed by larsivi

About the Timeline interfacing ... no need to stress with it, but I would very much like this kind of feature. I use the timeline rss feed to keep myself updated to all activity, and since you can click on and off which parts you want to see, you shouldn't be too worried about crowding. It can be ticked off by default also, like the ticket change information.

12/20/06 00:19:45 changed by pragma

I researched the timeline and search interfaces. These should be easy to implement.

I'm almost complete with the style and CSS sweep of the site. It's starting to feel like an actual forum, and is at least as practical as what we have here under the ticket system.

The PHPBB converter was upgraded to take HTML entities into account when transcoding textual data from latin1/ASCII to UTF8. I also added a #!quote processor to allow for quoting, just like under PHPBB.

One thing that is a "must-have" is the ability to relocate data in the system. I haven't worked out all the interface particulars yet, but it should be doable.

12/20/06 00:23:02 changed by pragma

  • attachment topic3.jpg added.

Updated topic view - shows avatar and quoting support.

12/21/06 21:57:56 changed by pragma

  • attachment timeline1.jpg added.

Preliminary timeline support for message activity

12/30/06 09:44:32 changed by larsivi

Can the forum plugin and/or macros be used to attach a discussion thread to a particular page? For instance for comments to a reference document?

01/01/07 21:37:06 changed by pragma

Lars: Yes. I had this in mind.

For instance, Tango could have a "Documentation" Fourm, with a topic for each section of the documentation tree - as many as you'd need. Each topic could be displayed into each wiki section as appropriate.

To get doc-comments to work correctly, I'll have to add two additional macros. One to display a topic's comments, and another to put an editing interface for comment into the page. The latter isn't as crucial since folks can be directed to the forum interface to add comments if needed.

01/02/07 15:43:36 changed by pragma

  • attachment search1.jpg added.

Profile Searching

01/02/07 16:00:42 changed by pragma

  • attachment search2.jpg added.

Forum Searching

01/02/07 16:02:25 changed by pragma

Updated Todo:

  • Do a security sweep and make sure that the hidden and locked features work
  • Add delete confirmation screens where missing
  • Wiki edit fields seem to forget how many lines you want to display
  • Remove generic RSS link and add RSS support to each view instead
  • Look into adding forum flavors like "sticky" and "announcement"
  • Rebuild auto-installer based on postgres.sql file.

01/05/07 00:39:34 changed by pragma

  • attachment move.jpg added.

Move Message and Bulk Delete Capability

01/05/07 00:55:56 changed by pragma

Revision 31 now has bulk move and delete options for all topics. No updates for macros or the conversion tool this round.

The move message control is a slight departure from what PHPBB offers. In essence, it will only allow moves from one topic to another, in one single step. This way, an administrator can easily split and join topics as they see fit. It also only applies to the topic's replies, as the lead message (the topic summary ) is kept bound to the topic*. The only thing missing from PHPBB's rendition is the option to split posts into a new topic entirely - the destination topic has to exist first.

The AJAX "select a destination topic" control is best explained by the "move.jpg" attachment above. It will populate the forum and topic selection boxes depending on what is the user selects, helping to ensure that the selected topic is valid.

The control display itself is project aware for administrators only, which allows for moving messages virtually anywhere within the Forum database. Moderators will get a more modest control, which (in theory) will only show them target forums they moderate within the current project.

(*moving entire topics between forums, and moving forums between projects, are next on my list. This will be done in pretty much the same way.)

01/15/07 23:37:56 changed by pragma

Revision 33 Things are looking good. That last %20 is always the hardest. Brad - you'll find that all the PHPBB converter code is in SVN now.

Code quality was improved dramatically for this version. I expect each line-item on the TODO list to trigger other mini refactorings.

All listings (forums, topics, messages) now support move/delete via a "check and submit" idiom, simliar to most email programs. The idea is that now both are performed as potential bulk actions, making life a little easier for everyone.

Like before, moving data is now supported universally within the forum system, and works very well.

The new todo list now has forum flavors and RSS support being next, followed by bugfixes and a security sweep. I'm confident that integration testing should be plausible after those last two features are folded in.

Beyond that, the blog macros will come along sooner or later - I may be able to sprinkle them in here and there. They can be added at any time, as they use the forum model as a client only, so they don't bring along any additional security criteria.

01/16/07 22:51:45 changed by pragma

Revision 34

IMO this pretty much has us ready for an integration test. There are a few minor details that can be covered before a site-wide rollout, but will not change how the forum should behave overall:

  • (BBConv) importing profile details from PHPBB
  • RSS Support
  • Wiki Macros
  • Wiki Edit Field issues
  • Misc bugs (security, usability, performance, etc)

Details are here: http://www.dsource.org/projects/tracforums/changeset/34

01/27/07 22:07:35 changed by kris

  • owner changed from pragma to brad.
  • status changed from assigned to new.

01/29/07 10:57:30 changed by pragma

Uploaded an improved rendition of tracforums last night, along with some bugfixes and changes - including a small change to the DB schema.

http://www.dsource.org/projects/tracforums/changeset/36 http://www.dsource.org/projects/tracforums/changeset/37

I anticipate the next few changesets to include the remainder of needed security fixes and template changes.

01/30/07 14:34:12 changed by pragma

Added a few more bugfixes:

http://www.dsource.org/projects/tracforums/changeset/38

I've tested this using guest, forum user and admin accounts (FORUMS_VIEW, FORUMS_USER and FORUMS_ADMIN) respectively. It works well, even for the topic author and thread moderator cases.

02/03/07 10:11:53 changed by larsivi

  • status changed from new to closed.
  • resolution set to fixed.

Forum is installed and in use, further fixing will be governed by their own tickets.