kanban

Kanban client in Gio
Log | Files | Refs | README | LICENSE

commit 592b8602951207d949ef9b66ed97183e2c7819b3
parent cf0cc98bb79baa9920cc72cbbbbe02c1060ffe96
Author: Jack Mordaunt <jackmordaunt@gmail.com>
Date:   Sat, 27 Feb 2021 16:21:14 +0800

fix: index into slices when mutating values

Diffstat:
Mkanban.go | 14+++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/kanban.go b/kanban.go @@ -122,11 +122,11 @@ func (p *Project) StageForTicket(ticket Ticket) *Stage { return &Stage{} } -// FinalizeTicket renders the ticket "complete" ad moves it into an archive. +// FinalizeTicket renders the ticket "complete" and moves it into an archive. func (p *Project) FinalizeTicket(t Ticket) { - for _, s := range p.Stages { + for ii, s := range p.Stages { if s.Contains(t) { - s.UnAssign(t) + p.Stages[ii].UnAssign(t) p.Finalized = append(p.Finalized, t) break } @@ -151,11 +151,15 @@ func (s *Stage) Assign(ticket Ticket) error { return nil } -// UnAssign removes a ticket id from the stage. +// UnAssign removes a ticket from the stage. func (s *Stage) UnAssign(ticket Ticket) { for ii, t := range s.Tickets { if t == ticket { - s.Tickets = append(s.Tickets[:ii], s.Tickets[ii+1:]...) + if len(s.Tickets) == 1 { + s.Tickets = []Ticket{} + } else { + s.Tickets = append(s.Tickets[:ii], s.Tickets[ii+1:]...) + } } } }