fix: verify if score_out_of is not 0 before calculating percentage
This commit is contained in:
@@ -2,10 +2,10 @@
|
||||
<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"
|
||||
>
|
||||
<Breadcrumbs v-if="submisisonDetails.doc" :items="breadcrumbs" />
|
||||
<Breadcrumbs v-if="submissionDetails.doc" :items="breadcrumbs" />
|
||||
<div class="space-x-2">
|
||||
<Badge
|
||||
v-if="submisisonDetails.isDirty"
|
||||
v-if="submissionDetails.isDirty"
|
||||
:label="__('Not Saved')"
|
||||
variant="subtle"
|
||||
theme="orange"
|
||||
@@ -15,19 +15,19 @@
|
||||
</Button>
|
||||
</div>
|
||||
</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">
|
||||
{{ submisisonDetails.doc.member_name }}
|
||||
{{ submissionDetails.doc.member_name }}
|
||||
</div>
|
||||
<div class="space-y-4 border-b pb-5 px-10">
|
||||
<div class="grid grid-cols-2 gap-5">
|
||||
<FormControl
|
||||
v-model="submisisonDetails.doc.quiz_title"
|
||||
v-model="submissionDetails.doc.quiz_title"
|
||||
:label="__('Quiz')"
|
||||
:disabled="true"
|
||||
/>
|
||||
<FormControl
|
||||
v-model="submisisonDetails.doc.member_name"
|
||||
v-model="submissionDetails.doc.member_name"
|
||||
:label="__('Member')"
|
||||
:disabled="true"
|
||||
/>
|
||||
@@ -35,12 +35,12 @@
|
||||
|
||||
<div class="grid grid-cols-2 gap-5">
|
||||
<FormControl
|
||||
v-model="submisisonDetails.doc.score"
|
||||
v-model="submissionDetails.doc.score"
|
||||
:label="__('Score')"
|
||||
:disabled="true"
|
||||
/>
|
||||
<FormControl
|
||||
v-model="submisisonDetails.doc.percentage"
|
||||
v-model="submissionDetails.doc.percentage"
|
||||
:label="__('Percentage')"
|
||||
:disabled="true"
|
||||
/>
|
||||
@@ -49,7 +49,7 @@
|
||||
|
||||
<div class="divide-y">
|
||||
<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"
|
||||
>
|
||||
<div class="text-ink-gray-9">
|
||||
@@ -119,7 +119,7 @@ const props = defineProps({
|
||||
},
|
||||
})
|
||||
|
||||
const submisisonDetails = createDocumentResource({
|
||||
const submissionDetails = createDocumentResource({
|
||||
doctype: 'LMS Quiz Submission',
|
||||
name: props.submission,
|
||||
auto: true,
|
||||
@@ -132,18 +132,18 @@ const breadcrumbs = computed(() => {
|
||||
route: {
|
||||
name: 'QuizSubmissionList',
|
||||
params: {
|
||||
quizID: submisisonDetails.doc.quiz,
|
||||
quizID: submissionDetails.doc.quiz,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
label: submisisonDetails.doc.quiz_title,
|
||||
label: submissionDetails.doc.quiz_title,
|
||||
},
|
||||
]
|
||||
})
|
||||
|
||||
const saveSubmission = () => {
|
||||
submisisonDetails.save.submit(
|
||||
submissionDetails.save.submit(
|
||||
{},
|
||||
{
|
||||
onError(err) {
|
||||
@@ -155,7 +155,7 @@ const saveSubmission = () => {
|
||||
|
||||
usePageMeta(() => {
|
||||
return {
|
||||
title: `${submisisonDetails.doc?.quiz_title}`,
|
||||
title: `${submissionDetails.doc?.quiz_title}`,
|
||||
icon: brand.favicon,
|
||||
}
|
||||
})
|
||||
|
||||
@@ -112,7 +112,7 @@ def quiz_summary(quiz, results):
|
||||
is_open_ended = data["is_open_ended"]
|
||||
|
||||
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(
|
||||
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
|
||||
|
||||
if question_details.type != "Open Ended":
|
||||
if len(result["is_correct"]):
|
||||
if len(result["is_correct"]) > 0:
|
||||
correct = result["is_correct"][0]
|
||||
for point in result["is_correct"]:
|
||||
correct = correct and point
|
||||
|
||||
Reference in New Issue
Block a user