Skip to content

Commit

Permalink
A lot of improvements:
Browse files Browse the repository at this point in the history
- Add gradings - Resolves #7
- Grade can be patched - Resolves #28
- Delete all links to user when deleting an account - Resolves MeetPlan/MeetPlanBackend#6 (not really tested)
  • Loading branch information
mytja committed Apr 22, 2022
1 parent a7668fc commit b0b50d6
Show file tree
Hide file tree
Showing 2 changed files with 65 additions and 9 deletions.
56 changes: 49 additions & 7 deletions src/ClassUser.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,12 @@
let absenceList = [];
let homework = [];
let gradings = [];
let viewGrades = true;
let viewAbsences = true;
let viewHomework = true;
let viewGradings = true;
function getUserData() {
fetch(`${baseurl}/user/get/data/${studentId}`, {headers: {"Authorization": "Bearer " + localStorage.getItem("key")}})
Expand All @@ -54,14 +56,21 @@
absences = r["data"];
let al = [];
for (let absence in absences) {
let a = absences[absence];
al.push(!a["IsExcused"])
al = [...al, !(absences[absence].IsExcused)]
}
console.log(al);
absenceList = al;
});
}
function getUserGradings() {
fetch(`${baseurl}/my/gradings?studentId=${studentId}`, {headers: {"Authorization": "Bearer " + localStorage.getItem("key")}})
.then((r) => r.json())
.then((r) => {
gradings = r["data"];
});
}
function getHomework() {
fetch(`${baseurl}/user/get/homework/${studentId}`, {headers: {"Authorization": "Bearer " + localStorage.getItem("key")}})
.then((r) => r.json())
Expand All @@ -74,8 +83,8 @@
fetch(`${baseurl}/my/grades?studentId=${studentId}`, {headers: {"Authorization": "Bearer " + localStorage.getItem("key")}})
.then((r) => r.json())
.then((r) => {
if (grades.data !== "Forbidden") {
grades = r["data"];
if (r.data !== "Forbidden") {
grades = r.data;
}
});
}
Expand All @@ -89,6 +98,7 @@
viewAbsences = data["parent_view_absences"];
viewHomework = data["parent_view_homework"];
viewGrades = data["parent_view_grades"];
viewGradings = data["parent_view_gradings"];
if (viewGrades) {
getGrades();
}
Expand All @@ -98,6 +108,9 @@
if (viewAbsences) {
getAbsences();
}
if (viewGradings) {
getUserGradings();
}
});
} else {
if (decoded["role"] !== "admin") {
Expand All @@ -106,6 +119,7 @@
getUserData();
getAbsences();
getHomework();
getUserGradings();
}
}
Expand Down Expand Up @@ -179,7 +193,11 @@
<div class="sameline">
<div style="display:inline-block; width: 5px;"/>
{#each period.Grades as grade}
<div style="color: {gradeColors[grade.Grade - 1]}; display:inline-block; font-size: 20px;">{grade.Grade}</div>
<div style="color: {gradeColors[grade.Grade - 1]}; display:inline-block; font-size: 20px;">
<span title="{grade.Description !== '' ? `Opis ocene: ${grade.Description}` : ''}
{grade.CanPatch ? 'Se lahko popravlja' : 'Se ne more popravljati'}">{grade.Grade}
</span>
</div>
<div style="display:inline-block; width: 5px;"/>
{/each}
<Meta style="display:inline-block; font-size: 20px; float:right;">{period.Average.toFixed(2)}</Meta>
Expand Down Expand Up @@ -219,7 +237,7 @@
{/if}
<h1>Odsotnost</h1>
{#if viewAbsences}
<Accordion>
<Accordion multiple>
{#each absences as item, i}
<Panel bind:open={absenceList[i]}>
<Header>
Expand Down Expand Up @@ -267,7 +285,7 @@
<br>
Rok oddaje: {homework.ToDate}
<br>
Status: {translatedSegments[homework.Status]}
Status: {translatedSegments[homework.Status] === undefined ? "ŠE NE UREJENO" : translatedSegments[homework.Status]}
<br>
{homework.Description}

Expand All @@ -277,5 +295,29 @@
{:else}
Sistemski administrator je izključil vpogled v domače naloge otroka za vse starše.
{/if}

<h1>Ocenjevanja in preverjanja znanj</h1>
{#if viewGradings}
{#each gradings as item}
<h2>{item.Date}</h2>
{#each item.Gradings as grading, n}
<h3>{grading.MeetingName}</h3>
{#if grading.IsTest}
Preverjanje znanja
{:else}
{#if grading.IsWrittenAssessment}
Pisno ocenjevanje
{:else}
Ocenjevanje
{/if}
{/if}
<br>
<a on:click={() => navigate(`/meeting/${grading.ID}`)}>Pojdi na srečanje</a>
{/each}
<p/>
{/each}
{:else}
Sistemski administrator je izključil vpogled v domače naloge otroka za vse starše.
{/if}
</main>
</AppContent>
18 changes: 16 additions & 2 deletions src/Widgets/GradesTable.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
let selectedPeriod;
let userId;
let finalize = false;
let canPatch = true;
function getGrades() {
fetch(`${baseurl}/meeting/get/${meetingId}/grades`, {headers: {"Authorization": "Bearer " + localStorage.getItem("key")}})
Expand All @@ -38,6 +39,7 @@
fd.append("user_id", userId);
fd.append("period", selectedPeriod);
fd.append("is_final", finalize.toString());
fd.append("can_patch", canPatch.toString())
fetch(`${baseurl}/grades/new/${meetingId}`, {headers: {"Authorization": "Bearer " + localStorage.getItem("key")}, method: "POST", body: fd})
.then((r) => r.json())
.then((r) => {
Expand Down Expand Up @@ -130,6 +132,13 @@
<Switch bind:checked={isWritten} />
<span slot="label">Pisna ocena</span>
</FormField>
{#if toPatch === undefined}
<br>
<FormField>
<Switch bind:checked={canPatch} />
<span slot="label">Se lahko popravlja</span>
</FormField>
{/if}
{/if}
</Content>
<Actions>
Expand Down Expand Up @@ -192,14 +201,19 @@
{#each period.Grades as grade}
<div style="color: {gradeColors[grade.Grade - 1]}; display:inline-block; font-size: 20px;" on:click={(e) => {
e.stopPropagation();
if (user.Final === 0) {
if (user.Final === 0 && grade.CanPatch === true) {
toPatch = grade.ID;
selectedGrade = grade.Grade;
selectedPeriod = i + 1;
isWritten = grade.IsWritten;
open = true;
}
}}>{grade.Grade}</div>
}}>
<span title="{grade.Description !== '' ? `Opis ocene: ${grade.Description}` : ''}
{grade.CanPatch ? 'Se lahko popravlja' : 'Se ne more popravljati'}">
{grade.Grade}
</span>
</div>
<div style="display:inline-block; width: 5px;"/>
{/each}
<Meta style="display:inline-block; font-size: 20px; float:right;">{period.Average.toFixed(2)}</Meta>
Expand Down

0 comments on commit b0b50d6

Please sign in to comment.