edx-platform
edx-platform copied to clipboard
feat: add functionality to create honor course modes through studio
Description
This PR implements a different mechanism that allows the course team
users to create honor course modes through the studio certificate view, which empowers them, among other steps, to generate certificates.
Some implementation details:
- Consists of a frontend application implemented using backbone that shows a button that, when clicked, makes a POST request to the course modes API
To call the API, we had to add the course modes URLs to Studio. We did this after failing in communicating Studio with the LMS due to CORS errors:
We tried to solve them by modifying some Nginx and site configurations, but we decided to drop them after some failed attempts.
Do you have any suggestions?
Supporting information
The overall idea was mentioned in this jira ticket and discussed in this Discuss Post.
Testing instructions
- Activate certificate generation.
- After checking out to this branch, enable the
ENABLE_COURSE_MODE_CREATION
feature flag. - Remove any existing course mode and then go to
/certificates/course_key.
Video explanation:
Deadline
None
Other information
- [ ] Concerns about course modes API accessible from studio
Thanks for the pull request, @mariajgrimaldi! Please note that it may take us up to several weeks or months to complete a review and merge your PR.
Feel free to add as much of the following information to the ticket as you can:
- supporting documentation
- Open edX discussion forum threads
- timeline information ("this must be merged by XX date", and why that is)
- partner information ("this is a course on edx.org")
- any other information that can help Product understand the context for the PR
All technical communication about the code itself will be done via the GitHub pull request interface. As a reminder, our process documentation is here.
This is currently a draft pull request. When it is ready for our review and all tests are green, click "Ready for Review", or remove "WIP" from the title, as appropriate.
@mariajgrimaldi Thank you for your contribution. Please let me know once it is ready for our review.
Hey @natabene! This is ready for review :)
Do you mind including a screenshot for what this looks like? My initial reaction is that I dont think we want to configure enrollment tracks in the same UI as certificate configuration but instead a separate area to review / edit enrollment tracks but I'm happy to look at what the existing experience is first if possible via screenshots. Thanks @mariajgrimaldi
Thank you for the reminder, @marcotuts!
I'll describe in detail the testing process while illustrating the functionality:
- Assuming our configuration is:
'ENABLE_COURSE_MODE_CREATION': False,
- Let's enable certificates HTML/Web view for our course:
Go to your course advanced settings and then show deprecated settings:
-
Right now, our course has at least one course mode, so our functionality won't appear. -even the course mode audit is considered-
Course modes associated with the course
Certificates web page
-
After removing all course modes, our feature will appear allowing the user to create the Honor course mode
Hi @marcotuts, what if we add an Edit Enrollment tracks
into the Settings
tab and include this functionality there? What do you think? We're open to suggestions!
Your PR has finished running tests. The following contexts failed:
- jenkins/python
Hi @marcotuts, what if we add an
Edit Enrollment tracks
into theSettings
tab and include this functionality there? What do you think? We're open to suggestions!
@marcotuts When you have a chance, can you reply?
Hey @marcotuts! It's been a while, but just following up on this to see if you are available to respond :)
CC: @jmakowski1123
@ProductRyan (not sure where ecommerce falls on the product side?) Another one to flag at the top of the pile, given how long it's been open. I don't have context for Marco's reasoning behind wanting separate spaces for configuring enrollment tracks and configuring certifications, but Maria's suggestion to add a space for editing enrollment tracks in Settings should address his concerns. I have a slight concern that it's another setting being added to the laundry list in Settings, but barring a holistic redesign of the Settings UI (which we also have on the roadmap), I think it's a fine interim solution, as long as there's sufficient documentation for course teams. Also confirming @mariajgrimaldi , the original proposal suggested this would be implemented behind a flag, confirming that's still the case?
@mphilbrick211: thank you for picking this up! Regarding your question, yes, that's still the case.
@mphilbrick211: thank you for picking this up! Regarding your question, yes, that's still the case.
@jmakowski1123 flagging Maria's response.
Friendly ping on this one @jmakowski1123!
@jmakowski1123 Hi Jenna - just checking to see if this is good-to-go from the Product side?
Hi @marcotuts, what if we add an
Edit Enrollment tracks
into theSettings
tab and include this functionality there? What do you think? We're open to suggestions!
Hi @mariajgrimaldi ! Thanks so much for your patience, and sorry for the delay. We're working out the best workflow for getting PRs through product review.
Yes, I think your proposal to add an "Edit Enrollment Tracks" into the Main Settings tab in Studio is a viable option. I have two suggestions to move this PR forward, if you are still interested in pursuing :)
First, I think we should expand the scope to allow course teams to add/change a more comprehensive list of course modes, and not limit it to just the Honor course mode. If we are going to add a new setting in Studio for this, I think it makes sense to review the entire course mode selection listing, rather than just implementing it for one mode type.
Second, this will need a UI design in alignment with the most current Paragon Design System.
Since this new proposed scope of work is slightly larger than this PR, I've created a Product feature ticket for this on the Open edX Community Roadmap. We can use that Product ticket to communicate and nail down the full Product Spec in order to get it approved. I'm happy to work with you to land the decision about which course modes to include, and to facilitate review of UI. Let's shift the conversation over to that ticket for now. Cc @mphilbrick211
@jmakowski1123: I agree with both of your suggestions.
- Enabling just the honor course mode ultimately limits the functionality and makes it less valuable for the community. So as you said, it makes sense to include other course modes.
- I'm unfamiliar with the Paragon Design System, so I'll look into that as soon as I can. Either way, following the newer standards is the most reasonable thing to do.
I'm guessing the next step is nailing down the course modes to include, so I'll move to the product ticket so we can discuss it :)
@jmakowski1123: I agree with both of your suggestions.
- Enabling just the honor course mode ultimately limits the functionality and makes it less valuable for the community. So as you said, it makes sense to include other course modes.
- I'm unfamiliar with the Paragon Design System, so I'll look into that as soon as I can. Either way, following the newer standards is the most reasonable thing to do.
I'm guessing the next step is nailing down the course modes to include, so I'll move to the product ticket so we can discuss it :)
Great! I've got a start on the product feature ticket here: https://github.com/openedx/platform-roadmap/issues/228 I'd be curious to learn more about which modes are most important for your users, besides the Honor mode. Let's start with those user stories!
I've been considering Jenna's suggestion about using the new Paragon Design System. Does that mean this new page must be included in the course authoring MFE, right? Like the new Pages & Resources. I'm thinking this since the current solution uses a backbone application, I'm not sure how that's compatible with the new design system.
Someone on my team suggested checking out student_account which uses some Paragon components. But still, I'm not sure how to proceed. 🤔
I'm not sure who can answer this question, though. Would you @arbrandes or @jmakowski1123 point me in the right direction? Thanks!
cc @dcoa
@mariajgrimaldi, I haven't reviewed the code here, or tested it, but to answer your question:
Does that mean this new page must be included in the course authoring MFE, right? Like the new Pages & Resources.
If the feature implemented in this PR can be implemented instead in an MFE and you have the knowledge and resources, please do so! This will save us the work of having to do it later: because we'll definitely have to do it later. :)
Technically, you could do it with Paragon in edx-platform, but I don't recommend it. It would be much harder to maintain. It's why we have MFEs, after all.
As for where: the course-authoring MFE seems like a reasonable choice, since this is supposed to be author-facing. Which is to say, I would support an implementation in there. Since it's a new page, it would likely not affect anything else, which makes it more likely to be merged faster.
Finally, it's totally fine to add endpoints to Studio that are meant to be used by authors!
Hi @mariajgrimaldi and @arbrandes! Just checking to see if there's an update here?
Hi @mariajgrimaldi and @arbrandes! Just checking to see if there's an update here?
Apologies - forgot this was in product review! Left a comment on the Roadmap ticket :)
hi @mariajgrimaldi! Per Jenna's comment here, would you mind switching this to a draft? Thanks!
Thanks for the pull request, @mariajgrimaldi! Please note that it may take us up to several weeks or months to complete a review and merge your PR.
Feel free to add as much of the following information to the ticket as you can:
- supporting documentation
- Open edX discussion forum threads
- timeline information ("this must be merged by XX date", and why that is)
- partner information ("this is a course on edx.org")
- any other information that can help Product understand the context for the PR
All technical communication about the code itself will be done via the GitHub pull request interface. As a reminder, our process documentation is here.
This is currently a draft pull request. When it is ready for our review and all tests are green, click "Ready for Review", or remove "WIP" from the title, as appropriate.
FYI: this is not our priority now (or in the foreseeable future), if that changes, I'll leave a comment here. Either way, I'll leave the PR in draft if someone wants to pick up the work. Thanks!
I'll close this PR for now since all these changes are related to the Studio Legacy FE, and we'd prefer the new Studio MFE to support this instead.
@mariajgrimaldi Even though your pull request wasn’t merged, please take a moment to answer a two question survey so we can improve your experience in the future.