Include slot claimers in the Going list
The Going section now shows both RSVPs and people who claimed slots, deduplicated by name (case-insensitive). Claim-only people don't get a remove button—they unclaim from the slot card instead. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
+22
@@ -121,10 +121,17 @@ type SlotView struct {
|
||||
Pct int64
|
||||
}
|
||||
|
||||
type GoingPerson struct {
|
||||
Name string
|
||||
Note string
|
||||
RsvpID int64
|
||||
}
|
||||
|
||||
type EventPageData struct {
|
||||
Event db.Event
|
||||
Slots []SlotView
|
||||
Rsvps []db.Rsvp
|
||||
GoingList []GoingPerson
|
||||
TotalGoing int64
|
||||
IsAdmin bool
|
||||
BaseURL string
|
||||
@@ -180,6 +187,20 @@ func (s *Server) loadEventPage(r *http.Request, slug string, isAdmin bool) (*Eve
|
||||
}
|
||||
totalGoing += int64(len(rsvps))
|
||||
|
||||
// Build deduplicated GoingList: RSVPs first, then claim-only people
|
||||
var goingList []GoingPerson
|
||||
seen := make(map[string]bool)
|
||||
for _, r := range rsvps {
|
||||
goingList = append(goingList, GoingPerson{Name: r.Name, Note: r.Note, RsvpID: r.ID})
|
||||
seen[strings.ToLower(r.Name)] = true
|
||||
}
|
||||
for _, c := range claims {
|
||||
if !seen[strings.ToLower(c.Name)] {
|
||||
goingList = append(goingList, GoingPerson{Name: c.Name})
|
||||
seen[strings.ToLower(c.Name)] = true
|
||||
}
|
||||
}
|
||||
|
||||
var descHTML template.HTML
|
||||
if event.Description != "" {
|
||||
descHTML = RenderMarkdown(event.Description)
|
||||
@@ -189,6 +210,7 @@ func (s *Server) loadEventPage(r *http.Request, slug string, isAdmin bool) (*Eve
|
||||
Event: event,
|
||||
Slots: slotViews,
|
||||
Rsvps: rsvps,
|
||||
GoingList: goingList,
|
||||
TotalGoing: totalGoing,
|
||||
IsAdmin: isAdmin,
|
||||
BaseURL: s.baseURL,
|
||||
|
||||
Reference in New Issue
Block a user