WordPress / Learn

WordPress.org Learn - The canonical source for the code and content behind https://learn.WordPress.org
265 stars 93 forks source link

Course and Lesson publishing workflow #2599

Closed adamwoodnz closed 2 months ago

adamwoodnz commented 3 months ago

Currently the training team are publishing Courses and Lessons before they are complete/finished, and using the 'featured' post meta as a final step to make the Course appear on the site.

This works with the current theme because it is set to show only featured Courses on the Courses archive, and Lessons aren't viewable outside of a Course.

It is a problem with the new theme however, as we assumed that the 'featured' post meta could be used to select featured Courses for the home page Featured Courses section, and that all published content was considered complete and ready for public consumption. Any published Courses will appear on the Courses archive, and child Lessons will appear on the Lessons archive.

We've also duplicated this 'featured' functionality for Lessons so that we can select a precise set of Lessons for the home page.

adamwoodnz commented 3 months ago

Questions:

adamwoodnz commented 3 months ago

I've done some investigation and found that Courses and Lessons have a public preview feature. If sharing is the main requirement for publishing before the content is final, it seems we can avoid this by using this feature. We can use a status of Draft, Pending Review, or some other custom status using Edit Flow.

This would mean we could stop using the featured post meta as a release mechanism.

Course Lesson
Image Image
kathrynwp commented 3 months ago

Just wanted to note that it may be confusing if we call for public testing before this gets sorted out, since there are incomplete courses showing both on the homepage and archives. I could always mention in the call for testing that specific courses should be "ignored" – but that gets muddy, so ideally this would be resolved before the public testing step.

kathrynwp commented 3 months ago

Example of a course we'd want to exclude from archives is the "Developing your first WordPress block" course, which is only designed to be used within the context of a course cohort, which includes video calls, etc. The link to this course was shared directly with course participants in Slack, but in the current (old) theme, it does not appear in archives or the homepage.

adamwoodnz commented 3 months ago

Example of a course we'd want to exclude from archives is the "Developing your first WordPress block" course, which is only designed to be used within the context of a course cohort, which includes video calls, etc. The link to this course was shared directly with course participants in Slack, but in the current (old) theme, it does not appear in archives or the homepage.

Essentially I think the way we're allowing Lessons to be viewed individually outside of a course context is making this very problematic, because even if we restrict viewing the Course, the Lessons are still available. In the case above, if there was a Lessons archive in the old theme, the Lessons from this Course would be displayed, even if the Course isn't 'featured'.

I just checked the public preview link for an unpublished Course which includes unpublished public preview Lessons, and the unpublished Lessons are not displayed, so that won't work. Basically if we are publishing posts but intending to keep them private, we need to filter both Courses and Lessons out everywhere (archives, search, home page, etc), and probably noindex them. We're working against how WordPress works at a fundamental level.

Could we publish Courses like these but password protect both the Course and Lessons, sharing the password with the cohort? This would be relatively easy to filter on (easier than using a new post meta field), and once the cohort is finished the password could be removed, allowing the content to become public, if desired.

kathrynwp commented 3 months ago

Could we publish Courses like these but password protect both the Course and Lessons, sharing the password with the cohort? This would be relatively easy to filter on (easier than using a new post meta field), and once the cohort is finished the password could be removed, allowing the content to become public, if desired.

Password-protection sounds quite feasible for this scenario, but I'm also going to loop in @jonathanbossenger so he can chime in as the cohort instructor. There may be things I'm not thinking of and I want to be sure we're covered.

jonathanbossenger commented 2 months ago

What is the requirement that makes publishing necessary before the content is finished?

Originally, this was done to allow translators to work on translating course lessons, while a course is still in active development.

I've done some investigation and found that Courses and Lessons have a public preview feature. If sharing is the main requirement for publishing before the content is final, it seems we can avoid this by using this feature. We can use a status of Draft, Pending Review, or some other custom status using Edit Flow.

I agree, if memory serves, we stumbled across this feature only after choosing to publish lessons for translators, and so the public preview feature would also work. As long as we have a way to share the content with translators, who might not have access to edit lessons.

This would mean we could stop using the featured post meta as a release mechanism.

IMO, that would be ideal, I find the fact that we have to feature a course to make it "public" to be an extra, unessecary step.

@westnz would you agree on removing the requirement to set a course as "featured" to make it public?

jonathanbossenger commented 2 months ago

Password-protection sounds quite feasible for this scenario, but I'm also going to loop in @jonathanbossenger so he can chime in as the cohort instructor. There may be things I'm not thinking of and I want to be sure we're covered.

Going forward, I plan to use existing course content from the learning pathways for course cohorts, so I don't think we need to worry about password-protecting anything.

I created the "Developing your first WordPress block" course because we didn't have anything like it, but we do now. I plan to remove any "cohort" specific information from it, and just release it as a regular course anyway.

westnz commented 2 months ago

@westnz would you agree on removing the requirement to set a course as "featured" to make it public?

Agreed 👍

adamwoodnz commented 2 months ago

Excellent, thanks for your input all!

So in summary:

  1. Moving forward we won't publish Courses or Lessons until they're ready to be public
  2. We'll select the 6 (max) Courses to be featured on the home page at launch, and un-feature the others (task)
  3. I'll close my PR to filter password protected content, as we won't need to do this in future
westnz commented 2 months ago

Moving forward we won't publish Courses or Lessons until they're ready to be public.

So, for example, I won't publish the Advanced User Learning Pathway course yet, but I am publishing the lessons that have been completed and are ready for learners/to be public.