Commit 5a90d044f7fddf28b4dc3cd541315bce862f2866
1 parent
b1ea0b3c
Exists in
master
and in
4 other branches
Allow filtering by issues with no assigned... assignee
Continues #1222
Showing
4 changed files
with
28 additions
and
2 deletions
Show diff stats
app/controllers/issues_controller.rb
... | ... | @@ -144,14 +144,19 @@ class IssuesController < ApplicationController |
144 | 144 | else @project.issues.opened |
145 | 145 | end |
146 | 146 | |
147 | - @issues = @issues.where(assignee_id: params[:assignee_id]) if params[:assignee_id].present? | |
148 | 147 | @issues = @issues.tagged_with(params[:label_name]) if params[:label_name].present? |
149 | 148 | @issues = @issues.includes(:author, :project).order("updated_at") |
150 | 149 | |
150 | + # Filter by specific assignee_id (or lack thereof)? | |
151 | + if params[:assignee_id].present? | |
152 | + @issues = @issues.where(assignee_id: (params[:assignee_id] == '0' ? nil : params[:assignee_id])) | |
153 | + end | |
154 | + | |
151 | 155 | # Filter by specific milestone_id (or lack thereof)? |
152 | 156 | if params[:milestone_id].present? |
153 | 157 | @issues = @issues.where(milestone_id: (params[:milestone_id] == '0' ? nil : params[:milestone_id])) |
154 | 158 | end |
159 | + | |
155 | 160 | @issues |
156 | 161 | end |
157 | 162 | ... | ... |
app/helpers/issues_helper.rb
app/views/issues/index.html.haml
... | ... | @@ -49,7 +49,7 @@ |
49 | 49 | .right |
50 | 50 | = form_tag project_issues_path(@project), method: :get, class: :right do |
51 | 51 | = select_tag(:label_name, options_for_select(issue_tags, params[:label_name]), prompt: "Labels") |
52 | - = select_tag(:assignee_id, options_from_collection_for_select(@project.users.all, "id", "name", params[:assignee_id]), prompt: "Assignee") | |
52 | + = select_tag(:assignee_id, options_from_collection_for_select([unassigned_issue] + @project.users.all, "id", "name", params[:assignee_id]), prompt: "Assignee") | |
53 | 53 | = select_tag(:milestone_id, options_from_collection_for_select([unassigned_milestone] + @project.milestones.order("id desc").all, "id", "title", params[:milestone_id]), prompt: "Milestone") |
54 | 54 | = hidden_field_tag :f, params[:f] |
55 | 55 | .clearfix | ... | ... |
spec/requests/issues_spec.rb
... | ... | @@ -102,6 +102,7 @@ describe "Issues" do |
102 | 102 | |
103 | 103 | @issue = Issue.first |
104 | 104 | @issue.milestone = Factory(:milestone, project: project) |
105 | + @issue.assignee = nil | |
105 | 106 | @issue.save |
106 | 107 | end |
107 | 108 | |
... | ... | @@ -120,5 +121,21 @@ describe "Issues" do |
120 | 121 | page.should_not have_content 'barbaz' |
121 | 122 | page.should_not have_content 'gitlab' |
122 | 123 | end |
124 | + | |
125 | + it "should allow filtering by issues with no specified assignee" do | |
126 | + visit project_issues_path(project, assignee_id: '0') | |
127 | + | |
128 | + page.should have_content 'foobar' | |
129 | + page.should_not have_content 'barbaz' | |
130 | + page.should_not have_content 'gitlab' | |
131 | + end | |
132 | + | |
133 | + it "should allow filtering by a specified assignee" do | |
134 | + visit project_issues_path(project, assignee_id: @user.id) | |
135 | + | |
136 | + page.should_not have_content 'foobar' | |
137 | + page.should have_content 'barbaz' | |
138 | + page.should have_content 'gitlab' | |
139 | + end | |
123 | 140 | end |
124 | 141 | end | ... | ... |