summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--models/issue.go2
-rw-r--r--models/issue_indexer.go20
-rw-r--r--models/issue_milestone.go2
3 files changed, 22 insertions, 2 deletions
diff --git a/models/issue.go b/models/issue.go
index 7cea3b92a2..984e6e31cf 100644
--- a/models/issue.go
+++ b/models/issue.go
@@ -582,7 +582,7 @@ func updateIssueCols(e Engine, issue *Issue, cols ...string) error {
if _, err := e.ID(issue.ID).Cols(cols...).Update(issue); err != nil {
return err
}
- UpdateIssueIndexer(issue.ID)
+ UpdateIssueIndexerCols(issue.ID, cols...)
return nil
}
diff --git a/models/issue_indexer.go b/models/issue_indexer.go
index c50b733492..3a2ad157c3 100644
--- a/models/issue_indexer.go
+++ b/models/issue_indexer.go
@@ -102,6 +102,26 @@ func (issue *Issue) update() indexer.IssueIndexerUpdate {
}
}
+// updateNeededCols whether a change to the specified columns requires updating
+// the issue indexer
+func updateNeededCols(cols []string) bool {
+ for _, col := range cols {
+ switch col {
+ case "name", "content":
+ return true
+ }
+ }
+ return false
+}
+
+// UpdateIssueIndexerCols update an issue in the issue indexer, given changes
+// to the specified columns
+func UpdateIssueIndexerCols(issueID int64, cols ...string) {
+ if updateNeededCols(cols) {
+ UpdateIssueIndexer(issueID)
+ }
+}
+
// UpdateIssueIndexer add/update an issue to the issue indexer
func UpdateIssueIndexer(issueID int64) {
select {
diff --git a/models/issue_milestone.go b/models/issue_milestone.go
index b4ebabf57e..6ec8291233 100644
--- a/models/issue_milestone.go
+++ b/models/issue_milestone.go
@@ -282,7 +282,7 @@ func changeMilestoneAssign(e *xorm.Session, doer *User, issue *Issue, oldMilesto
}
}
- return updateIssue(e, issue)
+ return updateIssueCols(e, issue, "milestone_id")
}
// ChangeMilestoneAssign changes assignment of milestone for issue.