fix: batch time issue

This commit is contained in:
Jannat Patel
2024-12-13 11:45:54 +05:30
parent fdacab66f7
commit 6cdfb822b4
3 changed files with 37 additions and 18 deletions

View File

@@ -18,7 +18,11 @@
<ListHeader
class="mb-2 grid items-center space-x-4 rounded bg-gray-100 p-2"
>
<ListHeaderItem :item="item" v-for="item in getStudentColumns()">
<ListHeaderItem
:item="item"
v-for="item in getStudentColumns()"
:title="item.label"
>
<template #prefix="{ item }">
<FeatherIcon
v-if="item.icon"
@@ -46,15 +50,18 @@
{{ row[column.key] }}
</div>
<div v-else-if="column.icon == 'book-open'">
{{ Math.ceil(row.courses[column.key]) }}
{{ Math.ceil(row.courses[column.key]) }}%
</div>
<div v-else-if="column.icon == 'help-circle'">
<Badge
v-if="isAssignment(row.assessments[column.key])"
:theme="getStatusTheme(row.assessments[column.key])"
class="text-xs"
>
{{ row.assessments[column.key] }}
</Badge>
<div v-else>{{ parseInt(row.assessments[column.key]) }}%</div>
</div>
<Badge
v-else-if="column.icon == 'help-circle'"
:theme="getStatusTheme(row.assessments[column.key])"
class="text-xs"
>
{{ row.assessments[column.key] }}
</Badge>
</ListRowItem>
</template>
</ListRow>
@@ -125,30 +132,32 @@ const getStudentColumns = () => {
{
label: 'Full Name',
key: 'full_name',
width: 1,
width: '10rem',
},
]
if (students.data?.[0].courses) {
Object.keys(students.data?.[0].courses).forEach((course) => {
columns.push({
label: `${course} (%)`,
label: course,
key: course,
width: 1,
width: '10rem',
icon: 'book-open',
align: 'center',
})
})
}
console.log(students.data?.[0].assessments)
if (students.data?.[0].assessments) {
Object.keys(students.data?.[0].assessments).forEach((assessment) => {
columns.push({
label: assessment,
key: assessment,
width: 1,
width: '10rem',
icon: 'help-circle',
align: 'left',
align: isAssignment(students.data?.[0].assessments[assessment])
? 'left'
: 'center',
})
})
}
@@ -193,4 +202,8 @@ const getStatusTheme = (status) => {
return 'red'
}
}
const isAssignment = (value) => {
return isNaN(value)
}
</script>

View File

@@ -252,7 +252,7 @@ import {
} from 'frappe-ui'
import Link from '@/components/Controls/Link.vue'
import { useRouter } from 'vue-router'
import { showToast } from '../utils'
import { showToast } from '@/utils'
import { Image } from 'lucide-vue-next'
import { capture } from '@/telemetry'
import MultiSelect from '@/components/Controls/MultiSelect.vue'
@@ -345,6 +345,10 @@ const batchDetail = createResource({
data.instructors.forEach((instructor) => {
instructors.value.push(instructor.instructor)
})
} else if (['start_time', 'end_time'].includes(key)) {
let [hours, minutes, seconds] = data[key].split(':')
hours = hours.length == 1 ? '0' + hours : hours
batch[key] = `${hours}:${minutes}`
} else if (Object.hasOwn(batch, key)) batch[key] = data[key]
})
let checkboxes = ['published', 'paid_batch', 'allow_self_enrollment']

View File

@@ -1475,7 +1475,9 @@ def get_batch_students(batch):
""" Iterate through assessments and track their progress """
for assessment in assessments:
title = frappe.db.get_value("LMS Assignment", assessment.assessment_name, "title")
title = frappe.db.get_value(
assessment.assessment_type, assessment.assessment_name, "title"
)
status = has_submitted_assessment(
assessment.assessment_name, assessment.assessment_type, student.student
)
@@ -1502,7 +1504,7 @@ def has_submitted_assessment(assessment, assessment_type, member=None):
elif assessment_type == "LMS Quiz":
doctype = "LMS Quiz Submission"
docfield = "quiz"
fields = ["score"]
fields = ["percentage"]
not_attempted = 0
filters = {}