diff options
Diffstat (limited to 'app/models')
| -rw-r--r-- | app/models/export/base.rb | 4 | ||||
| -rw-r--r-- | app/models/export/referential_companies.rb | 39 | ||||
| -rw-r--r-- | app/models/gtfs_export.rb | 47 | ||||
| -rw-r--r-- | app/models/hub_export.rb | 24 | ||||
| -rw-r--r-- | app/models/kml_export.rb | 24 | ||||
| -rw-r--r-- | app/models/neptune_export.rb | 27 | ||||
| -rw-r--r-- | app/models/netex_export.rb | 24 | ||||
| -rw-r--r-- | app/models/simple_interface.rb | 4 |
8 files changed, 41 insertions, 152 deletions
diff --git a/app/models/export/base.rb b/app/models/export/base.rb index ae34be0d0..b078da273 100644 --- a/app/models/export/base.rb +++ b/app/models/export/base.rb @@ -61,6 +61,10 @@ class Export::Base < ActiveRecord::Base true end + def visible_options + options.select{|k, v| ! k.match /^_/} + end + def display_option_value option_name, context option = self.class.options[option_name.to_sym] val = self.options[option_name.to_s] diff --git a/app/models/export/referential_companies.rb b/app/models/export/referential_companies.rb index 7a796fb48..0b6187060 100644 --- a/app/models/export/referential_companies.rb +++ b/app/models/export/referential_companies.rb @@ -5,35 +5,62 @@ class Export::ReferentialCompanies < Export::Base required: true, display: ->(val){r = Referential.find(val); link_to(r.name, [r])} - after_commit :call_exporter, on: :create + after_create :call_exporter_async def referential Referential.find referential_id end + def call_exporter_async + SimpleExportWorker.perform_async(id) + end + + def exporter + SimpleExporter.define :referential_companies do |config| + config.separator = ";" + config.encoding = 'ISO-8859-1' + config.add_column :name + config.add_column :registration_number + end + + @exporter ||= begin + if options[:_exporter_id] + exporter = SimpleExporter.find options[:exporter_id] + else + exporter = SimpleExporter.create configuration_name: :referential_companies + options[:_exporter_id] = exporter.id + end + exporter + end + end + def call_exporter tmp = Tempfile.new ["referential_companies", ".csv"] - exporter = SimpleExporter.create configuration_name: :referential_companies, filepath: tmp.path referential.switch exporter.configure do |config| config.collection = referential.companies.order(:name) end + exporter.filepath = tmp.path exporter.export + set_status_from_exporter + convert_exporter_journal_to_messages + self.file = tmp + self.save! + end + + def set_status_from_exporter if exporter.status == :error self.status = :failed else - self.file = tmp if exporter.status == :success self.status = :successful else self.status = :warning end end - convert_exporter_journal_to_messages exporter - self.save! end - def convert_exporter_journal_to_messages exporter + def convert_exporter_journal_to_messages self.messages.destroy_all exporter.journal.each do |journal_item| journal_item.symbolize_keys! diff --git a/app/models/gtfs_export.rb b/app/models/gtfs_export.rb deleted file mode 100644 index d0b9fc4f9..000000000 --- a/app/models/gtfs_export.rb +++ /dev/null @@ -1,47 +0,0 @@ -class GtfsExport < ExportTask - - validates_presence_of :time_zone, unless: Proc.new { |e| e.optional_attribute? :time_zone } - attr_accessor :object_id_prefix, :time_zone - - enumerize :references_type, in: %w( network line company group_of_line stop_area ) - - after_initialize :init_params - - def init_params - if time_zone.nil? - self.time_zone = "Paris" - end - end - - def real_time_zone - ActiveSupport::TimeZone.find_tzinfo(time_zone).name - end - - def action_params - { - "gtfs-export" => { - "name" => name, - "references_type" => references_type, - "reference_ids" => reference_ids, - "user_name" => user_name, - "organisation_name" => organisation.name, - "referential_name" => referential.name, - "time_zone" => real_time_zone, - "object_id_prefix" => object_id_prefix, - "start_date" => start_date, - "end_date" => end_date - } - } - end - - def self.optional_attributes(references_type) - super.tap do |optional_attributes| - optional_attributes.push :time_zone, :start_date, :end_date if references_type == "stop_area" - end - end - - def data_format - "gtfs" - end - -end diff --git a/app/models/hub_export.rb b/app/models/hub_export.rb deleted file mode 100644 index 802600692..000000000 --- a/app/models/hub_export.rb +++ /dev/null @@ -1,24 +0,0 @@ -class HubExport < ExportTask - - enumerize :references_type, in: %w( network line company group_of_line ) - - def action_params - { - "hub-export" => { - "name" => name, - "references_type" => references_type, - "reference_ids" => reference_ids, - "user_name" => user_name, - "organisation_name" => organisation.name, - "referential_name" => referential.name, - "start_date" => start_date, - "end_date" => end_date - } - } - end - - def data_format - "hub" - end - -end diff --git a/app/models/kml_export.rb b/app/models/kml_export.rb deleted file mode 100644 index f6db77172..000000000 --- a/app/models/kml_export.rb +++ /dev/null @@ -1,24 +0,0 @@ -class KmlExport < ExportTask - - enumerize :references_type, in: %w( network line company group_of_line ) - - def action_params - { - "kml-export" => { - "name" => name, - "references_type" => references_type, - "reference_ids" => reference_ids, - "user_name" => user_name, - "organisation_name" => organisation.name, - "referential_name" => referential.name, - "start_date" => start_date, - "end_date" => end_date - } - } - end - - def data_format - "kml" - end - -end diff --git a/app/models/neptune_export.rb b/app/models/neptune_export.rb deleted file mode 100644 index f25db69c0..000000000 --- a/app/models/neptune_export.rb +++ /dev/null @@ -1,27 +0,0 @@ -class NeptuneExport < ExportTask - - attr_accessor :extensions, :export_type - enumerize :references_type, in: %w( network line company group_of_line ) - - def action_params - { - "neptune-export" => { - "name" => name, - "references_type" => references_type, - "reference_ids" => reference_ids, - "user_name" => user_name, - "organisation_name" => organisation.name, - "referential_name" => referential.name, - "projection_type" => projection_type || "", - "add_extension" => extensions, - "start_date" => start_date, - "end_date" => end_date - } - } - end - - def data_format - "neptune" - end - -end diff --git a/app/models/netex_export.rb b/app/models/netex_export.rb deleted file mode 100644 index a4c3e2454..000000000 --- a/app/models/netex_export.rb +++ /dev/null @@ -1,24 +0,0 @@ -class NetexExport < ExportTask - - enumerize :references_type, in: %w( network line company group_of_line ) - - def action_params - { - "netex-export" => { - "name" => name, - "references_type" => references_type, - "reference_ids" => reference_ids, - "user_name" => user_name, - "organisation_name" => organisation.name, - "referential_name" => referential.name, - "start_date" => start_date, - "end_date" => end_date - } - } - end - - def data_format - "netex" - end - -end diff --git a/app/models/simple_interface.rb b/app/models/simple_interface.rb index c766d483a..11b9d0dcd 100644 --- a/app/models/simple_interface.rb +++ b/app/models/simple_interface.rb @@ -27,6 +27,10 @@ class SimpleInterface < ActiveRecord::Base self.journal ||= [] end + def configuration + @configuration ||= self.class.find_configuration self.configuration_name + end + def init_env opts @verbose = opts.delete :verbose |
