You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
564 B
32 lines
564 B
# frozen_string_literal: true |
|
|
|
module ExportControllerConcern |
|
extend ActiveSupport::Concern |
|
|
|
included do |
|
before_action :authenticate_user! |
|
before_action :load_export |
|
|
|
skip_before_action :require_functional! |
|
end |
|
|
|
private |
|
|
|
def load_export |
|
@export = Export.new(current_account) |
|
end |
|
|
|
def send_export_file |
|
respond_to do |format| |
|
format.csv { send_data export_data, filename: export_filename } |
|
end |
|
end |
|
|
|
def export_data |
|
raise 'Override in controller' |
|
end |
|
|
|
def export_filename |
|
"#{controller_name}.csv" |
|
end |
|
end
|
|
|