Skip to content

Frontend: Courses page component and navigation #13974

@rtibbles

Description

@rtibbles

Overview

Create the basic Courses page component in the Coach plugin with navigation, following the same structure as Lessons and Quizzes.

Design Reference

See parent product issue for screenshots and Figma designs:

  • Figma designs
  • Screenshot showing courses navigation at same level as lessons/quizzes

Image

Implementation

1. Add Courses Navigation Item

Add "Courses" to the Coach plugin navigation at the same level as "Lessons" and "Quizzes".

Conditional display:
Use the courses_exist plugin data to show/hide the courses navigation item. Only display when course content is available on the device.

const { courses_exist } = usePluginData();
if (!courses_exist) return null;

2. Create Top-Level Route

Add top-level /courses route in the Coach plugin routes configuration.

Follow the routing patterns from Lessons and Quizzes, including:

  • Route definition with proper parameters (classId, etc.)
  • Route guards/permissions
  • Child routes for side panels (implemented in separate issue)

3. Create Page Component

Create the main Courses page Vue component:

  • Page shell/layout
  • Page header with title
  • "Add course" button (launches side panel)
  • Placeholder for course list (implemented in separate issue)

References

  • Lessons page structure: kolibri/plugins/coach/assets/src/views/lessons/
  • Coach routes: kolibri/plugins/coach/assets/src/routes/
  • Coach navigation: Coach app navigation components
  • Coach plugin data: kolibri/plugins/coach/kolibri_plugin.py

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions