Fixed that CSV Export of Spent Time ignores filters and columns selection (#13618).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11696 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
4224a0c3fe
commit
25209273d3
|
@ -29,6 +29,30 @@ module QueriesHelper
|
|||
end
|
||||
end
|
||||
|
||||
def query_filters_hidden_tags(query)
|
||||
tags = ''.html_safe
|
||||
query.filters.each do |field, options|
|
||||
tags << hidden_field_tag("f[]", field, :id => nil)
|
||||
tags << hidden_field_tag("op[#{field}]", options[:operator], :id => nil)
|
||||
options[:values].each do |value|
|
||||
tags << hidden_field_tag("v[#{field}][]", value, :id => nil)
|
||||
end
|
||||
end
|
||||
tags
|
||||
end
|
||||
|
||||
def query_columns_hidden_tags(query)
|
||||
tags = ''.html_safe
|
||||
query.columns.each do |column|
|
||||
tags << hidden_field_tag("c[]", column.name, :id => nil)
|
||||
end
|
||||
tags
|
||||
end
|
||||
|
||||
def query_hidden_tags(query)
|
||||
query_filters_hidden_tags(query) + query_columns_hidden_tags(query)
|
||||
end
|
||||
|
||||
def available_block_columns_tags(query)
|
||||
tags = ''.html_safe
|
||||
query.available_block_columns.each do |column|
|
||||
|
|
|
@ -27,7 +27,8 @@
|
|||
|
||||
<div id="csv-export-options" style="display:none;">
|
||||
<h3 class="title"><%= l(:label_export_options, :export_format => 'CSV') %></h3>
|
||||
<%= form_tag(params.merge({:format => 'csv',:page=>nil}), :method => :get, :id => 'csv-export-form') do %>
|
||||
<%= form_tag(params.slice(:project_id, :issue_id).merge(:format => 'csv', :page=>nil), :method => :get, :id => 'csv-export-form') do %>
|
||||
<%= query_hidden_tags @query %>
|
||||
<p>
|
||||
<label><%= radio_button_tag 'columns', '', true %> <%= l(:description_selected_columns) %></label><br />
|
||||
<label><%= radio_button_tag 'columns', 'all' %> <%= l(:description_all_columns) %></label>
|
||||
|
|
|
@ -548,6 +548,46 @@ class TimelogControllerTest < ActionController::TestCase
|
|||
assert assigns(:items).first.is_a?(TimeEntry)
|
||||
end
|
||||
|
||||
def test_index_at_project_level_should_include_csv_export_dialog
|
||||
get :index, :project_id => 'ecookbook',
|
||||
:f => ['spent_on'],
|
||||
:op => {'spent_on' => '>='},
|
||||
:v => {'spent_on' => ['2007-04-01']},
|
||||
:c => ['spent_on', 'user']
|
||||
assert_response :success
|
||||
|
||||
assert_select '#csv-export-options' do
|
||||
assert_select 'form[action=?][method=get]', '/projects/ecookbook/time_entries.csv' do
|
||||
# filter
|
||||
assert_select 'input[name=?][value=?]', 'f[]', 'spent_on'
|
||||
assert_select 'input[name=?][value=?]', 'op[spent_on]', '>='
|
||||
assert_select 'input[name=?][value=?]', 'v[spent_on][]', '2007-04-01'
|
||||
# columns
|
||||
assert_select 'input[name=?][value=?]', 'c[]', 'spent_on'
|
||||
assert_select 'input[name=?][value=?]', 'c[]', 'user'
|
||||
assert_select 'input[name=?]', 'c[]', 2
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def test_index_cross_project_should_include_csv_export_dialog
|
||||
get :index
|
||||
assert_response :success
|
||||
|
||||
assert_select '#csv-export-options' do
|
||||
assert_select 'form[action=?][method=get]', '/time_entries.csv'
|
||||
end
|
||||
end
|
||||
|
||||
def test_index_at_issue_level_should_include_csv_export_dialog
|
||||
get :index, :project_id => 'ecookbook', :issue_id => 3
|
||||
assert_response :success
|
||||
|
||||
assert_select '#csv-export-options' do
|
||||
assert_select 'form[action=?][method=get]', '/projects/ecookbook/issues/3/time_entries.csv'
|
||||
end
|
||||
end
|
||||
|
||||
def test_index_csv_all_projects
|
||||
Setting.date_format = '%m/%d/%Y'
|
||||
get :index, :format => 'csv'
|
||||
|
|
Loading…
Reference in New Issue