summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorValery Sizov <valery@gitlab.com>2017-05-29 12:20:41 +0300
committerValery Sizov <valery@gitlab.com>2017-05-29 12:24:30 +0300
commitc3bca2ac743bfb76415ba8cf5d23cbd0c4245b9f (patch)
treef5c96f6722282ebb5d7f0d01016fb9be69ea11df
parente5226177ac667c8ad4cc07270bbdef24031eb8a2 (diff)
downloadgitlab-ce-fix_duplicated_assignees_on_milestone_page.tar.gz
Fix: Milestone - Participants list is showing duplicate assigneesfix_duplicated_assignees_on_milestone_page
-rw-r--r--app/models/milestone.rb2
-rw-r--r--spec/models/milestone_spec.rb13
2 files changed, 14 insertions, 1 deletions
diff --git a/app/models/milestone.rb b/app/models/milestone.rb
index c06bfe0ccdd..b04bed4c014 100644
--- a/app/models/milestone.rb
+++ b/app/models/milestone.rb
@@ -107,7 +107,7 @@ class Milestone < ActiveRecord::Base
end
def participants
- User.joins(assigned_issues: :milestone).where("milestones.id = ?", id)
+ User.joins(assigned_issues: :milestone).where("milestones.id = ?", id).uniq
end
def self.sort(method)
diff --git a/spec/models/milestone_spec.rb b/spec/models/milestone_spec.rb
index e3e8e6d571c..aa1ce89ffd7 100644
--- a/spec/models/milestone_spec.rb
+++ b/spec/models/milestone_spec.rb
@@ -249,4 +249,17 @@ describe Milestone, models: true do
expect(milestone.to_reference(another_project)).to eq "sample-project%1"
end
end
+
+ describe '#participants' do
+ let(:project) { build(:empty_project, name: 'sample-project') }
+ let(:milestone) { build(:milestone, iid: 1, project: project) }
+
+ it 'returns participants without duplicates' do
+ user = create :user
+ create :issue, project: project, milestone: milestone, assignees: [user]
+ create :issue, project: project, milestone: milestone, assignees: [user]
+
+ expect(milestone.participants).to eq [user]
+ end
+ end
end