From 9d3b6e0556a8b651e02930df60005e407c93e2f3 Mon Sep 17 00:00:00 2001 From: Jannat Patel Date: Tue, 19 Aug 2025 17:33:20 +0530 Subject: [PATCH] feat: program self enrollment --- frontend/src/components/AppSidebar.vue | 7 +- frontend/src/pages/Lesson.vue | 5 +- frontend/src/pages/Programs/ProgramDetail.vue | 135 +++++++++++++++ .../src/pages/Programs/ProgramEnrollment.vue | 157 ++++++++++++++++++ frontend/src/pages/Programs/ProgramForm.vue | 27 ++- frontend/src/pages/Programs/Programs.vue | 3 +- .../src/pages/Programs/StudentPrograms.vue | 101 ++++++----- frontend/src/pages/Programs/types.ts | 1 - frontend/src/router.js | 6 + lms/lms/doctype/lms_payment/lms_payment.json | 10 +- lms/lms/doctype/lms_program/lms_program.json | 9 +- lms/lms/utils.py | 114 ++++++------- 12 files changed, 437 insertions(+), 138 deletions(-) create mode 100644 frontend/src/pages/Programs/ProgramDetail.vue create mode 100644 frontend/src/pages/Programs/ProgramEnrollment.vue diff --git a/frontend/src/components/AppSidebar.vue b/frontend/src/components/AppSidebar.vue index c76576b9..b09f2536 100644 --- a/frontend/src/components/AppSidebar.vue +++ b/frontend/src/components/AppSidebar.vue @@ -361,14 +361,9 @@ const addProgrammingExercises = () => { } const addPrograms = () => { - let activeFor = ['Programs'] + let activeFor = ['Programs', 'ProgramDetail'] let index = 1 - if (!isInstructor.value && !isModerator.value) { - activeFor.push('CourseDetail') - activeFor.push('Lesson') - } - sidebarLinks.value.splice(index, 0, { label: 'Programs', icon: 'Route', diff --git a/frontend/src/pages/Lesson.vue b/frontend/src/pages/Lesson.vue index 5b869c96..cb0bf7a0 100644 --- a/frontend/src/pages/Lesson.vue +++ b/frontend/src/pages/Lesson.vue @@ -209,12 +209,13 @@ v-else class="ProseMirror prose prose-table:table-fixed prose-td:p-2 prose-th:p-2 prose-td:border prose-th:border prose-td:border-outline-gray-2 prose-th:border-outline-gray-2 prose-td:relative prose-th:relative prose-th:bg-surface-gray-2 prose-sm max-w-none !whitespace-normal mt-8" > - + /> -->
+
+ +
+
+
+
+ {{ program.data.name }} +
+ + + +
+
+
+ + +
+
+
+ + diff --git a/frontend/src/pages/Programs/ProgramEnrollment.vue b/frontend/src/pages/Programs/ProgramEnrollment.vue new file mode 100644 index 00000000..b82ba8c6 --- /dev/null +++ b/frontend/src/pages/Programs/ProgramEnrollment.vue @@ -0,0 +1,157 @@ + + diff --git a/frontend/src/pages/Programs/ProgramForm.vue b/frontend/src/pages/Programs/ProgramForm.vue index b2db0621..0e1783b6 100644 --- a/frontend/src/pages/Programs/ProgramForm.vue +++ b/frontend/src/pages/Programs/ProgramForm.vue @@ -2,10 +2,21 @@ +