diff --git a/frontend/src/components/CourseOutline.vue b/frontend/src/components/CourseOutline.vue
index e95ed030..66911e63 100644
--- a/frontend/src/components/CourseOutline.vue
+++ b/frontend/src/components/CourseOutline.vue
@@ -67,7 +67,7 @@
{{ lesson.title }}
@@ -139,9 +139,9 @@ const props = defineProps({
type: Boolean,
default: false,
},
- membership: {
- type: Object,
- default: () => ({}),
+ getProgress: {
+ type: Boolean,
+ default: false,
},
})
@@ -150,27 +150,11 @@ const outline = createResource({
cache: ['course_outline', props.courseName],
params: {
course: props.courseName,
+ progress: props.getProgress,
},
auto: true,
})
-/* const isComplete = (lesson) => {
- createResource({
- url: 'lms.lms.utils.get_progress',
- makeParams() {
- console.log(lesson)
- return {
- course: lesson.course,
- lesson: lesson.name,
- }
- },
- auto: true,
- onSuccess(data) {
- console.log(data)
- }
- })
-} */
-
const openChapterDetail = (index) => {
return index == route.params.chapterNumber || index == 1
}
diff --git a/frontend/src/pages/Batch.vue b/frontend/src/pages/Batch.vue
index 32899932..f1f6fab9 100644
--- a/frontend/src/pages/Batch.vue
+++ b/frontend/src/pages/Batch.vue
@@ -13,7 +13,7 @@
-
+
diff --git a/frontend/src/pages/Lesson.vue b/frontend/src/pages/Lesson.vue
index d7b7d177..3ef10bc1 100644
--- a/frontend/src/pages/Lesson.vue
+++ b/frontend/src/pages/Lesson.vue
@@ -173,7 +173,7 @@
diff --git a/lms/lms/doctype/course_lesson/course_lesson.py b/lms/lms/doctype/course_lesson/course_lesson.py
index 9b27b19a..2674e304 100644
--- a/lms/lms/doctype/course_lesson/course_lesson.py
+++ b/lms/lms/doctype/course_lesson/course_lesson.py
@@ -7,6 +7,7 @@ from frappe.model.document import Document
from frappe.utils.telemetry import capture
from lms.lms.utils import get_course_progress
from ...md import find_macros
+import json
class CourseLesson(Document):
@@ -95,6 +96,7 @@ def save_progress(lesson, course):
return 0
quiz_completed = get_quiz_progress(lesson)
+ print(quiz_completed)
if not quiz_completed:
return 0
@@ -118,19 +120,46 @@ def save_progress(lesson, course):
def get_quiz_progress(lesson):
- body = frappe.db.get_value("Course Lesson", lesson, "body")
- macros = find_macros(body)
- quizzes = [value for name, value in macros if name == "Quiz"]
+ lesson_details = frappe.db.get_value(
+ "Course Lesson", lesson, ["body", "content"], as_dict=1
+ )
+ quizzes = []
+
+ if lesson_details.content:
+ content = json.loads(lesson_details.content)
+
+ for block in content.get("blocks"):
+ if block.get("type") == "quiz":
+ quizzes.append(block.get("data").get("quiz"))
+
+ elif lesson_details.body:
+ macros = find_macros(lesson_details.body)
+ quizzes = [value for name, value in macros if name == "Quiz"]
+
for quiz in quizzes:
+ print(quiz)
passing_percentage = frappe.db.get_value("LMS Quiz", quiz, "passing_percentage")
+ print(frappe.session.user)
+ print(passing_percentage)
+ print(
+ frappe.db.exists(
+ "LMS Quiz Submission",
+ {
+ "quiz": quiz,
+ "member": frappe.session.user,
+ "percentage": [">=", passing_percentage],
+ },
+ )
+ )
if not frappe.db.exists(
"LMS Quiz Submission",
{
"quiz": quiz,
- "owner": frappe.session.user,
+ "member": frappe.session.user,
"percentage": [">=", passing_percentage],
},
):
+ print("no submission")
return False
return True
diff --git a/lms/lms/doctype/lms_quiz/lms_quiz.py b/lms/lms/doctype/lms_quiz/lms_quiz.py
index 92822e75..2e23eabe 100644
--- a/lms/lms/doctype/lms_quiz/lms_quiz.py
+++ b/lms/lms/doctype/lms_quiz/lms_quiz.py
@@ -103,15 +103,21 @@ def quiz_summary(quiz, results):
"passing_percentage": quiz_details.passing_percentage,
}
)
+ submission.save(ignore_permissions=True)
+ print(
+ percentage, quiz_details.passing_percentage, quiz_details.lesson, quiz_details.course
+ )
if (
percentage >= quiz_details.passing_percentage
and quiz_details.lesson
and quiz_details.course
):
+ print("if")
+ save_progress(quiz_details.lesson, quiz_details.course)
+ elif not quiz_details.passing_percentage:
+ print("elif")
save_progress(quiz_details.lesson, quiz_details.course)
-
- submission.save(ignore_permissions=True)
return {
"score": score,
diff --git a/lms/lms/utils.py b/lms/lms/utils.py
index 56d8cb58..cc887ed3 100644
--- a/lms/lms/utils.py
+++ b/lms/lms/utils.py
@@ -115,27 +115,27 @@ def get_chapters(course):
return chapters
-def get_lessons(course, chapter=None, get_details=True):
+def get_lessons(course, chapter=None, get_details=True, progress=False):
"""If chapter is passed, returns lessons of only that chapter.
Else returns lessons of all chapters of the course"""
lessons = []
lesson_count = 0
if chapter:
if get_details:
- return get_lesson_details(chapter)
+ return get_lesson_details(chapter, progress=progress)
else:
return frappe.db.count("Lesson Reference", {"parent": chapter.name})
for chapter in get_chapters(course):
if get_details:
- lessons += get_lesson_details(chapter)
+ lessons += get_lesson_details(chapter, progress=progress)
else:
lesson_count += frappe.db.count("Lesson Reference", {"parent": chapter.name})
return lessons if get_details else lesson_count
-def get_lesson_details(chapter, get_progress=False):
+def get_lesson_details(chapter, progress=False):
lessons = []
lesson_list = frappe.get_all(
"Lesson Reference", {"parent": chapter.name}, ["lesson", "idx"], order_by="idx"
@@ -162,6 +162,9 @@ def get_lesson_details(chapter, get_progress=False):
lesson_details.number = f"{chapter.idx}.{row.idx}"
lesson_details.icon = get_lesson_icon(lesson_details.body)
+ if progress:
+ lesson_details.is_complete = get_progress(lesson_details.course, lesson_details.name)
+
lessons.append(lesson_details)
return lessons
@@ -1301,7 +1304,7 @@ def get_categorized_courses(courses):
@frappe.whitelist(allow_guest=True)
-def get_course_outline(course):
+def get_course_outline(course, progress=False):
"""Returns the course outline."""
outline = []
chapters = frappe.get_all(
@@ -1315,7 +1318,7 @@ def get_course_outline(course):
as_dict=True,
)
chapter_details["idx"] = chapter.idx
- chapter_details.lessons = get_lessons(course, chapter_details)
+ chapter_details.lessons = get_lessons(course, chapter_details, progress=progress)
outline.append(chapter_details)
return outline
diff --git a/lms/public/frontend/index.html b/lms/public/frontend/index.html
index 65242c87..b0b891c1 100644
--- a/lms/public/frontend/index.html
+++ b/lms/public/frontend/index.html
@@ -15,10 +15,10 @@
-
+
-
+