[#3306] Added the Billable column to the Timesheet plugin's CSV export.

This commit is contained in:
Eric Davis
2009-11-19 11:45:40 -08:00
parent c8fe20924d
commit 44ef5cdb0b
2 changed files with 62 additions and 0 deletions

View File

@@ -21,6 +21,20 @@ class OverheadTimesheetHook < Redmine::Hook::ViewListener
end end
end end
def plugin_timesheet_model_timesheet_csv_header(context={})
context[:csv_data] << l(:overhead_field_billable)
end
def plugin_timesheet_model_timesheet_time_entry_to_csv(context={})
if context[:time_entry]
if context[:time_entry].billable?
context[:csv_data] << l(:overhead_field_billable)
else
context[:csv_data] << l(:overhead_field_overhead)
end
end
end
# Added a new field for filtering based on "billable?" # Added a new field for filtering based on "billable?"
def plugin_timesheet_views_timesheet_form(context={}) def plugin_timesheet_views_timesheet_form(context={})
if context[:params] && if context[:params] &&

View File

@@ -50,6 +50,54 @@ describe OverheadTimesheetHook, "#plugin_timesheet_views_timesheet_time_entry" d
end end
end end
describe OverheadTimesheetHook, "#plugin_timesheet_model_timesheet_csv_header" do
def call_hook(context)
OverheadTimesheetHook.instance.plugin_timesheet_model_timesheet_csv_header(context)
end
it 'should add a Billable field' do
@csv_data = []
call_hook(:csv_data => @csv_data)
@csv_data.should have(1).item
@csv_data[0].should eql('Billable')
end
end
describe OverheadTimesheetHook, "#plugin_timesheet_model_timesheet_time_entry_to_csv" do
def call_hook(context)
OverheadTimesheetHook.instance.plugin_timesheet_model_timesheet_time_entry_to_csv(context)
end
describe 'with no time entry' do
it 'should change nothing' do
@csv_data = []
call_hook(:csv_data => @csv_data, :time_entry => nil)
@csv_data.should have(0).items
end
end
describe 'with a billable time entry' do
it 'should add "Billable" to the csv_data' do
@csv_data = []
call_hook(:csv_data => @csv_data, :time_entry => mock_model(TimeEntry, :billable? => true))
@csv_data.should have(1).item
@csv_data[0].should eql('Billable')
end
end
describe 'with a non-billable time entry' do
it 'should add "Overhead" to the csv_data' do
@csv_data = []
call_hook(:csv_data => @csv_data, :time_entry => mock_model(TimeEntry, :billable? => false))
@csv_data.should have(1).item
@csv_data[0].should eql('Overhead')
end
end
end
describe OverheadTimesheetHook, "#plugin_timesheet_views_timesheet_form", :type => :view do describe OverheadTimesheetHook, "#plugin_timesheet_views_timesheet_form", :type => :view do
include Redmine::Hook::Helper include Redmine::Hook::Helper