WIP: Fix types, allow filter for user in stats

This commit is contained in:
Christian Cueni 2024-04-08 14:22:33 +02:00
parent d417cf5fe3
commit 89fc3a8deb
4 changed files with 19 additions and 10 deletions

View File

@ -13,7 +13,11 @@ import CourseDetailDates from "@/components/dashboard/CourseDetailDates.vue";
import NoCourseSession from "@/components/dashboard/NoCourseSession.vue";
import MentorPage from "@/pages/dashboard/MentorPage.vue";
import CoursePanel from "@/components/dashboard/CoursePanel.vue";
import { DashboardConfigType, fetchDashboardConfigv2 } from "@/services/dashboard";
import {
DashboardConfigType,
DashboardCourseConfigType,
fetchDashboardConfigv2,
} from "@/services/dashboard";
const dashboardStore = useDashboardStore();
@ -30,7 +34,7 @@ const boards: Record<DashboardType, DashboardPage> = {
PRAXISBILDNER_DASHBOARD: { main: CoursePanel, aside: SimpleDates },
};
const dashboardConfigv2: Ref<DashboardConfigType[]> = ref([]);
const dashboardConfigv2: Ref<DashboardCourseConfigType[]> = ref([]);
onMounted(async () => {
dashboardConfigv2.value = await fetchDashboardConfigv2();
@ -74,7 +78,9 @@ function newDashboardConfigForId(id: string) {
dashboardStore.currentDashboardConfig.dashboard_type ===
'PRAXISBILDNER_DASHBOARD'
"
:course-config="dashboardStore.currentDashboardConfig"
:course-config="
newDashboardConfigForId(dashboardStore.currentDashboardConfig.id)
"
/>
<component
:is="boards[dashboardStore.currentDashboardConfig.dashboard_type].main"

View File

@ -55,7 +55,7 @@ export type DashboardPersonType = {
course_sessions: DashboardPersonCourseSessionType[];
};
export type DashboardConfigType = {
export type DashboardCourseConfigType = {
course_id: string;
course_slug: string;
course_title: string;
@ -143,5 +143,5 @@ export async function fetchDashboardPersons() {
}
export async function fetchDashboardConfigv2() {
return await itGetCached<DashboardConfigType[]>("/api/dashboard/config/");
return await itGetCached<DashboardCourseConfigType[]>("/api/dashboard/config/");
}

View File

@ -85,10 +85,13 @@ def get_assignment_completion_metrics(
assignment: vbv_lernwelt.assignment.models.Assignment,
user_selection_ids: List[str] | None,
) -> AssignmentCompletionMetricsType:
course_session_users = CourseSessionUser.objects.filter(
course_session=course_session,
role=CourseSessionUser.Role.MEMBER,
).values_list("user", flat=True)
if user_selection_ids:
course_session_users = user_selection_ids
else:
course_session_users = CourseSessionUser.objects.filter(
course_session=course_session,
role=CourseSessionUser.Role.MEMBER,
).values_list("user", flat=True)
evaluation_results = AssignmentCompletion.objects.filter(
completion_status=AssignmentCompletionStatus.EVALUATION_SUBMITTED.value,

View File

@ -79,7 +79,7 @@ class ProgressDashboardAssignmentType(graphene.ObjectType):
points_achieved_count = graphene.Int(required=True)
class öCourseProgressType(graphene.ObjectType):
class CourseProgressType(graphene.ObjectType):
_id = graphene.ID(required=True)
course_id = graphene.ID(required=True)
session_to_continue_id = graphene.ID(required=False)