feat(frontend): CreateAssignment.vue accepteert hruid vanuit leerpad pagina
This commit is contained in:
		
							parent
							
								
									a421b1996a
								
							
						
					
					
						commit
						790ef985be
					
				
					 8 changed files with 348 additions and 23 deletions
				
			
		|  | @ -99,7 +99,7 @@ | |||
|     "loadSubmission": "Einladen", | ||||
|     "noSubmissionsYet": "Noch keine Lösungen eingereicht.", | ||||
|     "viewAsGroup": "Fortschritt ansehen von Gruppe...", | ||||
|     "assignLearningPath": "Als Aufgabe geben" | ||||
|     "assignLearningPath": "Als Aufgabe geben", | ||||
|     "group": "Gruppe", | ||||
|     "description": "Beschreibung", | ||||
|     "no-submission": "keine vorlage", | ||||
|  |  | |||
|  | @ -99,7 +99,7 @@ | |||
|     "loadSubmission": "Charger", | ||||
|     "noSubmissionsYet": "Pas encore de soumissions.", | ||||
|     "viewAsGroup": "Voir la progression du groupe...", | ||||
|     "assignLearningPath": "donner comme tâche" | ||||
|     "assignLearningPath": "donner comme tâche", | ||||
|     "group": "Groupe", | ||||
|     "description": "Description", | ||||
|     "no-submission": "aucune soumission", | ||||
|  |  | |||
|  | @ -99,7 +99,7 @@ | |||
|     "loadSubmission": "Inladen", | ||||
|     "noSubmissionsYet": "Nog geen indieningen.", | ||||
|     "viewAsGroup": "Vooruitgang bekijken van groep...", | ||||
|     "assignLearningPath": "Als opdracht geven" | ||||
|     "assignLearningPath": "Als opdracht geven", | ||||
|     "group": "Groep", | ||||
|     "description": "Beschrijving", | ||||
|     "no-submission": "geen indiening", | ||||
|  |  | |||
|  | @ -15,16 +15,6 @@ import type {AssignmentDTO} from "@dwengo-1/common/interfaces/assignment"; | |||
| import {useCreateAssignmentMutation} from "@/queries/assignments.ts"; | ||||
| import {useRoute} from "vue-router"; | ||||
| 
 | ||||
| /*** | ||||
|  TODO: when clicking the assign button from lp page pass the lp-hruid in a query like this: | ||||
|  router.push({ | ||||
|  path: "/assignment/create, | ||||
|  query: { | ||||
|  ...route.query, | ||||
|  lp: hruid, | ||||
|  }, | ||||
|  }); | ||||
|  */ | ||||
| 
 | ||||
| const route = useRoute(); | ||||
| const router = useRouter(); | ||||
|  | @ -56,10 +46,10 @@ const classesQueryResults = useTeacherClassesQuery(username, true); | |||
| const selectedClass = ref(undefined); | ||||
| 
 | ||||
| const assignmentTitle = ref(''); | ||||
| const selectedLearningPath = ref(route.query.lp || undefined); | ||||
| const selectedLearningPath = ref(route.query.hruid || undefined); | ||||
| 
 | ||||
| // Disable combobox when learningPath prop is passed | ||||
| const lpIsSelected = route.query.lp !== undefined; | ||||
| const lpIsSelected = route.query.hruid !== undefined; | ||||
| const deadline = ref(null); | ||||
| const description = ref(''); | ||||
| const groups = ref<string[][]>([]); | ||||
|  | @ -75,7 +65,7 @@ watch(selectedClass, () => { | |||
|     groups.value = []; | ||||
| }); | ||||
| 
 | ||||
| const {mutate, isSuccess} = useCreateAssignmentMutation(); | ||||
| const {mutate, data, isSuccess} = useCreateAssignmentMutation(); | ||||
| 
 | ||||
| async function submitFormHandler(): Promise<void> { | ||||
|     const {valid} = await form.value.validate(); | ||||
|  | @ -92,7 +82,7 @@ async function submitFormHandler(): Promise<void> { | |||
|     }; | ||||
| 
 | ||||
|     mutate({cid: assignmentDTO.within, data: assignmentDTO}); | ||||
|     if (isSuccess) await router.push("/user/assignment"); | ||||
|     if (isSuccess) await router.push(`/assignment/class/${data.value?.assignment.within}/${data.value?.assignment.id}`); | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
|  |  | |||
|  | @ -21,8 +21,8 @@ function useGroupsWithProgress( | |||
|     groups: Ref<GroupDTO[]>, | ||||
|     hruid: Ref<string>, | ||||
|     language: Ref<string> | ||||
| ): { groupProgressMap: Record<string, number> } { | ||||
|     const groupProgressMap: Record<string, number> = reactive({}); | ||||
| ): { groupProgressMap: Record<number, number> } { | ||||
|     const groupProgressMap: Record<number, number> = reactive({}); | ||||
| 
 | ||||
|     watchEffect(() => { | ||||
|         // Clear existing entries to avoid stale data | ||||
|  | @ -30,15 +30,18 @@ function useGroupsWithProgress( | |||
|             delete groupProgressMap[key]; | ||||
|         } | ||||
| 
 | ||||
|         const lang = language.value as Language; | ||||
|         const lang = ref(language.value as Language); | ||||
| 
 | ||||
|         groups.value.forEach((group) => { | ||||
|             const groupKey = group.groupNumber.toString(); | ||||
| 
 | ||||
|             const query = useGetLearningPathQuery(hruid.value, lang, { | ||||
|             const groupKey = group.groupNumber; | ||||
|             const forGroup = ref({ | ||||
|                 forGroup: groupKey, | ||||
|                 assignmentNo: assignmentId, | ||||
|                 classId: classId, | ||||
|             }); | ||||
| 
 | ||||
|             const query = useGetLearningPathQuery(hruid.value, lang, forGroup); | ||||
| 
 | ||||
|             const data = query.data.value; | ||||
| 
 | ||||
|             groupProgressMap[groupKey] = data ? calculateProgress(data) : 0; | ||||
|  |  | |||
		Reference in a new issue
	
	 Joyelle Ndagijimana
						Joyelle Ndagijimana