diff options
author | Zeger-Jan van de Weg <zegerjan@gitlab.com> | 2016-02-22 09:20:04 +0100 |
---|---|---|
committer | Zeger-Jan van de Weg <zegerjan@gitlab.com> | 2016-03-15 20:21:11 +0100 |
commit | 2b97c921196a7be904bfe4f0a31347c3583c9e88 (patch) | |
tree | e650acbaa92c45882f0a4681e67b5e07d5cf7d46 /app/models/issue.rb | |
parent | e831a3b869cbb82e9a4294a5f9309ba56df46589 (diff) | |
download | gitlab-ce-2b97c921196a7be904bfe4f0a31347c3583c9e88.tar.gz |
Incorporate review
Diffstat (limited to 'app/models/issue.rb')
-rw-r--r-- | app/models/issue.rb | 19 |
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 |