fix: submitting

This commit is contained in:
EETagent 2023-01-17 16:35:27 +01:00
parent 44a887d211
commit 3177bcfbe0
3 changed files with 56 additions and 49 deletions

View file

@ -1,7 +1,7 @@
<script context="module" lang="ts">
export type GradeBackend = {
subject: string;
grade: number;
value: number;
semester: Semester;
};
</script>
@ -9,7 +9,31 @@
<script lang="ts">
import GradesRow, { type Grade, type Semester } from './GradesRow.svelte';
let gradesLocal: Array<Grade> = [
export let error: string | Array<unknown> = '';
export let grades: Array<GradeBackend>;
const convertGradeBackendToGrade = (gradesBackend: Array<GradeBackend>) => {
const grades: Array<Grade> = [];
for (let index = 0; index < gradesBackend.length; index++) {
const gradeBackend = gradesBackend[index];
let grade = grades.find((g) => g.subject === gradeBackend.subject);
if (!grade) {
grade = {
subject: gradeBackend.subject,
semesters: {}
};
grades.push(grade);
}
grade.semesters[gradeBackend.semester] = gradeBackend.value.toString();
}
return grades;
};
let gradesLocal: Array<Grade> =
grades.length > 0
? convertGradeBackendToGrade(grades)
: [
{ subject: 'Chování', semesters: {} },
{ subject: 'Český jazyk', semesters: {} },
{ subject: 'Matematika', semesters: {} },
@ -30,11 +54,6 @@
}
};
});*/
export let error: string | Array<unknown> = '';
export let grades: Array<GradeBackend>;
// Convert local Grade type to expanded GradesBackend type
const convertGradeToGradeBackend = () => {
// Delay to wait for select to be updated
@ -48,7 +67,7 @@
const gradeString = grade.semesters[semesterTyped]!;
gradesTemp.push({
subject: grade.subject,
grade: Number(gradeString),
value: Number(gradeString),
semester: semesterTyped
});
}
@ -57,23 +76,6 @@
grades = [...gradesTemp];
});
};
const convertGradeBackendToGrade = (gradesBackend: Array<GradeBackend>) => {
const grades: Array<Grade> = [];
for (let index = 0; index < gradesBackend.length; index++) {
const gradeBackend = gradesBackend[index];
let grade = grades.find((g) => g.subject === gradeBackend.subject);
if (!grade) {
grade = {
subject: gradeBackend.subject,
semesters: {}
};
grades.push(grade);
}
grade.semesters[gradeBackend.semester] = gradeBackend.grade.toString();
}
return grades;
};
</script>
<div class="mx-auto mt-8 flex text-gray-400 lg:w-4/5">

View file

@ -1,3 +1,4 @@
import type { GradeBackend } from '$lib/components/grades/GradesTable.svelte';
import { writable } from 'svelte/store';
export interface CandidateData {
@ -14,6 +15,7 @@ export interface CandidateData {
personalIdNumber: string;
schoolName: string;
healthInsurance: string;
grades: Array<GradeBackend>;
};
parents: Array<{
name: string;
@ -72,7 +74,8 @@ export const candidateData = writable<CandidateData>({
sex: '',
personalIdNumber: '',
schoolName: '',
healthInsurance: ''
healthInsurance: '',
grades: []
},
parents: []
});

View file

@ -116,7 +116,7 @@
.object()
.shape({
subject: yup.string().required(),
grade: yup.number().required(),
value: yup.number().required(),
semester: yup.string().required()
})
.required()
@ -278,9 +278,11 @@
delete values.candidate.zip;
await apiFillDetails(values);
goto('/dashboard');
} catch (e) {
values = oldValues;
$form = oldValues;
console.error('error while submitting data: ' + e);
}
}