feat: set course for wiki based on the wiki_slug #590
Merged
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
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'swiki_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 therequest.course
, so that wiki can display course navigation UI.Testing instructions
Setup
devstack
of latest versionmake dev.up.lms+cms+frontend-app-learning
Log in at
localhost:18000
as[email protected]
(edx
as 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"