From 444441861b8ee30af99a366456b33caab2f8a883 Mon Sep 17 00:00:00 2001 From: Jocadbz Date: Tue, 9 Jun 2026 18:56:40 -0300 Subject: [PATCH] Show error when model deletion fails ModelDelete now checks the DB error (e.g. FK constraint from devices still using the model) and renders the model list with an alert instead of silently redirecting with no feedback. --- internal/handlers/models.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/internal/handlers/models.go b/internal/handlers/models.go index b96b8a9..98aa18b 100644 --- a/internal/handlers/models.go +++ b/internal/handlers/models.go @@ -146,10 +146,21 @@ func (h *Handlers) ModelUpdate(w http.ResponseWriter, r *http.Request) { func (h *Handlers) ModelDelete(w http.ResponseWriter, r *http.Request) { idStr := r.PathValue("id") id, _ := strconv.ParseInt(idStr, 10, 64) - h.Store.ModelDelete(id) + if err := h.Store.ModelDelete(id); err != nil { + h.renderModelListError(w, "Cannot delete model: it is in use by existing devices.") + return + } http.Redirect(w, r, "/models", http.StatusSeeOther) } +func (h *Handlers) renderModelListError(w http.ResponseWriter, msg string) { + list, _ := h.Store.ModelGetAll() + if list == nil { + list = []models.DeviceModel{} + } + h.render(w, "model_list.html", ModelListData{Models: list, Error: msg}) +} + func saveUploadedFile(r *http.Request, field, dir string) string { file, header, err := r.FormFile(field) if err != nil {