Defect #29701 » bugfix-29701.patch
| app/controllers/queries_controller.rb | ||
|---|---|---|
| 122 | 122 | @query.project = params[:query_is_for_all] ? nil : @project | 
| 123 | 123 | @query.build_from_params(params) | 
| 124 | 124 | @query.column_names = nil if params[:default_columns] | 
| 125 |     @query.sort_criteria = params[:query] && params[:query][:sort_criteria] | |
| 125 |     @query.sort_criteria = (params[:query] && params[:query][:sort_criteria]) || @query.sort_criteria | |
| 126 | 126 | @query.name = params[:query] && params[:query][:name] | 
| 127 | 127 | if User.current.allowed_to?(:manage_public_queries, @query.project) || User.current.admin? | 
| 128 | 128 | @query.visibility = (params[:query] && params[:query][:visibility]) || Query::VISIBILITY_PRIVATE | 
| app/models/issue_query.rb | ||
|---|---|---|
| 75 | 75 | |
| 76 | 76 |   def build_from_params(params, defaults={}) | 
| 77 | 77 | super | 
| 78 | self.draw_relations = params[:draw_relations] || (params[:query] && params[:query][:draw_relations]) | |
| 79 | self.draw_progress_line = params[:draw_progress_line] || (params[:query] && params[:query][:draw_progress_line]) | |
| 78 |     self.draw_relations = params[:draw_relations] || (params[:query] && params[:query][:draw_relations]) || options[:draw_relations] | |
| 79 |     self.draw_progress_line = params[:draw_progress_line] || (params[:query] && params[:query][:draw_progress_line]) || options[:draw_progress_line] | |
| 80 | 80 | self | 
| 81 | 81 | end | 
| 82 | 82 | |
| app/models/query.rb | ||
|---|---|---|
| 377 | 377 | end | 
| 378 | 378 | |
| 379 | 379 |     query_params = params[:query] || defaults || {} | 
| 380 | self.group_by = params[:group_by] || query_params[:group_by] | |
| 381 | self.column_names = params[:c] || query_params[:column_names] | |
| 382 | self.totalable_names = params[:t] || query_params[:totalable_names] | |
| 383 | self.sort_criteria = params[:sort] || query_params[:sort_criteria] | |
| 380 |     self.group_by = params[:group_by] || query_params[:group_by] || self.group_by | |
| 381 |     self.column_names = params[:c] || query_params[:column_names] || self.column_names | |
| 382 |     self.totalable_names = params[:t] || query_params[:totalable_names] || self.totalable_names | |
| 383 |     self.sort_criteria = params[:sort] || query_params[:sort_criteria] || self.sort_criteria | |
| 384 | 384 | self | 
| 385 | 385 | end | 
| 386 | 386 | |
| test/unit/query_test.rb | ||
|---|---|---|
| 1873 | 1873 | assert_nil IssueQuery.visible(User.find(1)).find_by_id(q.id) | 
| 1874 | 1874 | end | 
| 1875 | 1875 | |
| 1876 | def test_build_from_params_should_not_overwrite_with_unspecified_parameters | |
| 1877 | q = IssueQuery.create!(:name => 'Query', | |
| 1878 | :type => "IssueQuery", | |
| 1879 | :user => User.find(7), | |
| 1880 |                            :filters => {"status_id" => {:values => ["1"], :operator => "o"}}, | |
| 1881 | :column_names => [:tracker, :status], | |
| 1882 | :sort_criteria => ['id', 'asc'], | |
| 1883 | :group_by => "project", | |
| 1884 |                            :options => { :totalable_names=>[:estimated_hours], :draw_relations => '1', :draw_progress_line => '1' } | |
| 1885 | ) | |
| 1886 | old_attributes = q.attributes | |
| 1887 |     q.build_from_params({}) | |
| 1888 | assert_equal old_attributes, q.attributes | |
| 1889 | end | |
| 1890 | ||
| 1876 | 1891 | test "#available_filters should include users of visible projects in cross-project view" do | 
| 1877 | 1892 | users = IssueQuery.new.available_filters["assigned_to_id"] | 
| 1878 | 1893 | assert_not_nil users | 
- « Previous
- 1
- 2
- 3
- 4
- Next »