fix: ensure overall average grade defaults to 0 and adjust course image fallback

This commit is contained in:
Rotimi Best
2025-09-10 21:23:36 +01:00
parent a078971064
commit 7d150ea500
2 changed files with 10 additions and 5 deletions
@@ -1,11 +1,12 @@
import { getServerSupabase } from '$lib/utils/functions/supabase.server';
import { fetchCourses, fetchProfileCourseProgress } from '$lib/utils/services/courses';
import type { import type {
UserAnalytics, UserAnalytics,
UserCourseAnalytics, UserCourseAnalytics,
UserExerciseStatsQuery, UserExerciseStatsQuery,
UserExercisesStats UserExercisesStats
} from '$lib/utils/types/analytics'; } from '$lib/utils/types/analytics';
import { fetchCourses, fetchProfileCourseProgress } from '$lib/utils/services/courses';
import { getServerSupabase } from '$lib/utils/functions/supabase.server';
import { json } from '@sveltejs/kit'; import { json } from '@sveltejs/kit';
const supabase = getServerSupabase(); const supabase = getServerSupabase();
@@ -124,7 +125,7 @@ async function getAudienceData(userId: string, orgId: string): Promise<UserAnaly
const overallAverageGrade = Math.round(allGrades / audienceAnalytics.courses.length); const overallAverageGrade = Math.round(allGrades / audienceAnalytics.courses.length);
audienceAnalytics.overallCourseProgress = overallCourseProgress; audienceAnalytics.overallCourseProgress = overallCourseProgress;
audienceAnalytics.overallAverageGrade = overallAverageGrade; audienceAnalytics.overallAverageGrade = overallAverageGrade || 0;
return audienceAnalytics; return audienceAnalytics;
} }
@@ -110,7 +110,7 @@
</div> </div>
</Grid> </Grid>
<div class="mt-5 rounded-md border p-3 dark:border-neutral-600 md:p-5"> <div class="mt-5 rounded-md border p-3 md:p-5 dark:border-neutral-600">
<h3 class="text-2xl font-bold"> <h3 class="text-2xl font-bold">
{$t('analytics.courses')} {$t('analytics.courses')}
</h3> </h3>
@@ -164,7 +164,11 @@
> >
<div class="flex items-center justify-between gap-4"> <div class="flex items-center justify-between gap-4">
<div class="flex w-4/5 items-center gap-4"> <div class="flex w-4/5 items-center gap-4">
<img src={course.logo} alt={course.title} class="h-20 w-24 rounded-md" /> <img
src={course.logo || '/images/classroomio-course-img-template.jpg'}
alt={course.title}
class="h-20 w-24 rounded-md"
/>
<div class="mb-4 gap-4"> <div class="mb-4 gap-4">
<a href={`/courses/${course.id}`}> <a href={`/courses/${course.id}`}>
<p class="text-lg font-semibold text-gray-600"> <p class="text-lg font-semibold text-gray-600">