summaryrefslogtreecommitdiff
path: root/app/models/issue.rb
diff options
context:
space:
mode:
authorZeger-Jan van de Weg <zegerjan@gitlab.com>2016-02-22 09:20:04 +0100
committerZeger-Jan van de Weg <zegerjan@gitlab.com>2016-03-15 20:21:11 +0100
commit2b97c921196a7be904bfe4f0a31347c3583c9e88 (patch)
treee650acbaa92c45882f0a4681e67b5e07d5cf7d46 /app/models/issue.rb
parente831a3b869cbb82e9a4294a5f9309ba56df46589 (diff)
downloadgitlab-ce-2b97c921196a7be904bfe4f0a31347c3583c9e88.tar.gz
Incorporate review
Diffstat (limited to 'app/models/issue.rb')
-rw-r--r--app/models/issue.rb19
1 files changed, 12 insertions, 7 deletions
diff --git a/app/models/issue.rb b/app/models/issue.rb
index 3b6bff6c577..ec275d5f5b5 100644
--- a/app/models/issue.rb
+++ b/app/models/issue.rb
@@ -87,11 +87,16 @@ class Issue < ActiveRecord::Base
end
def referenced_merge_requests(current_user = nil)
- Gitlab::ReferenceExtractor.lazily do
- [self, *notes].flat_map do |note|
- note.all_references(current_user).merge_requests
- end
- end.sort_by(&:iid)
+ if defined?(@referenced_merge_requests)
+ @referenced_merge_requests[current_user] ||= Gitlab::ReferenceExtractor.lazily do
+ [self, *notes].flat_map do |note|
+ note.all_references(current_user).merge_requests
+ end
+ end.sort_by(&:iid).uniq
+ else
+ @referenced_merge_requests = {}
+ referenced_merge_requests(current_user)
+ end
end
def related_branches
@@ -132,7 +137,7 @@ class Issue < ActiveRecord::Base
def can_be_worked_on?(current_user)
!self.closed? &&
!self.project.forked? &&
- referenced_merge_requests(current_user).none? { |mr| mr.closes_issue?(self) } &&
- related_branches.empty?
+ self.related_branches.empty? &&
+ self.referenced_merge_requests(current_user).empty?
end
end