feat: set course for wiki based on the wiki_slug#590
Merged
Cup0fCoffee merged 1 commit intoopencraft-release/palm.1from Sep 29, 2023
Conversation
Learners want to have the usual course navigation when viewing a wiki, so that they can go back to the course related to the wiki and browse other tabs/sections of the course. Wiki reads the course from the `request.course`. If it's not present, i.e. None or not set on the request, it will not show the course navigation UI. It seems like `WikiAccessMiddleware` already has the code that parses course id from the request (when the request is for a wiki view) and sets the course for the request. However, it doesn't work in most scenarios, because the course id is not in the it's normal format in most requests that go to wiki. For example, when a leaner clicks on a wiki tab from the course overview, they are redirected to `/wiki/<wiki_slug>/` path. The wiki slug is taken from course's `wiki_slug` field. This slug can be used to figure out what course this wiki belongs to in most (not all) cases. This commit adds code to the `WikiAccessMiddleware` that attempts to find a course based on wiki slug, and in case of success, sets the course to the `request.course`, so that wiki can display course navigation UI.
Member
|
LGTM 👍
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Upstream PR: openedx#33338
Description
Learners want to have the usual course navigation when viewing a wiki, so that they can go back to the course related to the wiki and browse other tabs/sections of the course.
Wiki reads the course from the
request.course. If it's not present, i.e. None or not set on the request, it will not show the course navigation UI.It seems like
WikiAccessMiddlewarealready has the code that parses course id from the request (when the request is for a wiki view) and sets the course for the request. However, it doesn't work in most scenarios, because the course id is not in the it's normal format in most requests that go to wiki.For example, when a leaner clicks on a wiki tab from the course overview, they are redirected to
/wiki/<wiki_slug>/path. The wiki slug is taken from course'swiki_slugfield. This slug can be used to figure out what course this wiki belongs to in most (not all) cases.This commit adds code to the
WikiAccessMiddlewarethat attempts to find a course based on wiki slug, and in case of success, sets the course to therequest.course, so that wiki can display course navigation UI.Testing instructions
Setup
devstackof latest versionmake dev.up.lms+cms+frontend-app-learningLog in at
localhost:18000asedx@example.com(edxas password)Enroll into the demo course
Go to studio for this course, in the navigation find "Content -> Pages", click on it, and make the Wiki tab visible by clicking the crossed eye icon
Go back to the course, and click the wiki tab
You will see that the wiki doesn't have any course tabs, there is no way to go back to the course you came from, etc.
Screenshot
Now checkout the branch from the PR
Go back to the wiki page and reload (it might need a minute for the dev server to restart)
You will now see that the course navigation UI is showing correctly.
Screenshot
Check that the links are pointing to the correct course
Deadline
"None"