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 | ... | ... |