admin: obtiznosti + ID

This commit is contained in:
2025-10-12 16:14:06 +02:00
parent 8fe76406d8
commit 6623d747ab
4 changed files with 17 additions and 9 deletions

View File

@@ -356,8 +356,8 @@ func AdminLevelHandler(w http.ResponseWriter, r *http.Request) {
} }
// Deleting an existing difficulty level // Deleting an existing difficulty level
if r.PostForm.Has("delete") { if r.PostForm.Has("delete") {
levelName := r.FormValue("delete") id := r.FormValue("delete")
_, err := db.Exec("DELETE FROM difficulty_levels WHERE level_name = ?", levelName) _, err := db.Exec("DELETE FROM difficulty_levels WHERE id = ?", id)
if err != nil { if err != nil {
http.Error(w, "Database error", http.StatusInternalServerError) http.Error(w, "Database error", http.StatusInternalServerError)
return return
@@ -379,16 +379,16 @@ func AdminLevelHandler(w http.ResponseWriter, r *http.Request) {
http.Redirect(w, r, "/admin/levels", http.StatusSeeOther) http.Redirect(w, r, "/admin/levels", http.StatusSeeOther)
return return
} }
rows, err := db.Query("SELECT level_name FROM difficulty_levels ORDER BY id") rows, err := db.Query("SELECT id, level_name FROM difficulty_levels ORDER BY id")
if err != nil { if err != nil {
http.Error(w, "Database error", http.StatusInternalServerError) http.Error(w, "Database error", http.StatusInternalServerError)
return return
} }
defer rows.Close() defer rows.Close()
var difficultyLevels []string var difficultyLevels []AdminLevelTemplateS
for rows.Next() { for rows.Next() {
var level string var level AdminLevelTemplateS
if err := rows.Scan(&level); err != nil { if err := rows.Scan(&level.ID, &level.Name); err != nil {
http.Error(w, "Database error", http.StatusInternalServerError) http.Error(w, "Database error", http.StatusInternalServerError)
return return
} }

View File

@@ -13,6 +13,7 @@ import (
) )
const domain = "http://localhost:8080" const domain = "http://localhost:8080"
const dbFile = "./klice.db"
var db *sql.DB var db *sql.DB
@@ -323,7 +324,7 @@ func qrHandler(w http.ResponseWriter, r *http.Request) {
func main() { func main() {
var err error var err error
db, err = sql.Open("sqlite3", "./klice.db?_fk=on") db, err = sql.Open("sqlite3", dbFile+"?_fk=on")
if err != nil { if err != nil {
fmt.Println("Error opening database:", err) fmt.Println("Error opening database:", err)
return return

View File

@@ -72,6 +72,11 @@ type AdminQRTemplateS struct {
Positions []int Positions []int
} }
type AdminLevelTemplateS struct {
ID int
Name string
}
var CipherTemplate = template.Must(template.ParseFiles("templates/assignment.html")) var CipherTemplate = template.Must(template.ParseFiles("templates/assignment.html"))
var TeamTemplate = template.Must(template.ParseFiles("templates/team.html")) var TeamTemplate = template.Must(template.ParseFiles("templates/team.html"))
var AdminTeamsTemplate = template.Must(template.ParseFiles("templates/adminTeams.html")) var AdminTeamsTemplate = template.Must(template.ParseFiles("templates/adminTeams.html"))

View File

@@ -10,15 +10,17 @@
<h1>Úrovně obtížnosti</h1> <h1>Úrovně obtížnosti</h1>
<table border="1"> <table border="1">
<tr> <tr>
<th>ID</th>
<th>Jméno</th> <th>Jméno</th>
<th>Smazat</th> <th>Smazat</th>
</tr> </tr>
{{range .}} {{range .}}
<tr> <tr>
<td>{{.}}</td> <td>{{.ID}}</td>
<td>{{.Name}}</td>
<td> <td>
<form action="/admin/levels" method="post"> <form action="/admin/levels" method="post">
<input type="hidden" name="delete" value="{{.}}"> <input type="hidden" name="delete" value="{{.ID}}">
<button type="submit">Smazat</button> <button type="submit">Smazat</button>
</form> </form>
</td> </td>