| 229 | 229 |  | 
  | 230 | 230 |   def column_content(column, item) | 
  | 231 | 231 |     value = column.value_object(item) | 
  | 232 |  |     if value.is_a?(Array) | 
  | 233 |  |       values = value.collect {|v| column_value(column, item, v)}.compact | 
  | 234 |  |       safe_join(values, ', ') | 
  | 235 |  |     else | 
  | 236 |  |       column_value(column, item, value) | 
  | 237 |  |     end | 
  |  | 232 |     content = if value.is_a?(Array) | 
  |  | 233 |                 values = value.collect {|v| column_value(column, item, v)}.compact | 
  |  | 234 |                 safe_join(values, ', ') | 
  |  | 235 |               else | 
  |  | 236 |                 column_value(column, item, value) | 
  |  | 237 |               end | 
  |  | 238 |  | 
  |  | 239 |     call_hook(:helper_queries_column_content, | 
  |  | 240 |               {:content => content, :column => column, :item => item}) | 
  |  | 241 |  | 
  |  | 242 |     content | 
  | 238 | 243 |   end | 
  | 239 | 244 |  | 
  | 240 | 245 |   def column_value(column, item, value) | 
  | 241 |  |     case column.name | 
  | 242 |  |     when :id | 
  | 243 |  |       link_to value, issue_path(item) | 
  | 244 |  |     when :subject | 
  | 245 |  |       link_to value, issue_path(item) | 
  | 246 |  |     when :parent | 
  | 247 |  |       value ? (value.visible? ? link_to_issue(value, :subject => false) : "##{value.id}") : '' | 
  | 248 |  |     when :description | 
  | 249 |  |       item.description? ? content_tag('div', textilizable(item, :description), :class => "wiki") : '' | 
  | 250 |  |     when :last_notes | 
  | 251 |  |       item.last_notes.present? ? content_tag('div', textilizable(item, :last_notes), :class => "wiki") : '' | 
  | 252 |  |     when :done_ratio | 
  | 253 |  |       progress_bar(value) | 
  | 254 |  |     when :relations | 
  | 255 |  |       content_tag( | 
  | 256 |  |         'span', | 
  | 257 |  |         value.to_s(item) {|other| link_to_issue(other, :subject => false, :tracker => false)}.html_safe, | 
  | 258 |  |         :class => value.css_classes_for(item)) | 
  | 259 |  |     when :hours, :estimated_hours, :total_estimated_hours | 
  | 260 |  |       format_hours(value) | 
  | 261 |  |     when :spent_hours | 
  | 262 |  |       link_to_if(value > 0, format_hours(value), project_time_entries_path(item.project, :issue_id => "#{item.id}")) | 
  | 263 |  |     when :total_spent_hours | 
  | 264 |  |       link_to_if(value > 0, format_hours(value), project_time_entries_path(item.project, :issue_id => "~#{item.id}")) | 
  | 265 |  |     when :attachments | 
  | 266 |  |       value.to_a.map {|a| format_object(a)}.join(" ").html_safe | 
  | 267 |  |     else | 
  | 268 |  |       format_object(value) | 
  | 269 |  |     end | 
  |  | 246 |     content = case column.name | 
  |  | 247 |               when :id | 
  |  | 248 |                 link_to value, issue_path(item) | 
  |  | 249 |               when :subject | 
  |  | 250 |                 link_to value, issue_path(item) | 
  |  | 251 |               when :parent | 
  |  | 252 |                 value ? (value.visible? ? link_to_issue(value, :subject => false) : "##{value.id}") : '' | 
  |  | 253 |               when :description | 
  |  | 254 |                 item.description? ? content_tag('div', textilizable(item, :description), :class => "wiki") : '' | 
  |  | 255 |               when :last_notes | 
  |  | 256 |                 item.last_notes.present? ? content_tag('div', textilizable(item, :last_notes), :class => "wiki") : '' | 
  |  | 257 |               when :done_ratio | 
  |  | 258 |                 progress_bar(value) | 
  |  | 259 |               when :relations | 
  |  | 260 |                 content_tag( | 
  |  | 261 |                   'span', | 
  |  | 262 |                   value.to_s(item) {|other| link_to_issue(other, :subject => false, :tracker => false)}.html_safe, | 
  |  | 263 |                   :class => value.css_classes_for(item)) | 
  |  | 264 |               when :hours, :estimated_hours, :total_estimated_hours | 
  |  | 265 |                 format_hours(value) | 
  |  | 266 |               when :spent_hours | 
  |  | 267 |                 link_to_if(value > 0, format_hours(value), project_time_entries_path(item.project, :issue_id => "#{item.id}")) | 
  |  | 268 |               when :total_spent_hours | 
  |  | 269 |                 link_to_if(value > 0, format_hours(value), project_time_entries_path(item.project, :issue_id => "~#{item.id}")) | 
  |  | 270 |               when :attachments | 
  |  | 271 |                 value.to_a.map {|a| format_object(a)}.join(" ").html_safe | 
  |  | 272 |               else | 
  |  | 273 |                 format_object(value) | 
  |  | 274 |               end | 
  |  | 275 |  | 
  |  | 276 |     call_hook(:helper_queries_column_value, | 
  |  | 277 |               {:content => content, :column => column, :item => item, :value => value}) | 
  |  | 278 |  | 
  |  | 279 |     content | 
  | 270 | 280 |   end | 
  | 271 | 281 |  | 
  | 272 | 282 |   def csv_content(column, item) |