fix: batch time issue
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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']
|
||||
|
||||
@@ -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 = {}
|
||||
|
||||
Reference in New Issue
Block a user