|
@@ -161,6 +161,13 @@ func GetIssueCountByPoster(uid, rid int64, isClosed bool) int64 {
|
|
|
return count
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
type IssueUser struct {
|
|
|
Id int64
|
|
@@ -404,6 +411,13 @@ type Label struct {
|
|
|
NumOpenIssues int `xorm:"-"`
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
type Milestone struct {
|
|
|
Id int64
|
|
@@ -517,7 +531,7 @@ func ChangeMilestoneStatus(m *Milestone, isClosed bool) (err error) {
|
|
|
}
|
|
|
|
|
|
|
|
|
-func ChangeMilestoneAssign(oldMid, mid int64, isIssueClosed bool) (err error) {
|
|
|
+func ChangeMilestoneAssign(oldMid, mid int64, issue *Issue) (err error) {
|
|
|
sess := orm.NewSession()
|
|
|
defer sess.Close()
|
|
|
if err = sess.Begin(); err != nil {
|
|
@@ -531,7 +545,7 @@ func ChangeMilestoneAssign(oldMid, mid int64, isIssueClosed bool) (err error) {
|
|
|
}
|
|
|
|
|
|
m.NumIssues--
|
|
|
- if isIssueClosed {
|
|
|
+ if issue.IsClosed {
|
|
|
m.NumClosedIssues--
|
|
|
}
|
|
|
if m.NumIssues > 0 {
|
|
@@ -543,6 +557,12 @@ func ChangeMilestoneAssign(oldMid, mid int64, isIssueClosed bool) (err error) {
|
|
|
sess.Rollback()
|
|
|
return err
|
|
|
}
|
|
|
+
|
|
|
+ rawSql := "UPDATE `issue_user` SET milestone_id = 0 WHERE issue_id = ?"
|
|
|
+ if _, err = sess.Exec(rawSql, issue.Id); err != nil {
|
|
|
+ sess.Rollback()
|
|
|
+ return err
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if mid > 0 {
|
|
@@ -551,7 +571,7 @@ func ChangeMilestoneAssign(oldMid, mid int64, isIssueClosed bool) (err error) {
|
|
|
return err
|
|
|
}
|
|
|
m.NumIssues++
|
|
|
- if isIssueClosed {
|
|
|
+ if issue.IsClosed {
|
|
|
m.NumClosedIssues++
|
|
|
}
|
|
|
m.Completeness = m.NumClosedIssues * 100 / m.NumIssues
|
|
@@ -559,6 +579,12 @@ func ChangeMilestoneAssign(oldMid, mid int64, isIssueClosed bool) (err error) {
|
|
|
sess.Rollback()
|
|
|
return err
|
|
|
}
|
|
|
+
|
|
|
+ rawSql := "UPDATE `issue_user` SET milestone_id = ? WHERE issue_id = ?"
|
|
|
+ if _, err = sess.Exec(rawSql, m.Id, issue.Id); err != nil {
|
|
|
+ sess.Rollback()
|
|
|
+ return err
|
|
|
+ }
|
|
|
}
|
|
|
return sess.Commit()
|
|
|
}
|
|
@@ -587,9 +613,22 @@ func DeleteMilestone(m *Milestone) (err error) {
|
|
|
sess.Rollback()
|
|
|
return err
|
|
|
}
|
|
|
+
|
|
|
+ rawSql = "UPDATE `issue_user` SET milestone_id = 0 WHERE milestone_id = ?"
|
|
|
+ if _, err = sess.Exec(rawSql, m.Id); err != nil {
|
|
|
+ sess.Rollback()
|
|
|
+ return err
|
|
|
+ }
|
|
|
return sess.Commit()
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
const (
|
|
|
IT_PLAIN = iota
|