[#3306] Added the Billable column to the Timesheet plugin's CSV export.
This commit is contained in:
@@ -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] &&
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user