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
|
@ -18,6 +18,7 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"@dwengo-1/common": "^0.1.1",
|
||||
"@rollup/rollup-darwin-arm64": "^4.40.0",
|
||||
"@tanstack/react-query": "^5.69.0",
|
||||
"@tanstack/vue-query": "^5.69.0",
|
||||
"@vueuse/core": "^13.1.0",
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue