From cc729227ce7b711632ab8671d1b639b7fa2bb5d7 Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Mon, 6 Mar 2023 12:10:47 +0100 Subject: [PATCH 1/4] ui: Auto display grades to admin when work is over --- ui/src/routes/works/[wid]/+page.svelte | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ui/src/routes/works/[wid]/+page.svelte b/ui/src/routes/works/[wid]/+page.svelte index d79e6bb..4ced956 100644 --- a/ui/src/routes/works/[wid]/+page.svelte +++ b/ui/src/routes/works/[wid]/+page.svelte @@ -52,8 +52,10 @@ -{#if $user && $user.is_admin && edit} - edit = false} /> +{#if $user && $user.is_admin && (edit || w.endAvailability() < Date.now())} + {#if edit} + edit = false} /> + {/if} {#if w.description}
From 0b192e478373a4ed0e0f7c0d629f94248059d8ef Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Mon, 6 Mar 2023 12:17:12 +0100 Subject: [PATCH 2/4] ui: Add more grade stats --- ui/src/routes/works/[wid]/+page.svelte | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/ui/src/routes/works/[wid]/+page.svelte b/ui/src/routes/works/[wid]/+page.svelte index 4ced956..b61f5fc 100644 --- a/ui/src/routes/works/[wid]/+page.svelte +++ b/ui/src/routes/works/[wid]/+page.svelte @@ -16,7 +16,7 @@ let warn_already_used = false; let w = null; let gradesP = null; - let mean = 0; + let stats = {"mean": 0, "min": 999, "max": 0}; $: w = data.work; $: refresh_submission(data.work); @@ -34,8 +34,10 @@ let sum = 0; for (const grade of grades) { sum += grade.score; + if (stats.min > grade.score) stats.min = grade.score; + if (stats.max < grade.score) stats.max = grade.score; } - mean = sum / grades.length; + stats.mean = sum / grades.length; }); } @@ -64,7 +66,12 @@
-

Notes

+

+ Notes + + {#if stats.mean > 0}(moyenne : {Math.round(stats.mean*100)/100}, min : {stats.min}, max : {stats.max}){/if} + +

{:then grades} +

+ - + From 51a311f0b9de5ab52f57ead7a093a57c1b6fabca Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Mon, 6 Mar 2023 12:19:14 +0100 Subject: [PATCH 3/4] ui: Fix race condition where refresh can occurs before deletion --- ui/src/routes/works/[wid]/+page.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/src/routes/works/[wid]/+page.svelte b/ui/src/routes/works/[wid]/+page.svelte index b61f5fc..9048e5f 100644 --- a/ui/src/routes/works/[wid]/+page.svelte +++ b/ui/src/routes/works/[wid]/+page.svelte @@ -123,7 +123,7 @@ From 107b17c11f3c14bda2289136796499ce8f2d0590 Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Mon, 6 Mar 2023 12:31:22 +0100 Subject: [PATCH 4/4] AddGrade erase any previous grade recorded for the user --- works.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/works.go b/works.go index 1ce2e81..e2d857d 100644 --- a/works.go +++ b/works.go @@ -472,6 +472,19 @@ func (u *User) GetMyWorkGrade(w *Work) (g WorkGrade, err error) { } func (w *Work) AddGrade(grade WorkGrade) error { + u := User{Id: grade.IdUser} + + // Search a previous record + g, err := u.GetMyWorkGrade(w) + if err != nil && err != sql.ErrNoRows { + return err + } else if err == nil { + _, err = g.Delete() + if err != nil { + return err + } + } + return w.AddGrades([]WorkGrade{grade}) }
Login - Note - {#if mean > 0}(moyenne : {Math.round(mean*100)/100}){/if} - Note Commentaire Date de la note