diff --git a/ui/src/routes/works/[wid]/+page.svelte b/ui/src/routes/works/[wid]/+page.svelte index d79e6bb..9048e5f 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; }); } @@ -52,8 +54,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}
@@ -62,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} +

+ - + @@ -115,7 +123,7 @@ 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