Index: app/helpers/issues_helper.rb =================================================================== --- app/helpers/issues_helper.rb (revision 2823) +++ app/helpers/issues_helper.rb (working copy) @@ -149,6 +149,7 @@ l(:field_due_date), l(:field_done_ratio), l(:field_estimated_hours), + l(:field_spent_hours), l(:field_created_on), l(:field_updated_on) ] @@ -175,6 +176,7 @@ format_date(issue.due_date), issue.done_ratio, issue.estimated_hours.to_s.gsub('.', decimal_separator), + issue.spent_hours, format_time(issue.created_on), format_time(issue.updated_on) ] Index: app/models/issue.rb =================================================================== --- app/models/issue.rb (revision 2823) +++ app/models/issue.rb (working copy) @@ -231,7 +231,7 @@ # spent_hours => 0 # spent_hours => 50 def spent_hours - @spent_hours ||= time_entries.sum(:hours) || 0 + @spent_hours ||= (time_entries.sum(:hours)*100).round.to_f / 100 || 0 end def relations Index: app/models/query.rb =================================================================== --- app/models/query.rb (revision 2823) +++ app/models/query.rb (working copy) @@ -111,7 +111,8 @@ QueryColumn.new(:fixed_version, :sortable => ["#{Version.table_name}.effective_date", "#{Version.table_name}.name"], :default_order => 'desc', :groupable => true), QueryColumn.new(:start_date, :sortable => "#{Issue.table_name}.start_date"), QueryColumn.new(:due_date, :sortable => "#{Issue.table_name}.due_date"), - QueryColumn.new(:estimated_hours, :sortable => "#{Issue.table_name}.estimated_hours"), + QueryColumn.new(:estimated_hours, :sortable => "#{Issue.table_name}.estimated_hours" ), + QueryColumn.new(:spent_hours, :sortable => "SUM(time_entries.hours)" ), QueryColumn.new(:done_ratio, :sortable => "#{Issue.table_name}.done_ratio", :groupable => true), QueryColumn.new(:created_on, :sortable => "#{Issue.table_name}.created_on", :default_order => 'desc'), ] Index: app/controllers/issues_controller.rb =================================================================== --- app/controllers/issues_controller.rb (revision 2823) +++ app/controllers/issues_controller.rb (working copy) @@ -62,7 +62,9 @@ :include => [ :assigned_to, :status, :tracker, :project, :priority, :category, :fixed_version ], :conditions => @query.statement, :limit => limit, - :offset => @issue_pages.current.offset + :offset => @issue_pages.current.offset, + :joins => 'LEFT OUTER JOIN time_entries ON issues.id = time_entries.issue_id', + :group => 'issues.id' respond_to do |format| format.html { if @query.grouped? Index: config/locales/en.yml =================================================================== --- config/locales/en.yml (revision 2823) +++ config/locales/en.yml (working copy) @@ -170,6 +170,7 @@ field_author: Author field_created_on: Created field_updated_on: Updated + field_spent_hours: Time Spent field_field_format: Format field_is_for_all: For all projects field_possible_values: Possible values