fix: verify if score_out_of is not 0 before calculating percentage

This commit is contained in:
Jannat Patel
2025-05-16 11:40:03 +05:30
parent 7b19618eca
commit 04a7361d0d
2 changed files with 16 additions and 16 deletions

View File

@@ -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,
}
})

View File

@@ -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