diff --git a/app/controllers/c14s_controller.rb b/app/controllers/c14s_controller.rb index f7227e62..bcfe7312 100644 --- a/app/controllers/c14s_controller.rb +++ b/app/controllers/c14s_controller.rb @@ -25,7 +25,11 @@ def index unless c14_params.blank? @c14s = @c14s.where(c14_params) end - + +# if params[:sample_attributes][:context_attributes][:site_id].present? +# @c14s = @c14s.joins(sample: { context: :site }).where(sample:{context:{sites:{id: params[:sample_attributes][:context_attributes][:site_id]}}}) +# end + # order if params.has_key?(:c14s_order_by) order = { params[:c14s_order_by] => params.fetch(:c14s_order, "asc") } @@ -159,7 +163,13 @@ def c14_params :position_y, :position_z, :position_crs - ]} + ]}, + sample: [ + :context_id, + contexts: [ + :site_id + ] + ] ) end diff --git a/app/controllers/data_controller.rb b/app/controllers/data_controller.rb index ec531fcb..0df26665 100644 --- a/app/controllers/data_controller.rb +++ b/app/controllers/data_controller.rb @@ -13,6 +13,7 @@ def reset_manual_table_selection def index @data = Data.new(filter_params, select_params) + @raw_filter_params = filter_params logger.debug { "Parsed filters: #{@data.filters.inspect}" } @sites = @data.xrons.select("sites.id", "sites.lng", "sites.lat", "sites.name").distinct @@ -35,6 +36,20 @@ def index ) ) AS geojson from (" + @sites.to_sql+ ") AS subquery1) AS subquery2").to_sql)[0]['measurements'], adapter: nil, serializer: nil } + format.csv { + query = "COPY (SELECT * FROM data_views WHERE id IN (" + @data.xrons.pluck(:id).join(', ').to_s + ") ) TO STDOUT WITH CSV HEADER" + + connection = ActiveRecord::Base.connection.raw_connection + csv_data = "" + + connection.copy_data(query) do + while row = connection.get_copy_data + csv_data << row + end + end + + render plain: csv_data, content_type: 'text/csv', filename: "data_#{Date.today}.csv" + } end end diff --git a/app/views/data/_toolbar.html.erb b/app/views/data/_toolbar.html.erb index 7c371ece..285f1960 100644 --- a/app/views/data/_toolbar.html.erb +++ b/app/views/data/_toolbar.html.erb @@ -51,8 +51,8 @@ <%= render "filter_status" %> +
- -->