fix a few embarassing errors - export is working
This commit is contained in:
parent
53867caae8
commit
ae9f4a51a2
3 changed files with 16 additions and 12 deletions
|
@ -85,8 +85,8 @@ class MapsController < ApplicationController
|
|||
respond_with(@allmappers, @allmappings, @allsynapses, @alltopics, @allmessages, @map)
|
||||
}
|
||||
format.json { render json: @map }
|
||||
format.csv { redirect_to :export }
|
||||
format.xls { redirect_to :export }
|
||||
format.csv { redirect_to action: :export, format: :csv }
|
||||
format.xls { redirect_to action: :export, format: :xls }
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -94,7 +94,7 @@ class MapsController < ApplicationController
|
|||
def export
|
||||
map = Map.find(params[:id])
|
||||
authorize map
|
||||
exporter = MapExportService(current_user, map)
|
||||
exporter = MapExportService.new(current_user, map)
|
||||
respond_to do |format|
|
||||
format.json { render json: exporter.json }
|
||||
format.csv { send_data exporter.csv }
|
||||
|
|
|
@ -31,6 +31,10 @@ class MapPolicy < ApplicationPolicy
|
|||
record.permission == 'commons' || record.permission == 'public' || record.user == user
|
||||
end
|
||||
|
||||
def export?
|
||||
show?
|
||||
end
|
||||
|
||||
def contains?
|
||||
show?
|
||||
end
|
||||
|
|
|
@ -2,8 +2,8 @@ class MapExportService < Struct.new(:user, :map)
|
|||
def json
|
||||
# marshal_dump turns OpenStruct into a Hash
|
||||
{
|
||||
topics: exportable_topics.map(:marshal_dump),
|
||||
synapses: exportable_synapses.map(:marshal_dump)
|
||||
topics: exportable_topics.map(&:marshal_dump),
|
||||
synapses: exportable_synapses.map(&:marshal_dump)
|
||||
}
|
||||
end
|
||||
|
||||
|
@ -29,9 +29,9 @@ class MapExportService < Struct.new(:user, :map)
|
|||
end
|
||||
|
||||
def exportable_topics
|
||||
visible_topics ||= Pundit.policy_scope!(@user, @map.topics)
|
||||
visible_topics ||= Pundit.policy_scope!(user, map.topics)
|
||||
topic_mappings = Mapping.includes(mappable: [:metacode, :user])
|
||||
.where(mappable: visible_topics, map: @map)
|
||||
.where(mappable: visible_topics, map: map)
|
||||
topic_mappings.map do |mapping|
|
||||
topic = mapping.mappable
|
||||
OpenStruct.new(
|
||||
|
@ -49,7 +49,7 @@ class MapExportService < Struct.new(:user, :map)
|
|||
end
|
||||
|
||||
def exportable_synapses
|
||||
visible_synapses = Pundit.policy_scope!(@user, @map.synapses)
|
||||
visible_synapses = Pundit.policy_scope!(user, map.synapses)
|
||||
visible_synapses.map do |synapse|
|
||||
OpenStruct.new(
|
||||
topic1: synapse.node1_id,
|
||||
|
@ -65,18 +65,18 @@ class MapExportService < Struct.new(:user, :map)
|
|||
def to_spreadsheet
|
||||
spreadsheet = []
|
||||
spreadsheet << ["Topics"]
|
||||
spreadsheet << topic_headings.map(:capitalize)
|
||||
spreadsheet << topic_headings.map(&:capitalize)
|
||||
exportable_topics.each do |topics|
|
||||
# convert exportable_topics into an array of arrays
|
||||
topic_headings.map do { |h| topics.send(h) }
|
||||
spreadsheet << topic_headings.map { |h| topics.send(h) }
|
||||
end
|
||||
|
||||
spreadsheet << []
|
||||
spreadsheet << ["Synapses"]
|
||||
spreadsheet << synapse_headings.map(:capitalize)
|
||||
spreadsheet << synapse_headings.map(&:capitalize)
|
||||
exportable_synapses.each do |synapse|
|
||||
# convert exportable_synapses into an array of arrays
|
||||
synapse_headings.map do { |h| synapse.send(h) }
|
||||
spreadsheet << synapse_headings.map { |h| synapse.send(h) }
|
||||
end
|
||||
|
||||
spreadsheet
|
||||
|
|
Loading…
Reference in a new issue