WikiEducationFoundation / WikiEduDashboard

Wiki Education Foundation's Wikipedia course dashboard system
https://dashboard.wikiedu.org
MIT License
392 stars 630 forks source link

Improve the course approval user interface #4561

Closed ragesoss closed 2 years ago

ragesoss commented 3 years ago

Current Behavior:

When Wiki Education staff review and approve a submitted course, they must:

Desired Behavior:

Instead of these separate steps (and process that isn't explicit in the UI), when a course is submitted there should be a single dedicated interface for an admin to efficiently do all the steps of course approval.

ragesoss commented 2 years ago

It should be easy within this approval workflow to add additional campaigns as well. There should probably be a default campaign, which is the upcoming campaign as defined by the "recruiting term" setting, but we often need to add additional campaigns at the point of approval as well.

vaidehi44 commented 2 years ago

@ragesoss, can you mention steps to reproduce this? I am not able to get to a point where I can approve submitted courses.

ragesoss commented 2 years ago

The main thing is to set wiki_education: 'true' in application.yml, as this only applies to Wiki Education mode.

Then, you need to create a course, and once you finish, there should be a 'submit' button you can click. Once submitted, log in as an admin, and you should see a message related to approving the course when you view that course page.

vaidehi44 commented 2 years ago

Okay. And, how can I login as Admin?

ragesoss commented 2 years ago

See https://github.com/WikiEducationFoundation/WikiEduDashboard/blob/master/docs/user_roles.md#admin-permissions

vaidehi44 commented 2 years ago

This seems interesting to me @ragesoss. Can I work on this?

ragesoss commented 2 years ago

@vaidehi44 sure, go for it.

vaidehi44 commented 2 years ago

Hey @ragesoss. A few questions after looking at the present UI (haven't actually seen the code yet) -

ragesoss commented 2 years ago

The program manager is typically also the person who is reviewing a submitted course page (Helaine — https://wikiedu.org/about-us). Within the Dashboard, they are identified by having the classroom_program_manager Special User role (via /settings). The review sometimes needs to make edits to a course before approving it, and in general, an admin should be able to edit a course no matter what state it's in with respect to approval. But I think a separate section — perhaps an extra component that shows up at the top, with a form for submitting all the approval-related updates at once — would make sense.

vaidehi44 commented 2 years ago

Okay. Will work on the new section then and let you know.

vaidehi44 commented 2 years ago

Hi @ragesoss, I was thinking to implement something like this -

image

However, I think, for this to work correctly, i.e. the users for Program Manager and Wiki Expert are different, we will have to explicitly define separate roles in the database too. I don't think this should be done though, and the current role of WIKI_ED_STAFF_ROLE should include both these roles . Want to know your opinion.

vaidehi44 commented 2 years ago

Actually, here my intention was to make it clear to the reviewers what people(program manager and wiki expert) they are adding to the staff role. Hence, I also have this doubt, whether Program Manager and Wiki Expert are the only two sub-roles in staff or there can be more people joining?

ragesoss commented 2 years ago

Thanks for the update and illustration, @vaidehi44!

The main goal for this is to simplify the workflow for the admin who is reviewing and approving the course. A simpler workflow would be something like this:

  1. the program manager clicks an 'approve course' button, which opens a form
  2. the form only lets you add one program manager and one wiki expert, and the choice of which user to add is in a dropdown select, with a user selected by default for each of these.
  3. the form lets you add only one campaign as well. Ideally, the default selected campaign is inferred from the course dates, so (if such a campaign exists) a course that starts in January 2023 will default to spring_2023 term.
  4. The form lets add additional tags
  5. The button to submit the form says something like 'Approve for Spring 2023' (or whatever the campaign is)

In this workflow, the simplest approval workflow would be just two clicks: one button click to open the form, and then the essential parts all have default values (program manager, wiki expert, campaign), so you can just click 'Approve for term' to submit it and add all those roles.

ragesoss commented 2 years ago

The people to populate in the 'program manager' and 'wiki expert' roles come from SpecialUsers.classroom_program_manager and SpecialUsers.wikipedia_experts on the server (which can be set from /settings if you are a super-admin).

vaidehi44 commented 2 years ago

Thank you @ragesoss for the detailed description of what is expected. This sounds cool. Will approach it accordingly.