fix: verify if score_out_of is not 0 before calculating percentage
This commit is contained in:
@@ -2,10 +2,10 @@
|
|||||||
<header
|
<header
|
||||||
class="sticky top-0 z-10 flex items-center justify-between border-b bg-surface-white px-3 py-2.5 sm:px-5"
|
class="sticky top-0 z-10 flex items-center justify-between border-b bg-surface-white px-3 py-2.5 sm:px-5"
|
||||||
>
|
>
|
||||||
<Breadcrumbs v-if="submisisonDetails.doc" :items="breadcrumbs" />
|
<Breadcrumbs v-if="submissionDetails.doc" :items="breadcrumbs" />
|
||||||
<div class="space-x-2">
|
<div class="space-x-2">
|
||||||
<Badge
|
<Badge
|
||||||
v-if="submisisonDetails.isDirty"
|
v-if="submissionDetails.isDirty"
|
||||||
:label="__('Not Saved')"
|
:label="__('Not Saved')"
|
||||||
variant="subtle"
|
variant="subtle"
|
||||||
theme="orange"
|
theme="orange"
|
||||||
@@ -15,19 +15,19 @@
|
|||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
<div v-if="submisisonDetails.doc" class="w-2/3 border-x mx-auto py-5">
|
<div v-if="submissionDetails.doc" class="w-2/3 border-x mx-auto py-5">
|
||||||
<div class="text-xl px-10 font-semibold text-ink-gray-9 mb-5">
|
<div class="text-xl px-10 font-semibold text-ink-gray-9 mb-5">
|
||||||
{{ submisisonDetails.doc.member_name }}
|
{{ submissionDetails.doc.member_name }}
|
||||||
</div>
|
</div>
|
||||||
<div class="space-y-4 border-b pb-5 px-10">
|
<div class="space-y-4 border-b pb-5 px-10">
|
||||||
<div class="grid grid-cols-2 gap-5">
|
<div class="grid grid-cols-2 gap-5">
|
||||||
<FormControl
|
<FormControl
|
||||||
v-model="submisisonDetails.doc.quiz_title"
|
v-model="submissionDetails.doc.quiz_title"
|
||||||
:label="__('Quiz')"
|
:label="__('Quiz')"
|
||||||
:disabled="true"
|
:disabled="true"
|
||||||
/>
|
/>
|
||||||
<FormControl
|
<FormControl
|
||||||
v-model="submisisonDetails.doc.member_name"
|
v-model="submissionDetails.doc.member_name"
|
||||||
:label="__('Member')"
|
:label="__('Member')"
|
||||||
:disabled="true"
|
:disabled="true"
|
||||||
/>
|
/>
|
||||||
@@ -35,12 +35,12 @@
|
|||||||
|
|
||||||
<div class="grid grid-cols-2 gap-5">
|
<div class="grid grid-cols-2 gap-5">
|
||||||
<FormControl
|
<FormControl
|
||||||
v-model="submisisonDetails.doc.score"
|
v-model="submissionDetails.doc.score"
|
||||||
:label="__('Score')"
|
:label="__('Score')"
|
||||||
:disabled="true"
|
:disabled="true"
|
||||||
/>
|
/>
|
||||||
<FormControl
|
<FormControl
|
||||||
v-model="submisisonDetails.doc.percentage"
|
v-model="submissionDetails.doc.percentage"
|
||||||
:label="__('Percentage')"
|
:label="__('Percentage')"
|
||||||
:disabled="true"
|
:disabled="true"
|
||||||
/>
|
/>
|
||||||
@@ -49,7 +49,7 @@
|
|||||||
|
|
||||||
<div class="divide-y">
|
<div class="divide-y">
|
||||||
<div
|
<div
|
||||||
v-for="(row, index) in submisisonDetails.doc.result"
|
v-for="(row, index) in submissionDetails.doc.result"
|
||||||
class="py-5 px-10 space-y-4"
|
class="py-5 px-10 space-y-4"
|
||||||
>
|
>
|
||||||
<div class="text-ink-gray-9">
|
<div class="text-ink-gray-9">
|
||||||
@@ -119,7 +119,7 @@ const props = defineProps({
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
const submisisonDetails = createDocumentResource({
|
const submissionDetails = createDocumentResource({
|
||||||
doctype: 'LMS Quiz Submission',
|
doctype: 'LMS Quiz Submission',
|
||||||
name: props.submission,
|
name: props.submission,
|
||||||
auto: true,
|
auto: true,
|
||||||
@@ -132,18 +132,18 @@ const breadcrumbs = computed(() => {
|
|||||||
route: {
|
route: {
|
||||||
name: 'QuizSubmissionList',
|
name: 'QuizSubmissionList',
|
||||||
params: {
|
params: {
|
||||||
quizID: submisisonDetails.doc.quiz,
|
quizID: submissionDetails.doc.quiz,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: submisisonDetails.doc.quiz_title,
|
label: submissionDetails.doc.quiz_title,
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
|
||||||
const saveSubmission = () => {
|
const saveSubmission = () => {
|
||||||
submisisonDetails.save.submit(
|
submissionDetails.save.submit(
|
||||||
{},
|
{},
|
||||||
{
|
{
|
||||||
onError(err) {
|
onError(err) {
|
||||||
@@ -155,7 +155,7 @@ const saveSubmission = () => {
|
|||||||
|
|
||||||
usePageMeta(() => {
|
usePageMeta(() => {
|
||||||
return {
|
return {
|
||||||
title: `${submisisonDetails.doc?.quiz_title}`,
|
title: `${submissionDetails.doc?.quiz_title}`,
|
||||||
icon: brand.favicon,
|
icon: brand.favicon,
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ def quiz_summary(quiz, results):
|
|||||||
is_open_ended = data["is_open_ended"]
|
is_open_ended = data["is_open_ended"]
|
||||||
|
|
||||||
score_out_of = quiz_details.total_marks
|
score_out_of = quiz_details.total_marks
|
||||||
percentage = (score / score_out_of) * 100
|
percentage = (score / score_out_of) * 100 if score_out_of else 0
|
||||||
submission = create_submission(
|
submission = create_submission(
|
||||||
quiz, results, score_out_of, quiz_details.passing_percentage
|
quiz, results, score_out_of, quiz_details.passing_percentage
|
||||||
)
|
)
|
||||||
@@ -146,7 +146,7 @@ def process_results(results, quiz):
|
|||||||
result["marks_out_of"] = question_details.marks
|
result["marks_out_of"] = question_details.marks
|
||||||
|
|
||||||
if question_details.type != "Open Ended":
|
if question_details.type != "Open Ended":
|
||||||
if len(result["is_correct"]):
|
if len(result["is_correct"]) > 0:
|
||||||
correct = result["is_correct"][0]
|
correct = result["is_correct"][0]
|
||||||
for point in result["is_correct"]:
|
for point in result["is_correct"]:
|
||||||
correct = correct and point
|
correct = correct and point
|
||||||
|
|||||||
Reference in New Issue
Block a user