diff --git a/internal/handlers/events.go b/internal/handlers/events.go index aec337d..aae6e6b 100644 --- a/internal/handlers/events.go +++ b/internal/handlers/events.go @@ -6,6 +6,8 @@ package handlers import ( "database/sql" + "fmt" + "html/template" "log" "net/http" "strconv" @@ -264,7 +266,7 @@ func (h *EventHandler) ViewEventExpenses(w http.ResponseWriter, r *http.Request) // GET /events/{id}/edit — EditEvent // --------------------------------------------------------------------------- -// EditEvent returns the event edit form pre-filled with current event data. +// EditEvent returns the event edit form fragment pre-filled with current data. func (h *EventHandler) EditEvent(w http.ResponseWriter, r *http.Request) { eventID := chi.URLParam(r, "id") event, err := database.GetEventByID(h.DB, eventID) @@ -273,20 +275,51 @@ func (h *EventHandler) EditEvent(w http.ResponseWriter, r *http.Request) { return } - tmpl := getTemplate("dashboard.html") - data := map[string]interface{}{ - "Event": event, - "Editing": true, - "Events": []database.Event{}, - "BaseCurrency": event.BaseCurrency, - "ExchangeRate": event.ExchangeRate, - "LastSampleRcpt": "", - "LastSampleClm": "", - } - if err := tmpl.Execute(w, data); err != nil { - log.Printf("ERROR [%s] handlers: EditEvent: execute template: %v", - time.Now().Format(time.RFC3339), err) + // Build a slug for the sample receipt currency (use base currency as default). + rcptCur := event.BaseCurrency + if rcptCur == "" { + rcptCur = "KES" } + + // Compute a rough reverse sample from the exchange rate: + // rate = claim / receipt → sample_receipt = 1000, sample_claim = 1000 * rate + sampleClm := event.ExchangeRate * 1000 + + w.Header().Set("Content-Type", "text/html; charset=utf-8") + fmt.Fprintf(w, `