From c9c717f1e3ec94fa9e7505e15e472faf6a51041f Mon Sep 17 00:00:00 2001 From: prokopparuzek Date: Wed, 17 Sep 2025 19:08:35 +0200 Subject: [PATCH] handle answers --- klice.go | 15 +++++++++++++++ templates.go | 1 + templates/assignment.html | 3 ++- 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/klice.go b/klice.go index e309f71..41c33a4 100644 --- a/klice.go +++ b/klice.go @@ -206,6 +206,7 @@ func qrHandler(w http.ResponseWriter, r *http.Request) { FinalClue: "", Coordinates: "", Solution: "", + Wrong: false, } // get penalties for this task and team @@ -238,6 +239,20 @@ func qrHandler(w http.ResponseWriter, r *http.Request) { db.Exec("UPDATE penalties SET minutes = 30 WHERE team_id = ? AND task_id = ?", teamID, taskID) db.Exec("UPDATE teams SET penalty = penalty + 30 WHERE id = ?", teamID) db.Exec("UPDATE teams SET last_cipher = ? WHERE id = ?", order+1, teamID) + } else if answer := r.FormValue("solution"); answer != "" { // answer submission + var correctAnswer string + err = db.QueryRow("SELECT solution FROM CIPHERS WHERE id = ?", cipherID).Scan(&correctAnswer) + if err != nil { + http.Error(w, "Could not retrieve solution", http.StatusInternalServerError) + return + } + if strings.EqualFold(strings.TrimSpace(answer), strings.TrimSpace(correctAnswer)) { + // correct answer, move to next task + db.Exec("UPDATE teams SET last_cipher = ? WHERE id = ?", order+1, teamID) + help = 2 + } else { + CipherTemplateData.Wrong = true + } } } diff --git a/templates.go b/templates.go index 84161bd..c3a1b7b 100644 --- a/templates.go +++ b/templates.go @@ -12,6 +12,7 @@ type CipherTemplateS struct { Coordinates string Solution string Help int + Wrong bool } var CipherTemplate = template.Must(template.ParseFiles("templates/assignment.html")) diff --git a/templates/assignment.html b/templates/assignment.html index c0db094..c79d6df 100644 --- a/templates/assignment.html +++ b/templates/assignment.html @@ -27,8 +27,9 @@ {{end}}
{{if ne .Help 2}} + {{if .Wrong}}

Špatné řešení, zkus to znovu.

{{end}}
- Řešení:
+ Řešení:
{{else}}