The discussion revolves around creating sub-sub categories in Discourse. Mehal_Shah wants to add an extra level of categorization for Code.org’s forum, allowing users to click a category, then a course, and then see a list of units within that course, with topics under each unit.
Mehal_Shah proposes two solutions: adding a method to the list controller or using tags. However, Falco and sam advise against forking Discourse and instead recommend using tags, citing the potential long-term pain of maintaining a fork. r3d_f0x agrees with this assessment.
Mehal_Shah would like the tags to show up in the category view like another topic, and codinghorror suggests creating a mockup of the desired layout. Mehal_Shah provides images of the current layout and a proposed layout with the additional level of categorization.
scombs suggests adding a category option to sort topics by title, which would help display topics in order based on their naming convention rather than the last edit time.
I need to create one additional level of categorization for our forum for Code.org. I’d like people to click a category (High School Computer Science), and see a list of our courses (Course 1, Course 2, Course 3), then click Course 1 and see a list of units in the course (Unit 1, Unit 2, Unit 3). Under each unit, there would be topics.
I know that this isn’t supported out of the box for discourse, so I’m willing to fork discourse and do some hackery on my own. I see a couple of ways of doing this
Add a method to the list controller - like parent_category_category_subcategory here and add appropriate routing to it.
Use tags. People who post topics have their posts tagged with the appropriate unit (somehow - don’t know how yet). Then I add a route for something like c/:parent_category/:category/:tag that loads topics in a given category with a given tag. I’ll also have to change the category view to render tags as subcategories.
Are either of these solutions plausible? Is there a third way I should be considering?
I agree. It seems like a cool idea to fork a project and make it your own and include all the things you want but unless you have a whole team that is willing to work on it long term - and they don’t just have short term enthusiasm for it - it’s going to turn into a nightmare.
Clicking lesson 1 would take the user to a url like forum.code.org/c/ecs/unit1/t/lesson1 - Essentially all topics in the unit1 subcategory that have been tagged with lesson 1