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

View File

@@ -252,7 +252,7 @@ import {
} from 'frappe-ui' } from 'frappe-ui'
import Link from '@/components/Controls/Link.vue' import Link from '@/components/Controls/Link.vue'
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
import { showToast } from '../utils' import { showToast } from '@/utils'
import { Image } from 'lucide-vue-next' import { Image } from 'lucide-vue-next'
import { capture } from '@/telemetry' import { capture } from '@/telemetry'
import MultiSelect from '@/components/Controls/MultiSelect.vue' import MultiSelect from '@/components/Controls/MultiSelect.vue'
@@ -345,6 +345,10 @@ const batchDetail = createResource({
data.instructors.forEach((instructor) => { data.instructors.forEach((instructor) => {
instructors.value.push(instructor.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] } else if (Object.hasOwn(batch, key)) batch[key] = data[key]
}) })
let checkboxes = ['published', 'paid_batch', 'allow_self_enrollment'] 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 """ """ Iterate through assessments and track their progress """
for assessment in assessments: 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( status = has_submitted_assessment(
assessment.assessment_name, assessment.assessment_type, student.student 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": elif assessment_type == "LMS Quiz":
doctype = "LMS Quiz Submission" doctype = "LMS Quiz Submission"
docfield = "quiz" docfield = "quiz"
fields = ["score"] fields = ["percentage"]
not_attempted = 0 not_attempted = 0
filters = {} filters = {}