Problem/Motivation

Learndrupal.org is both a place where people go to find lessons and a place where people can contribute lessons. We want to encourage people to contribute, post drafts, revise their drafts, then have users test the lessons before the lesson is "finalized". But we don't want people looking for lessons to be confused or frustrated by stumbling upon unfinished lessons, or trying to start following lessons that aren't user-ready yet.

Proposed resolution

Add a "draft status" field to the lesson content type. Use it to keep track of the state of the lesson and distinguish between lessons-in-development and lessons that are ready to be used.

Remaining tasks

  • Determine what the different draft states should be. (e.g. Draft -> Ready to be tested -> Tested -> Final Draft)
  • Create a new feature module to be included in Lessons module: lesson_draft_status. This should include the lesson_field_draft_status field and business logic and theming related to draft states.
  • Decide what visual queues we should use to distinguish between lessons' draft states (e.g. anything that's not a final draft has a big red border around it)
  • Theme lessons to provide visual queues about a lesson's status
  • Only display final drafts in this view by default: http://learndrupal.org/lessons
  • If unfinished drafts appear in the /lessons view, theme them to include visual queues about their draft state
  • #1496364: Give lesson users a way to flag content that needs to be updated

User interface changes

  • New field on lesson nodes
  • Theme lesson nodes
  • Theme views displaying lesson nodes

API changes

none

Comments

bryanhirsch’s picture

Project: Learn » Drupal Ladder

Updated issue summary.

bryanhirsch’s picture

Project: Drupal Ladder » Learn
Priority: Normal » Critical

Changing priority to critical. Until we have this workflow in place either lesson writers or user groups organizing learn sprints and issue sprints will be impeded.

bryanhirsch’s picture

Project: Learn » Drupal Ladder
Issue summary: View changes

Updated issue summary.

jeffschuler’s picture

Project: Drupal Ladder » Learn

Preferred method of achieving this?
Workflow, Workbench Moderation, custom solution?

jeffschuler’s picture

We should consider #1496364: Flag content for update in thinking about workflow states.

jeffschuler’s picture

Project: Learn » Drupal Ladder
Issue summary: View changes

Updating for consistency.

bryanhirsch’s picture

Issue summary: View changes

Updated issue summary.

bryanhirsch’s picture

Project: Drupal Ladder » Learn

Jeff, agreed about #1496364. I just added this to the issue as an outstanding task.

Re. Workflow and Workbench Moderation: These could potentially be good additions at some point. It would be very interesting to see a patch of a proposed use. But I think they're more overhead than we need right now.

I think of Work Bench as a back end tool for site administrators. In our case, we want to expose both draft and final content to the end users. We just don't want to confuse people about which is which. So our workflow is really less about ushering a piece of content from draft to published, and more about keeping track of status and creating some visual queues for what's what. I think our needs can be pretty well met with a simple Draft Status field and some theming.

To be clear, I think Workbench Moderation could be extremely helpful for people maintaining entire curricula/ladders or large numbers of lessons. I think this could be a great thing to explore later. But for the minimum viable product (MVP), we need to take care of end users, one-off lesson writers, and one-off learners first. Maybe we should open a new issue for Curriculum Administration, and put Workbench ideas and patches there.

BrockBoland’s picture

Project: Learn » Drupal Ladder
Version: 7.x-1.0-alpha3 » 7.x-1.x-dev

Something similar to this was rolled out recently. Someone needs to review this issue and the task list in it, and determine what might still need to be done.

BrockBoland’s picture

Issue summary: View changes

adding a new task