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