mirror of
https://github.com/frappe/lms.git
synced 2026-05-04 14:39:32 +03:00
Merge pull request #2335 from frappe/main-hotfix
chore: merge 'main-hotfix' into 'main'
This commit is contained in:
@@ -323,7 +323,6 @@ import {
|
||||
createLMSCategory,
|
||||
getMetaInfo,
|
||||
openSettings,
|
||||
sanitizeHTML,
|
||||
updateMetaInfo,
|
||||
} from '@/utils'
|
||||
import { useRouter } from 'vue-router'
|
||||
@@ -458,16 +457,7 @@ const formatTime = (timeStr) => {
|
||||
return `${hours}:${minutes}`
|
||||
}
|
||||
|
||||
const validateFields = () => {
|
||||
Object.keys(batchDetail.doc).forEach((key) => {
|
||||
if (typeof batchDetail.doc[key] === 'string') {
|
||||
batchDetail.doc[key] = sanitizeHTML(batchDetail.doc[key])
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const submitBatch = () => {
|
||||
validateFields()
|
||||
updateBatch()
|
||||
}
|
||||
|
||||
|
||||
@@ -354,12 +354,7 @@ import {
|
||||
watch,
|
||||
getCurrentInstance,
|
||||
} from 'vue'
|
||||
import {
|
||||
getMetaInfo,
|
||||
sanitizeHTML,
|
||||
updateMetaInfo,
|
||||
createLMSCategory,
|
||||
} from '@/utils'
|
||||
import { getMetaInfo, updateMetaInfo, createLMSCategory } from '@/utils'
|
||||
import { X } from 'lucide-vue-next'
|
||||
import { useRouter } from 'vue-router'
|
||||
import Link from '@/components/Controls/Link.vue'
|
||||
@@ -457,7 +452,6 @@ const updateCourseData = () => {
|
||||
}
|
||||
|
||||
const submitCourse = () => {
|
||||
validateFields()
|
||||
updateCourse()
|
||||
}
|
||||
|
||||
@@ -471,14 +465,6 @@ const onMemberCreated = (user) => {
|
||||
}
|
||||
}
|
||||
|
||||
const validateFields = () => {
|
||||
Object.keys(courseResource.doc).forEach((key) => {
|
||||
if (typeof courseResource.doc[key] === 'string') {
|
||||
courseResource.doc[key] = sanitizeHTML(courseResource.doc[key])
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const updateCourse = () => {
|
||||
courseResource.setValue.submit(
|
||||
{
|
||||
|
||||
@@ -125,7 +125,18 @@ def save_progress(lesson: str, course: str, scorm_details: dict = None):
|
||||
"scorm_content": "" if scorm_details.is_complete else scorm_details.scorm_content,
|
||||
},
|
||||
)
|
||||
|
||||
if (not progress_already_exists and quiz_completed and assignment_completed and not scorm_details) or (
|
||||
scorm_details and scorm_details.is_complete and not lesson_already_completed
|
||||
):
|
||||
next_lesson = get_next_lesson(course, lesson)
|
||||
if next_lesson:
|
||||
frappe.db.set_value(
|
||||
"LMS Enrollment",
|
||||
membership,
|
||||
"current_lesson",
|
||||
next_lesson,
|
||||
update_modified=False,
|
||||
)
|
||||
progress = get_course_progress(course)
|
||||
if not is_demo_course(course):
|
||||
capture("course_progress", "lms")
|
||||
@@ -147,6 +158,33 @@ def save_progress(lesson: str, course: str, scorm_details: dict = None):
|
||||
return progress
|
||||
|
||||
|
||||
def get_next_lesson(course: str, lesson: str):
|
||||
lesson_reference = frappe.db.get_value(
|
||||
"Lesson Reference", {"lesson": lesson}, ["idx", "parent"], as_dict=1
|
||||
)
|
||||
if not lesson_reference:
|
||||
return None
|
||||
|
||||
total_lessons = frappe.db.count("Lesson Reference", {"parent": lesson_reference.parent})
|
||||
if lesson_reference.idx < total_lessons:
|
||||
return frappe.db.get_value(
|
||||
"Lesson Reference", {"parent": lesson_reference.parent, "idx": lesson_reference.idx + 1}, "lesson"
|
||||
)
|
||||
|
||||
total_chapters = frappe.db.count("Chapter Reference", {"parent": course})
|
||||
current_chapter_reference = frappe.db.get_value(
|
||||
"Chapter Reference", {"parent": course, "chapter": lesson_reference.parent}, ["idx"], as_dict=1
|
||||
)
|
||||
|
||||
if current_chapter_reference.idx >= total_chapters:
|
||||
return None
|
||||
|
||||
next_chapter = frappe.db.get_value(
|
||||
"Chapter Reference", {"parent": course, "idx": current_chapter_reference.idx + 1}, "chapter"
|
||||
)
|
||||
return frappe.db.get_value("Lesson Reference", {"parent": next_chapter, "idx": 1}, "lesson")
|
||||
|
||||
|
||||
def get_quiz_progress(lesson):
|
||||
lesson_details = frappe.db.get_value("Course Lesson", lesson, ["body", "content"], as_dict=1)
|
||||
quizzes = []
|
||||
|
||||
Reference in New Issue
Block a user