Speaker emails in Events CSV/XLS export is included

This commit is contained in:
Your Name 2017-10-12 23:51:58 +05:30 committed by Naman Gupta
parent e99287d18a
commit 7c0fa59a0a
7 changed files with 85 additions and 13 deletions

View file

@ -211,6 +211,15 @@ class Event < ActiveRecord::Base
result.to_a.to_sentence
end
# Returns emails of all the speaker belongs to a particular event
def speaker_emails
result = Array.new
speakers.each do |speaker|
result << speaker.email
end
result.to_sentence
end
##
#
# Returns +Hash+

View file

@ -4,6 +4,7 @@
'Start time',
'Submitter',
'Speaker',
'Speaker Email',
'Event Type',
'Track',
'Difficulty Level',
@ -12,8 +13,15 @@
= CSV.generate_line ['All Events']
= CSV.generate_line headers
- @events.each do |event|
= CSV.generate_line([event.id, event.title, event.abstract, (event.time.present? ? "#{event.time.strftime("%Y-%m-%d")} #{event.time.strftime("%I:%M%p")} " : ''),
event.submitter.name, event.speaker_names, event.event_type.title,
= CSV.generate_line([event.id,
event.title,
event.abstract,
(event.time.present? ? "#{event.time.strftime("%Y-%m-%d")}#{event.time.strftime("%I:%M%p")} " : ''),
event.submitter.name,
event.speaker_names,
event.speaker_emails,
event.event_type.title,
(event.track.present? ? event.track.name : ''),
(event.difficulty_level.present? ? event.difficulty_level.title : ''),
(event.room.present? ? event.room.name : ''), event.state]).html_safe
(event.room.present? ? event.room.name : ''),
event.state]).html_safe

View file

@ -1,6 +1,17 @@
wb.add_worksheet(name: 'all events') do |sheet|
bold_style = wb.styles.add_style(b: true)
row = ['Event ID', 'Title', 'Abstract', 'Start time', 'Submitter', 'Speaker', 'Event Type', 'Track', 'Difficulty Level', 'Room', 'State']
row = ['Event ID',
'Title',
'Abstract',
'Start time',
'Submitter',
'Speaker',
'Speaker Email',
'Event Type',
'Track',
'Difficulty Level',
'Room',
'State']
sheet.add_row row, style: bold_style
@events.each do |event|
@ -11,6 +22,7 @@ wb.add_worksheet(name: 'all events') do |sheet|
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 : '')

View file

@ -4,6 +4,7 @@
'Start time',
'Submitter',
'Speaker',
'Speaker Email',
'Event Type',
'Track',
'Difficulty Level',
@ -16,8 +17,17 @@
- 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"
= CSV.generate_line([event.id, event.title, event.abstract, (event.time.present? ? "#{event.time.strftime("%Y-%m-%d")} #{event.time.strftime("%I:%M%p")} " : ''),
event.submitter.name, event.speaker_names, event.event_type.title,
= CSV.generate_line([event.id,
event.title,
event.abstract,
(event.time.present? ? "#{event.time.strftime("%Y-%m-%d")}#{event.time.strftime("%I:%M%p")} " : ''),
event.submitter.name,
event.speaker_names,
event.speaker_emails,
event.event_type.title,
(event.track.present? ? event.track.name : ''),
(event.difficulty_level.present? ? event.difficulty_level.title : ''),
(event.room.present? ? event.room.name : ''), event.state, all_comments]).html_safe
(event.room.present? ? event.room.name : ''),
event.state,
all_comments]).html_safe

View file

@ -1,8 +1,20 @@
wb.use_shared_strings = true
wb.add_worksheet(name: 'events with comments') do |sheet|
bold_style = wb.styles.add_style(b: true )
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', 'Event Type', 'Track', 'Difficulty Level', 'Room', 'State', 'Comments']
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|
@ -17,6 +29,7 @@ row = ['Event ID', 'Title', 'Abstract', 'Start time', 'Submitter', 'Speaker', 'E
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 : '')

View file

@ -4,6 +4,7 @@
'Start time',
'Submitter',
'Speaker',
'Speaker Email',
'Event Type',
'Track',
'Difficulty Level',
@ -12,8 +13,15 @@
= CSV.generate_line ["Confirmed Events"]
= CSV.generate_line headers
- @events.confirmed.each do |event|
= CSV.generate_line([event.id, event.title, event.abstract, (event.time.present? ? "#{event.time.strftime("%Y-%m-%d")} #{event.time.strftime("%I:%M%p")} " : ''),
event.submitter.name, event.speaker_names, event.event_type.title,
= CSV.generate_line([event.id,
event.title,
event.abstract,
(event.time.present? ? "#{event.time.strftime("%Y-%m-%d")} #{event.time.strftime("%I:%M%p")} " : ''),
event.submitter.name,
event.speaker_names,
event.speaker_emails,
event.event_type.title,
(event.track.present? ? event.track.name : ''),
(event.difficulty_level.present? ? event.difficulty_level.title : ''),
(event.room.present? ? event.room.name : ''), event.state]).html_safe
(event.room.present? ? event.room.name : ''),
event.state]).html_safe

View file

@ -1,6 +1,17 @@
wb.add_worksheet(name: 'confirmed events') do |sheet|
bold_style = wb.styles.add_style(b: true)
row = ['Event ID', 'Title', 'Abstract', 'Start time', 'Submitter', 'Speaker', 'Event Type', 'Track', 'Difficulty Level', 'Room', 'State']
row = ['Event ID',
'Title',
'Abstract',
'Start time',
'Submitter',
'Speaker',
'Speaker Email',
'Event Type',
'Track',
'Difficulty Level',
'Room',
'State']
sheet.add_row row, style: bold_style
@events.confirmed.each do |event|
@ -11,6 +22,7 @@ wb.add_worksheet(name: 'confirmed events') do |sheet|
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 : '')