Checks
Description of the Feature Request
The way installation lessons were previously structured caused lots of accessibility issues with the dropdowns for hiding/showing content and the duplicated headings across different sets of instructions. But doing it some other way with all the information on the same page probably would've made for a cumbersome experience for most users.
To solve this, OS specific instructions have been separated from installation lessons. Now the installation lessons offer links to the instructions and learners click on the one that's relevant for them. As a pleasant side effect, this also gave a path to solving longstanding issues in getting the Installation lessons to conform to the Layout Style Guide and mdlint tool. Here's an example in the Operating System installation lesson:
Say the user wants to use VBox, they'd click the VBox link and be taken to a guide on GitHub with the specific instructions for getting set up on VBox.
So the proposal: I think it'd be nice if these OS-specific instruction steps were integrated into the site instead of only being usable on GitHub. Users will click the link to (for example) the VirtualBox installation instructions and be taken to a page that has those instructions. When they get to the bottom of the page, they'll have a link to return to the lesson they came from.
As far as implementation goes, I think this would involve something like:
- A new
installation_instructions table (and model of course)--feel free to nitpick the name lol
- More fixture stuff would have to be added to make sure they're created when seeding the database.
- The existing structures for importing
Lessons from GitHub can be refactored to be usable by other models, allowing the installation instructions to also be pulled from GitHub. Like lessons, these instructions would has_one :content and define a method for importing that content etc.
- I'm hesitant to get into any STI stuff or heavy code sharing between Lessons and this new thing. Although these new
installation_instructions have some things in common with actual lessons, they'd lack much reason for some other stuff (positions, completions, course and section relationships). They wouldn't show up on the main course view, for example. It might make sense to make them only findable in the context of the parent installation lesson. And speaking of that: I think one of the main things we'd want is a belongs_to :installation_lesson (a lesson where installation_guide: true) such that when displaying them, we can easily link back to the parent installation lesson after users have gone through all the steps and are ready to return to that lesson.
Acceptance criteria
Additional Comments
No response
Checks
Feature Request: brief description of feature requestformat, e.g.Feature Request: Add a dark mode to the websiteDescription of the Feature Request
The way installation lessons were previously structured caused lots of accessibility issues with the dropdowns for hiding/showing content and the duplicated headings across different sets of instructions. But doing it some other way with all the information on the same page probably would've made for a cumbersome experience for most users.
To solve this, OS specific instructions have been separated from installation lessons. Now the installation lessons offer links to the instructions and learners click on the one that's relevant for them. As a pleasant side effect, this also gave a path to solving longstanding issues in getting the Installation lessons to conform to the Layout Style Guide and
mdlinttool. Here's an example in the Operating System installation lesson:Say the user wants to use VBox, they'd click the VBox link and be taken to a guide on GitHub with the specific instructions for getting set up on VBox.
So the proposal: I think it'd be nice if these OS-specific instruction steps were integrated into the site instead of only being usable on GitHub. Users will click the link to (for example) the VirtualBox installation instructions and be taken to a page that has those instructions. When they get to the bottom of the page, they'll have a link to return to the lesson they came from.
As far as implementation goes, I think this would involve something like:
installation_instructionstable (and model of course)--feel free to nitpick the name lolLessons from GitHub can be refactored to be usable by other models, allowing the installation instructions to also be pulled from GitHub. Like lessons, these instructions wouldhas_one :contentand define a method for importing that content etc.installation_instructionshave some things in common with actual lessons, they'd lack much reason for some other stuff (positions, completions, course and section relationships). They wouldn't show up on the main course view, for example. It might make sense to make them only findable in the context of the parent installation lesson. And speaking of that: I think one of the main things we'd want is abelongs_to :installation_lesson(a lesson whereinstallation_guide: true) such that when displaying them, we can easily link back to the parent installation lesson after users have gone through all the steps and are ready to return to that lesson.Acceptance criteria
Additional Comments
No response