From 2e5dee44dbf7a8c4fae56e188258005fd1190d03 Mon Sep 17 00:00:00 2001 From: Ethan Koenig Date: Sun, 11 Jun 2017 22:41:14 -0400 Subject: [PATCH] Fix deleted milestone bug --- models/issue_comment.go | 16 +++++++--------- models/issue_milestone.go | 8 ++++++++ 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/models/issue_comment.go b/models/issue_comment.go index 69edf28f5432..0cfecf6683e7 100644 --- a/models/issue_comment.go +++ b/models/issue_comment.go @@ -228,15 +228,14 @@ func (c *Comment) LoadLabel() error { func (c *Comment) LoadMilestone() error { if c.OldMilestoneID > 0 { var oldMilestone Milestone - has, err := x.ID(c.OldMilestoneID).Get(&oldMilestone) + has, err := x.ID(c.OldMilestoneID).Get(oldMilestone) if err != nil { return err } else if !has { - return ErrMilestoneNotExist{ - ID: c.OldMilestoneID, - } + c.OldMilestone = NewGhostMilestone() + } else { + c.OldMilestone = &oldMilestone } - c.OldMilestone = &oldMilestone } if c.MilestoneID > 0 { @@ -245,11 +244,10 @@ func (c *Comment) LoadMilestone() error { if err != nil { return err } else if !has { - return ErrMilestoneNotExist{ - ID: c.MilestoneID, - } + c.Milestone = NewGhostMilestone() + } else { + c.Milestone = &milestone } - c.Milestone = &milestone } return nil } diff --git a/models/issue_milestone.go b/models/issue_milestone.go index cfd2ce17076b..ac13c37fe1ac 100644 --- a/models/issue_milestone.go +++ b/models/issue_milestone.go @@ -119,6 +119,14 @@ func NewMilestone(m *Milestone) (err error) { return sess.Commit() } +// NewGhostMilestone a fake milestone to hold the place of a deleted milestone +func NewGhostMilestone() *Milestone { + return &Milestone{ + ID: -1, + Name: "Deleted", + } +} + func getMilestoneByRepoID(e Engine, repoID, id int64) (*Milestone, error) { m := &Milestone{ ID: id,