diff --git a/cmd/web.go b/cmd/web.go index 80b4feac14..9e35698a4d 100644 --- a/cmd/web.go +++ b/cmd/web.go @@ -435,9 +435,9 @@ func runWeb(ctx *cli.Context) { m.Group("/milestones", func() { m.Get("/new", repo.NewMilestone) m.Post("/new", bindIgnErr(auth.CreateMilestoneForm{}), repo.NewMilestonePost) - m.Get("/:index/edit", repo.EditMilestone) - m.Post("/:index/edit", bindIgnErr(auth.CreateMilestoneForm{}), repo.EditMilestonePost) - m.Get("/:index/:action", repo.ChangeMilestonStatus) + m.Get("/:id/edit", repo.EditMilestone) + m.Post("/:id/edit", bindIgnErr(auth.CreateMilestoneForm{}), repo.EditMilestonePost) + m.Get("/:id/:action", repo.ChangeMilestonStatus) m.Post("/delete", repo.DeleteMilestone) }, reqRepoAdmin) diff --git a/models/error.go b/models/error.go index 7851e19407..e52d9b16d9 100644 --- a/models/error.go +++ b/models/error.go @@ -233,8 +233,7 @@ func (err ErrRepoNotExist) Error() string { // \/ \/ \/ \/ \/ type ErrMilestoneNotExist struct { - ID int64 - Index int64 + ID int64 } func IsErrMilestoneNotExist(err error) bool { @@ -243,5 +242,5 @@ func IsErrMilestoneNotExist(err error) bool { } func (err ErrMilestoneNotExist) Error() string { - return fmt.Sprintf("milestone does not exist [id: %d, index: %d]", err.ID, err.Index) + return fmt.Sprintf("milestone does not exist [id: %d]", err.ID) } diff --git a/models/issue.go b/models/issue.go index a80a984912..cff69ff171 100644 --- a/models/issue.go +++ b/models/issue.go @@ -60,7 +60,7 @@ func (i *Issue) AfterSet(colName string, _ xorm.Cell) { var err error switch colName { case "milestone_id": - i.Milestone, err = GetMilestoneById(i.MilestoneID) + i.Milestone, err = GetMilestoneByID(i.MilestoneID) if err != nil { log.Error(3, "GetMilestoneById: %v", err) } @@ -644,7 +644,6 @@ func DeleteLabel(repoID, labelID int64) error { type Milestone struct { ID int64 `xorm:"pk autoincr"` RepoID int64 `xorm:"INDEX"` - Index int64 Name string Content string `xorm:"TEXT"` RenderedContent string `xorm:"-"` @@ -680,44 +679,30 @@ func (m *Milestone) CalOpenIssues() { // NewMilestone creates new milestone of repository. func NewMilestone(m *Milestone) (err error) { sess := x.NewSession() - defer sess.Close() + defer sessionRelease(sess) if err = sess.Begin(); err != nil { return err } + m.Deadline = m.Deadline.Local() if _, err = sess.Insert(m); err != nil { - sess.Rollback() return err } - rawSql := "UPDATE `repository` SET num_milestones = num_milestones + 1 WHERE id = ?" - if _, err = sess.Exec(rawSql, m.RepoID); err != nil { - sess.Rollback() + if _, err = sess.Exec("UPDATE `repository` SET num_milestones=num_milestones+1 WHERE id=?", m.RepoID); err != nil { return err } return sess.Commit() } -// GetMilestoneById returns the milestone by given ID. -func GetMilestoneById(id int64) (*Milestone, error) { +// GetMilestoneByID returns the milestone of given ID. +func GetMilestoneByID(id int64) (*Milestone, error) { m := &Milestone{ID: id} has, err := x.Get(m) if err != nil { return nil, err } else if !has { - return nil, ErrMilestoneNotExist{id, 0} - } - return m, nil -} - -// GetMilestoneByIndex returns the milestone of given repository and index. -func GetMilestoneByIndex(repoId, idx int64) (*Milestone, error) { - m := &Milestone{RepoID: repoId, Index: idx} - has, err := x.Get(m) - if err != nil { - return nil, err - } else if !has { - return nil, ErrMilestoneNotExist{0, idx} + return nil, ErrMilestoneNotExist{id} } return m, nil } @@ -736,7 +721,6 @@ func GetMilestones(repoID int64, page int, isClosed bool) ([]*Milestone, error) sess = sess.Limit(setting.IssuePagingNum, (page-1)*setting.IssuePagingNum) } return miles, sess.Find(&miles) - } func updateMilestone(e Engine, m *Milestone) error { @@ -808,7 +792,7 @@ func ChangeMilestoneIssueStats(issue *Issue) error { return nil } - m, err := GetMilestoneById(issue.MilestoneID) + m, err := GetMilestoneByID(issue.MilestoneID) if err != nil { return err } @@ -835,7 +819,7 @@ func ChangeMilestoneAssign(oldMid, mid int64, issue *Issue) (err error) { } if oldMid > 0 { - m, err := GetMilestoneById(oldMid) + m, err := GetMilestoneByID(oldMid) if err != nil { return err } @@ -863,7 +847,7 @@ func ChangeMilestoneAssign(oldMid, mid int64, issue *Issue) (err error) { } if mid > 0 { - m, err := GetMilestoneById(mid) + m, err := GetMilestoneByID(mid) if err != nil { return err } @@ -895,7 +879,7 @@ func ChangeMilestoneAssign(oldMid, mid int64, issue *Issue) (err error) { // DeleteMilestoneByID deletes a milestone by given ID. func DeleteMilestoneByID(mid int64) error { - m, err := GetMilestoneById(mid) + m, err := GetMilestoneByID(mid) if err != nil { if IsErrMilestoneNotExist(err) { return nil diff --git a/routers/repo/issue.go b/routers/repo/issue.go index 42b0e1856b..9d59d19a5f 100644 --- a/routers/repo/issue.go +++ b/routers/repo/issue.go @@ -382,7 +382,7 @@ func ViewIssue(ctx *middleware.Context) { // Get assigned milestone. if issue.MilestoneID > 0 { - ctx.Data["Milestone"], err = models.GetMilestoneById(issue.MilestoneID) + ctx.Data["Milestone"], err = models.GetMilestoneByID(issue.MilestoneID) if err != nil { if models.IsErrMilestoneNotExist(err) { log.Warn("GetMilestoneById: %v", err) @@ -1044,7 +1044,6 @@ func NewMilestonePost(ctx *middleware.Context, form auth.CreateMilestoneForm) { if err = models.NewMilestone(&models.Milestone{ RepoID: ctx.Repo.Repository.Id, - Index: int64(ctx.Repo.Repository.NumMilestones) + 1, Name: form.Title, Content: form.Content, Deadline: deadline, @@ -1063,12 +1062,12 @@ func EditMilestone(ctx *middleware.Context) { ctx.Data["PageIsEditMilestone"] = true ctx.Data["DateLang"] = setting.DateLang(ctx.Locale.Language()) - m, err := models.GetMilestoneByIndex(ctx.Repo.Repository.Id, ctx.ParamsInt64(":index")) + m, err := models.GetMilestoneByID(ctx.ParamsInt64(":id")) if err != nil { if models.IsErrMilestoneNotExist(err) { - ctx.Handle(404, "GetMilestoneByIndex", nil) + ctx.Handle(404, "GetMilestoneByID", nil) } else { - ctx.Handle(500, "GetMilestoneByIndex", err) + ctx.Handle(500, "GetMilestoneByID", err) } return } @@ -1101,12 +1100,12 @@ func EditMilestonePost(ctx *middleware.Context, form auth.CreateMilestoneForm) { return } - m, err := models.GetMilestoneByIndex(ctx.Repo.Repository.Id, ctx.ParamsInt64(":index")) + m, err := models.GetMilestoneByID(ctx.ParamsInt64(":id")) if err != nil { if models.IsErrMilestoneNotExist(err) { - ctx.Handle(404, "GetMilestoneByIndex", nil) + ctx.Handle(404, "GetMilestoneByID", nil) } else { - ctx.Handle(500, "GetMilestoneByIndex", err) + ctx.Handle(500, "GetMilestoneByID", err) } return } @@ -1123,12 +1122,12 @@ func EditMilestonePost(ctx *middleware.Context, form auth.CreateMilestoneForm) { } func ChangeMilestonStatus(ctx *middleware.Context) { - m, err := models.GetMilestoneByIndex(ctx.Repo.Repository.Id, ctx.ParamsInt64(":index")) + m, err := models.GetMilestoneByID(ctx.ParamsInt64(":id")) if err != nil { if models.IsErrMilestoneNotExist(err) { - ctx.Handle(404, "GetMilestoneByIndex", err) + ctx.Handle(404, "GetMilestoneByID", err) } else { - ctx.Handle(500, "GetMilestoneByIndex", err) + ctx.Handle(500, "GetMilestoneByID", err) } return } diff --git a/templates/repo/issue/milestones.tmpl b/templates/repo/issue/milestones.tmpl index 46ba29d88d..b9b159ea57 100644 --- a/templates/repo/issue/milestones.tmpl +++ b/templates/repo/issue/milestones.tmpl @@ -54,11 +54,11 @@ {{if $.IsRepositoryAdmin}}