osem-fcy/app/views/admin/events/_all_with_comments.xlsx.axlsx
2018-04-04 10:28:10 -07:00

44 lines
1.5 KiB
Text

# frozen_string_literal: true
wb.use_shared_strings = true
wb.add_worksheet(name: 'events with comments') do |sheet|
bold_style = wb.styles.add_style(b: true)
cell_style = wb.styles.add_style(alignment: { wrap_text: true, vertical: :top })
row = ['Event ID',
'Title',
'Abstract',
'Start time',
'Submitter',
'Speaker',
'Speaker Email',
'Event Type',
'Track',
'Difficulty Level',
'Room',
'State',
'Comments']
sheet.add_row row, style: bold_style
@events.each do |event|
all_comments = ''
event.root_comments.each do |comment|
all_comments << "#{comment.created_at.strftime('%Y-%m-%d')} #{comment.created_at.strftime('%I:%M%p')} #{comment.user.name}: #{comment.body}\n"
end
row = []
row << event.id
row << event.title
row << event.abstract
row << (event.time.present? ? "#{event.time.strftime('%Y-%m-%d')} #{event.time.strftime('%I:%M%p')} " : '')
row << event.submitter.name
row << event.speaker_names
row << event.speaker_emails
row << event.event_type.title
row << (event.track.present? ? event.track.name : '')
row << (event.difficulty_level.present? ? event.difficulty_level.title : '')
row << (event.room.present? ? event.room.name : '')
row << event.state
row << all_comments.strip
sheet.add_row row, style: cell_style
sheet.column_widths 10, 15, 35, 13, 18, 18, 28, 12, 15, 15, 15, 10
end
end