diff --git a/backend/src/services/submissions.ts b/backend/src/services/submissions.ts index 1170bf50..90b245e3 100644 --- a/backend/src/services/submissions.ts +++ b/backend/src/services/submissions.ts @@ -1,12 +1,13 @@ -import { getAssignmentRepository, getGroupRepository, getSubmissionRepository } from '../data/repositories.js'; +import { getSubmissionRepository } from '../data/repositories.js'; import { LearningObjectIdentifier } from '../entities/content/learning-object-identifier.js'; import { NotFoundException } from '../exceptions/not-found-exception.js'; import { mapToSubmission, mapToSubmissionDTO } from '../interfaces/submission.js'; import { SubmissionDTO } from '@dwengo-1/common/interfaces/submission'; import { fetchStudent } from './students.js'; -import { getExistingGroupFromGroupDTO } from './groups.js'; +import { fetchGroup, getExistingGroupFromGroupDTO } from './groups.js'; import { Submission } from '../entities/assignments/submission.entity.js'; import { Language } from '@dwengo-1/common/util/language'; +import { fetchAssignment } from './assignments.js'; export async function fetchSubmission(loId: LearningObjectIdentifier, submissionNumber: number): Promise { const submissionRepository = getSubmissionRepository(); @@ -64,15 +65,18 @@ export async function getSubmissionsForLearningObjectAndAssignment( groupId?: number ): Promise { const loId = new LearningObjectIdentifier(learningObjectHruid, language, version); - const assignment = await getAssignmentRepository().findByClassIdAndAssignmentId(classId, assignmentId); - let submissions: Submission[]; - if (groupId !== undefined) { - const group = await getGroupRepository().findByAssignmentAndGroupNumber(assignment!, groupId); - submissions = await getSubmissionRepository().findAllSubmissionsForLearningObjectAndGroup(loId, group!); - } else { - submissions = await getSubmissionRepository().findAllSubmissionsForLearningObjectAndAssignment(loId, assignment!); + try { + let submissions: Submission[]; + if (groupId !== undefined) { + const group = await fetchGroup(classId, assignmentId, groupId); + submissions = await getSubmissionRepository().findAllSubmissionsForLearningObjectAndGroup(loId, group); + } else { + const assignment = await fetchAssignment(classId, assignmentId); + submissions = await getSubmissionRepository().findAllSubmissionsForLearningObjectAndAssignment(loId, assignment); + } + return submissions.map((s) => mapToSubmissionDTO(s)); + } catch (_) { + return []; } - - return submissions.map((s) => mapToSubmissionDTO(s)); } diff --git a/frontend/src/components/DiscussionsSideBar.vue b/frontend/src/components/DiscussionsSideBar.vue index 5c68e6ac..9c54ced4 100644 --- a/frontend/src/components/DiscussionsSideBar.vue +++ b/frontend/src/components/DiscussionsSideBar.vue @@ -34,19 +34,21 @@ - - - - - +
@@ -67,4 +69,10 @@ padding-top: 2%; font-size: 36px; } + + .nav-scroll-area { + overflow-y: auto; + flex-grow: 1; + min-height: 0; + } diff --git a/frontend/src/views/learning-paths/LearningPathPage.vue b/frontend/src/views/learning-paths/LearningPathPage.vue index 5a0705aa..193855f3 100644 --- a/frontend/src/views/learning-paths/LearningPathPage.vue +++ b/frontend/src/views/learning-paths/LearningPathPage.vue @@ -13,7 +13,7 @@ import authService from "@/services/auth/auth-service.ts"; import { LearningPathNode } from "@/data-objects/learning-paths/learning-path-node.ts"; import LearningPathGroupSelector from "@/views/learning-paths/LearningPathGroupSelector.vue"; - import { useQuestionsGroupQuery, useQuestionsQuery } from "@/queries/questions"; + import { useQuestionsQuery } from "@/queries/questions"; import type { QuestionsResponse } from "@/controllers/questions"; import type { LearningObjectIdentifierDTO } from "@dwengo-1/common/interfaces/learning-content"; import QandA from "@/components/QandA.vue"; @@ -163,11 +163,6 @@ }); } - const loID: LearningObjectIdentifierDTO = { - hruid: props.learningObjectHruid as string, - language: props.language, - }; - const discussionLink = computed( () => "/discussion" + @@ -237,7 +232,7 @@ -
+