diff options
author | James Lopez <james@jameslopez.es> | 2016-04-19 12:56:58 +0200 |
---|---|---|
committer | James Lopez <james@jameslopez.es> | 2016-04-19 12:56:58 +0200 |
commit | 6fdde5fabd9defed06a3308da7788c9a7f4632cf (patch) | |
tree | 398ea7d1d19b4bf0ce5f3e6bc2eca252547b3a70 /app/models/concerns/issuable.rb | |
parent | 2234ac520b2bf35ae900641446fecceaeaff2ebb (diff) | |
download | gitlab-ce-6fdde5fabd9defed06a3308da7788c9a7f4632cf.tar.gz |
filter labels by including all filter titles as part of the query
Diffstat (limited to 'app/models/concerns/issuable.rb')
-rw-r--r-- | app/models/concerns/issuable.rb | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/app/models/concerns/issuable.rb b/app/models/concerns/issuable.rb index afa2ca039ae..e2a2899941f 100644 --- a/app/models/concerns/issuable.rb +++ b/app/models/concerns/issuable.rb @@ -37,7 +37,7 @@ module Issuable scope :closed, -> { with_state(:closed) } scope :order_milestone_due_desc, -> { joins(:milestone).reorder('milestones.due_date DESC, milestones.id DESC') } scope :order_milestone_due_asc, -> { joins(:milestone).reorder('milestones.due_date ASC, milestones.id ASC') } - scope :with_label, ->(title) { joins(:labels).where(labels: { title: title }) } + scope :with_label, ->(title) { joins(:labels).where(labels: { title: title }).group('issues.id').having("count(distinct labels.title) = #{title.count}") } scope :without_label, -> { joins("LEFT OUTER JOIN label_links ON label_links.target_type = '#{name}' AND label_links.target_id = #{table_name}.id").where(label_links: { id: nil }) } scope :join_project, -> { joins(:project) } |