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,