added events, confirmed events and events with comments export features with xlsx, pdf and csv format
This commit is contained in:
parent
3da3fcccbb
commit
68d447f023
14 changed files with 245 additions and 67 deletions
|
|
@ -23,18 +23,22 @@ module Admin
|
||||||
@tracks_distribution_confirmed = @conference.tracks_distribution(:confirmed)
|
@tracks_distribution_confirmed = @conference.tracks_distribution(:confirmed)
|
||||||
@event_distribution = @conference.event_distribution
|
@event_distribution = @conference.event_distribution
|
||||||
@scheduled_event_distribution = @conference.scheduled_event_distribution
|
@scheduled_event_distribution = @conference.scheduled_event_distribution
|
||||||
@pdf_filename = "events_for_#{@conference.short_title}.pdf"
|
|
||||||
@file_name = "events_for_#{@conference.short_title}"
|
@file_name = "events_for_#{@conference.short_title}"
|
||||||
@csv_filename = "events_for_#{@conference.short_title}.csv"
|
@event_export_option = params[:event_export_option]
|
||||||
|
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.html
|
format.html
|
||||||
# Explicity call #to_json to avoid the use of EventSerializer
|
# Explicity call #to_json to avoid the use of EventSerializer
|
||||||
format.json { render json: Event.where(state: :confirmed, program: @program).to_json }
|
format.json { render json: Event.where(state: :confirmed, program: @program).to_json }
|
||||||
format.xlsx { render xlsx: 'index', filename: "#{@file_name}.xlsx" }
|
format.xlsx do
|
||||||
format.pdf
|
response.headers['Content-Disposition'] = "attachment; filename=\"#{@file_name}.xlsx\""
|
||||||
format.csv
|
render 'events'
|
||||||
# format.csv { send_data @events, filename:"#{@file_name}.csv" }
|
end
|
||||||
|
format.pdf {render 'events'}
|
||||||
|
format.csv do
|
||||||
|
response.headers['Content-Disposition'] = "attachment; filename=\"#{@file_name}.csv\""
|
||||||
|
render 'events'
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,17 +9,11 @@
|
||||||
'Difficulty Level',
|
'Difficulty Level',
|
||||||
'Room',
|
'Room',
|
||||||
'State']
|
'State']
|
||||||
|
= CSV.generate_line ["All Events"]
|
||||||
= CSV.generate_line headers
|
= CSV.generate_line headers
|
||||||
- @events.each do |event|
|
- @events.each do |event|
|
||||||
= CSV.generate_line([event.id, event.title, event.abstract, event.time,
|
= 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,
|
event.submitter.name, event.speaker_names, event.event_type.title,
|
||||||
(event.track.present? ? event.track.name : 'nil'),
|
(event.track.present? ? event.track.name : ''),
|
||||||
(event.difficulty_level.present? ? event.difficulty_level.title : 'nil'),
|
(event.difficulty_level.present? ? event.difficulty_level.title : ''),
|
||||||
(event.room.present? ? event.room.name : 'nil'), event.state])
|
(event.room.present? ? event.room.name : ''), event.state]).html_safe
|
||||||
|
|
||||||
= CSV.generate_line [nil]
|
|
||||||
- headers = ['Comment ID', 'Event Title', 'Body', 'User Name']
|
|
||||||
= CSV.generate_line headers
|
|
||||||
- @events.each do |event|
|
|
||||||
- event.root_comments.each do |comment|
|
|
||||||
= CSV.generate_line([comment.id, event.title, comment.body, comment.user.name])
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
prawn_document(force_download: true, filename: @pdf_filename, page_layout: :landscape) do |pdf|
|
prawn_document(force_download: true, filename: "#{@file_name}.pdf", page_layout: :landscape) do |pdf|
|
||||||
events_array = []
|
events_array = []
|
||||||
c_array = []
|
|
||||||
header_array = ['Event ID',
|
header_array = ['Event ID',
|
||||||
'Title',
|
'Title',
|
||||||
'Abstract',
|
'Abstract',
|
||||||
|
|
@ -19,7 +18,7 @@ prawn_document(force_download: true, filename: @pdf_filename, page_layout: :land
|
||||||
row << event.id
|
row << event.id
|
||||||
row << event.title
|
row << event.title
|
||||||
row << event.abstract
|
row << event.abstract
|
||||||
row << event.time.to_s
|
row << (event.time.present? ? "#{event.time.strftime("%Y-%m-%d")} #{event.time.strftime("%I:%M%p")} " : '')
|
||||||
row << event.submitter.name
|
row << event.submitter.name
|
||||||
row << event.speaker_names
|
row << event.speaker_names
|
||||||
row << event.event_type.title
|
row << event.event_type.title
|
||||||
|
|
@ -30,26 +29,6 @@ prawn_document(force_download: true, filename: @pdf_filename, page_layout: :land
|
||||||
events_array << row
|
events_array << row
|
||||||
end
|
end
|
||||||
|
|
||||||
comments_array = []
|
pdf.text "#{@conference.short_title} Events", font_size: 25, align: :center
|
||||||
header_array = ['Comment ID',
|
pdf.table events_array, header: true, cell_style: {size: 8, border_width: 1}
|
||||||
'Event Title',
|
|
||||||
'Body',
|
|
||||||
'User name']
|
|
||||||
comments_array << header_array
|
|
||||||
@events.each do |event|
|
|
||||||
event.root_comments.each do |comment|
|
|
||||||
row = []
|
|
||||||
row << comment.id
|
|
||||||
row << event.title
|
|
||||||
row << comment.body
|
|
||||||
row << comment.user.name
|
|
||||||
comments_array << row
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
pdf.text "#{@conference.short_title} Events", font_size: 25
|
|
||||||
pdf.table events_array, header: true, cell_style: {size: 5, border_width: 1}
|
|
||||||
pdf.move_down 10
|
|
||||||
pdf.text "#{@conference.short_title} Comments", font_size: 25
|
|
||||||
pdf.table comments_array, header: true, cell_style: {size: 5, border_width: 1}
|
|
||||||
end
|
end
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
wb = xlsx_package.workbook
|
wb.add_worksheet(name: 'all events') do |sheet|
|
||||||
wb.add_worksheet(name: 'events') do |sheet|
|
|
||||||
bold_style = wb.styles.add_style(b: true)
|
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', 'Event Type', 'Track', 'Difficulty Level', 'Room', 'State']
|
||||||
|
|
||||||
sheet.add_row row, style: bold_style
|
sheet.add_row row, style: bold_style
|
||||||
|
|
||||||
@events.each do |event|
|
@events.each do |event|
|
||||||
|
|
@ -10,7 +8,7 @@ wb.add_worksheet(name: 'events') do |sheet|
|
||||||
row << event.id
|
row << event.id
|
||||||
row << event.title
|
row << event.title
|
||||||
row << event.abstract
|
row << event.abstract
|
||||||
row << event.time
|
row << (event.time.present? ? "#{event.time.strftime("%Y-%m-%d")} #{event.time.strftime("%I:%M%p")} " : '')
|
||||||
row << event.submitter.name
|
row << event.submitter.name
|
||||||
row << event.speaker_names
|
row << event.speaker_names
|
||||||
row << event.event_type.title
|
row << event.event_type.title
|
||||||
|
|
@ -21,21 +19,3 @@ wb.add_worksheet(name: 'events') do |sheet|
|
||||||
sheet.add_row row
|
sheet.add_row row
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
wb.add_worksheet(name: 'comments') do |sheet|
|
|
||||||
bold_style = wb.styles.add_style(b: true)
|
|
||||||
row = ['Comment ID', 'Event Title', 'Body', 'User Name']
|
|
||||||
|
|
||||||
sheet.add_row row, style: bold_style
|
|
||||||
|
|
||||||
@events.each do |event|
|
|
||||||
event.root_comments.each do |comment|
|
|
||||||
row = []
|
|
||||||
row << comment.id
|
|
||||||
row << event.title
|
|
||||||
row << comment.body
|
|
||||||
row << comment.user.name
|
|
||||||
sheet.add_row row
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
23
app/views/admin/events/_all_with_comments.csv.haml
Normal file
23
app/views/admin/events/_all_with_comments.csv.haml
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
- headers = ['Event ID',
|
||||||
|
'Title',
|
||||||
|
'Abstract',
|
||||||
|
'Start time',
|
||||||
|
'Submitter',
|
||||||
|
'Speaker',
|
||||||
|
'Event Type',
|
||||||
|
'Track',
|
||||||
|
'Difficulty Level',
|
||||||
|
'Room',
|
||||||
|
'State',
|
||||||
|
'Comments']
|
||||||
|
= CSV.generate_line ["Events with Comments"]
|
||||||
|
= CSV.generate_line headers
|
||||||
|
- @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"
|
||||||
|
= 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,
|
||||||
|
(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
|
||||||
53
app/views/admin/events/_all_with_comments.pdf.prawn
Normal file
53
app/views/admin/events/_all_with_comments.pdf.prawn
Normal file
|
|
@ -0,0 +1,53 @@
|
||||||
|
prawn_document(force_download: true, filename: "#{@file_name}.pdf", page_layout: :landscape) do |pdf|
|
||||||
|
events_array = []
|
||||||
|
header_array = ['Event ID',
|
||||||
|
'Title',
|
||||||
|
'Abstract',
|
||||||
|
'Start time',
|
||||||
|
'Submitter',
|
||||||
|
'Speaker',
|
||||||
|
'Event Type',
|
||||||
|
'Track',
|
||||||
|
'Difficulty Level',
|
||||||
|
'Room',
|
||||||
|
'State'
|
||||||
|
]
|
||||||
|
events_array << header_array
|
||||||
|
@events.each do |event|
|
||||||
|
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.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
|
||||||
|
events_array << row
|
||||||
|
end
|
||||||
|
|
||||||
|
pdf.text "#{@conference.short_title} Events", font_size: 25, align: :center
|
||||||
|
pdf.move_down 10
|
||||||
|
pdf.table events_array, header: true, cell_style: {size: 8, border_width: 1, position: :center}
|
||||||
|
pdf.start_new_page
|
||||||
|
pdf.text "#{@conference.short_title} Comments", font_size: 25, align: :center
|
||||||
|
pdf.move_down 20
|
||||||
|
@events.each do |event|
|
||||||
|
if event.root_comments.any?
|
||||||
|
if event.time.present?
|
||||||
|
pdf.text "<b>#{event.title} by #{event.speaker_names} on #{event.time.strftime("%m/%d/%Y")} at #{event.time.strftime("%I:%M%p")} </b> ", inline_format: true
|
||||||
|
else
|
||||||
|
pdf.text "<b>#{event.title} by #{event.speaker_names} </b>", inline_format: true
|
||||||
|
end
|
||||||
|
pdf.move_down 5
|
||||||
|
event.root_comments.each do |comment|
|
||||||
|
pdf.text " <i>#{comment.created_at.strftime("%Y-%m-%d")} #{comment.created_at.strftime("%I:%M%p")} </i> <b>#{comment.user.name}:</b> #{comment.body}", font_size: 10, style: :normal, inline_format: true, align: :justify
|
||||||
|
pdf.move_down 3
|
||||||
|
end
|
||||||
|
pdf.move_down 20
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
28
app/views/admin/events/_all_with_comments.xlsx.axlsx
Normal file
28
app/views/admin/events/_all_with_comments.xlsx.axlsx
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
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', '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.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
|
||||||
|
end
|
||||||
|
end
|
||||||
19
app/views/admin/events/_confirmed_events.csv.haml
Normal file
19
app/views/admin/events/_confirmed_events.csv.haml
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
- headers = ['Event ID',
|
||||||
|
'Title',
|
||||||
|
'Abstract',
|
||||||
|
'Start time',
|
||||||
|
'Submitter',
|
||||||
|
'Speaker',
|
||||||
|
'Event Type',
|
||||||
|
'Track',
|
||||||
|
'Difficulty Level',
|
||||||
|
'Room',
|
||||||
|
'State']
|
||||||
|
= 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,
|
||||||
|
(event.track.present? ? event.track.name : ''),
|
||||||
|
(event.difficulty_level.present? ? event.difficulty_level.title : ''),
|
||||||
|
(event.room.present? ? event.room.name : ''), event.state]).html_safe
|
||||||
35
app/views/admin/events/_confirmed_events.pdf.prawn
Normal file
35
app/views/admin/events/_confirmed_events.pdf.prawn
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
prawn_document(force_download: true, filename: "#{@file_name}.pdf", page_layout: :landscape) do |pdf|
|
||||||
|
events_array = []
|
||||||
|
header_array = ['Event ID',
|
||||||
|
'Title',
|
||||||
|
'Abstract',
|
||||||
|
'Start time',
|
||||||
|
'Submitter',
|
||||||
|
'Speaker',
|
||||||
|
'Event Type',
|
||||||
|
'Track',
|
||||||
|
'Difficulty Level',
|
||||||
|
'Room',
|
||||||
|
'State'
|
||||||
|
]
|
||||||
|
events_array << header_array
|
||||||
|
@events.confirmed.each do |event|
|
||||||
|
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.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
|
||||||
|
events_array << row
|
||||||
|
end
|
||||||
|
|
||||||
|
pdf.text "#{@conference.short_title} Confirmed Events", font_size: 25, align: :center
|
||||||
|
pdf.table events_array, header: true, cell_style: {size: 8, border_width: 1}
|
||||||
|
|
||||||
|
end
|
||||||
21
app/views/admin/events/_confirmed_events.xlsx.axlsx
Normal file
21
app/views/admin/events/_confirmed_events.xlsx.axlsx
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
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']
|
||||||
|
sheet.add_row row, style: bold_style
|
||||||
|
|
||||||
|
@events.confirmed.each do |event|
|
||||||
|
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.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
|
||||||
|
sheet.add_row row
|
||||||
|
end
|
||||||
|
end
|
||||||
6
app/views/admin/events/events.csv.haml
Normal file
6
app/views/admin/events/events.csv.haml
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
- if @event_export_option == 'confirmed'
|
||||||
|
= render 'confirmed_events'
|
||||||
|
- elsif @event_export_option == 'all'
|
||||||
|
= render 'all_events'
|
||||||
|
- elsif @event_export_option == 'all_with_comments'
|
||||||
|
= render 'all_with_comments'
|
||||||
7
app/views/admin/events/events.pdf.prawn
Normal file
7
app/views/admin/events/events.pdf.prawn
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
if @event_export_option == 'confirmed'
|
||||||
|
render 'confirmed_events'
|
||||||
|
elsif @event_export_option == 'all'
|
||||||
|
render 'all_events'
|
||||||
|
elsif @event_export_option == 'all_with_comments'
|
||||||
|
render 'all_with_comments'
|
||||||
|
end
|
||||||
8
app/views/admin/events/events.xlsx.axlsx
Normal file
8
app/views/admin/events/events.xlsx.axlsx
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
wb = xlsx_package.workbook
|
||||||
|
if @event_export_option == 'confirmed'
|
||||||
|
render partial: 'confirmed_events', locals: {:wb => wb}
|
||||||
|
elsif @event_export_option == 'all'
|
||||||
|
render partial: 'all_events', locals: {:wb => wb}
|
||||||
|
elsif @event_export_option == 'all_with_comments'
|
||||||
|
render partial: 'all_with_comments', locals: {:wb => wb}
|
||||||
|
end
|
||||||
|
|
@ -6,9 +6,30 @@
|
||||||
= "(#{@events.length})" if @events.any?
|
= "(#{@events.length})" if @events.any?
|
||||||
.btn-group.pull-right
|
.btn-group.pull-right
|
||||||
- if can? :read, Event
|
- if can? :read, Event
|
||||||
= link_to 'Export CSV', admin_conference_program_events_path(@conference.short_title, format: :csv), class: 'btn btn-success'
|
.btn-group
|
||||||
= link_to 'Export PDF', admin_conference_program_events_path(@conference.short_title, format: :pdf), class: 'btn btn-success'
|
%button.btn.btn-default.dropdown-toggle{"data-toggle" => "dropdown", :type => "button", :class => 'btn btn-success'}
|
||||||
= link_to 'Export XLS', admin_conference_program_events_path(@conference.short_title, format: :xlsx), class: 'btn btn-success'
|
Export PDF
|
||||||
|
%span.caret
|
||||||
|
%ul.dropdown-menu{:role => "menu"}
|
||||||
|
%li= link_to 'All Events', admin_conference_program_events_path(@conference.short_title, format: :pdf, event_export_option: 'all')
|
||||||
|
%li= link_to 'Confirmed Events', admin_conference_program_events_path(@conference.short_title, format: :pdf, event_export_option: 'confirmed')
|
||||||
|
%li= link_to 'All Events with Comments', admin_conference_program_events_path(@conference.short_title, format: :pdf, event_export_option: 'all_with_comments')
|
||||||
|
.btn-group
|
||||||
|
%button.btn.btn-default.dropdown-toggle{"data-toggle" => "dropdown", :type => "button", :class => 'btn btn-success'}
|
||||||
|
Export CSV
|
||||||
|
%span.caret
|
||||||
|
%ul.dropdown-menu{:role => "menu"}
|
||||||
|
%li= link_to 'All', admin_conference_program_events_path(@conference.short_title, format: :csv, event_export_option: 'all')
|
||||||
|
%li= link_to 'Confirmed', admin_conference_program_events_path(@conference.short_title, format: :csv, event_export_option: 'confirmed')
|
||||||
|
%li= link_to 'All with Comments', admin_conference_program_events_path(@conference.short_title, format: :csv, event_export_option: 'all_with_comments')
|
||||||
|
.btn-group
|
||||||
|
%button.btn.btn-default.dropdown-toggle{"data-toggle" => "dropdown", :type => "button", :class => 'btn btn-success'}
|
||||||
|
Export XLS
|
||||||
|
%span.caret
|
||||||
|
%ul.dropdown-menu{:role => "menu"}
|
||||||
|
%li= link_to 'All', admin_conference_program_events_path(@conference.short_title, format: :xlsx, event_export_option: 'all')
|
||||||
|
%li= link_to 'Confirmed', admin_conference_program_events_path(@conference.short_title, format: :xlsx, event_export_option: 'confirmed')
|
||||||
|
%li= link_to 'All with Comments', admin_conference_program_events_path(@conference.short_title, format: :xlsx, event_export_option: 'all_with_comments')
|
||||||
%p.text-muted
|
%p.text-muted
|
||||||
All the submissions of your speakers
|
All the submissions of your speakers
|
||||||
.row
|
.row
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue