@@ -139,12 +139,12 @@
{{
__('Question {0} of {1}').format(
activeQuestion,
- quiz.doc.questions.length
+ quiz.data.questions.length
)
}}
{
submission.creation = timeAgo(submission.creation)
@@ -275,8 +283,8 @@ const quizSubmission = createResource({
url: 'lms.lms.doctype.lms_quiz.lms_quiz.quiz_summary',
makeParams(values) {
return {
- quiz: quiz.doc.name,
- results: localStorage.getItem(quiz.doc.title),
+ quiz: quiz.data.name,
+ results: localStorage.getItem(quiz.data.title),
}
},
})
@@ -292,14 +300,24 @@ const questionDetails = createResource({
watch(activeQuestion, (value) => {
if (value > 0) {
- currentQuestion.value = quiz.doc.questions[value - 1].question
+ currentQuestion.value = quiz.data.questions[value - 1].question
questionDetails.reload()
}
})
+watch(
+ () => props.quizName,
+ (newName) => {
+ console.log(newName)
+ if (newName) {
+ quiz.reload()
+ }
+ }
+)
+
const startQuiz = () => {
activeQuestion.value = 1
- localStorage.removeItem(quiz.doc.title)
+ localStorage.removeItem(quiz.data.title)
}
const markAnswer = (index) => {
@@ -347,7 +365,7 @@ const checkAnswer = () => {
}
})
addToLocalStorage()
- if (!quiz.doc.show_answers) {
+ if (!quiz.data.show_answers) {
resetQuestion()
}
},
@@ -355,7 +373,7 @@ const checkAnswer = () => {
}
const addToLocalStorage = () => {
- let quizData = JSON.parse(localStorage.getItem(quiz.doc.title))
+ let quizData = JSON.parse(localStorage.getItem(quiz.data.title))
let questionData = {
question_index: activeQuestion.value,
answers: getAnswers().join(),
@@ -364,11 +382,11 @@ const addToLocalStorage = () => {
}),
}
quizData ? quizData.push(questionData) : (quizData = [questionData])
- localStorage.setItem(quiz.doc.title, JSON.stringify(quizData))
+ localStorage.setItem(quiz.data.title, JSON.stringify(quizData))
}
const nextQuetion = () => {
- if (!quiz.doc.show_answers) {
+ if (!quiz.data.show_answers) {
checkAnswer()
} else {
resetQuestion()
@@ -376,14 +394,14 @@ const nextQuetion = () => {
}
const resetQuestion = () => {
- if (activeQuestion.value == quiz.doc.questions.length) return
+ if (activeQuestion.value == quiz.data.questions.length) return
activeQuestion.value = activeQuestion.value + 1
selectedOptions.splice(0, selectedOptions.length, ...[0, 0, 0, 0])
showAnswers.length = 0
}
const submitQuiz = () => {
- if (!quiz.doc.show_answers) {
+ if (!quiz.data.show_answers) {
checkAnswer()
setTimeout(() => {
createSubmission()
diff --git a/frontend/src/pages/CreateLesson.vue b/frontend/src/pages/CreateLesson.vue
index 7bdba741..b0090f72 100644
--- a/frontend/src/pages/CreateLesson.vue
+++ b/frontend/src/pages/CreateLesson.vue
@@ -208,6 +208,16 @@ const lessonReference = createResource({
const convertToJSON = (lessonData) => {
let blocks = []
+ if (lessonData.youtube) {
+ let youtubeID = lessonData.youtube.split('/').pop()
+ blocks.push({
+ type: 'embed',
+ data: {
+ service: 'youtube',
+ embed: `https://www.youtube.com/embed/${youtubeID}`,
+ },
+ })
+ }
lessonData.body.split('\n').forEach((block) => {
if (block.includes('{{ YouTubeVideo')) {
let youtubeID = block.match(/\(["']([^"']+?)["']\)/)[1]
@@ -291,6 +301,16 @@ const convertToJSON = (lessonData) => {
})
}
})
+
+ if (lessonData.quizId) {
+ blocks.push({
+ type: 'quiz',
+ data: {
+ quiz: lessonData.quizId,
+ },
+ })
+ }
+
return blocks
}
diff --git a/lms/lms/utils.py b/lms/lms/utils.py
index 1412a3df..ca71a5d3 100644
--- a/lms/lms/utils.py
+++ b/lms/lms/utils.py
@@ -1769,6 +1769,8 @@ def get_lesson_creation_details(course, chapter, lesson):
"content",
"instructor_notes",
"instructor_content",
+ "youtube",
+ "quiz_id",
],
as_dict=1,
)