diff options
| author | Luc Donnet | 2015-04-24 20:23:44 +0200 |
|---|---|---|
| committer | Luc Donnet | 2015-04-24 20:23:44 +0200 |
| commit | 04dff64bbd3b8fab9851a47c700381256d16d386 (patch) | |
| tree | 18d68550323b2f3ad86528f8653f6855c3311cdf | |
| parent | 2cb725889f3999a20c719dc7c6b480d8cd2f70c5 (diff) | |
| download | chouette-core-04dff64bbd3b8fab9851a47c700381256d16d386.tar.bz2 | |
Add export creation
29 files changed, 457 insertions, 306 deletions
@@ -39,12 +39,8 @@ gem 'spring', group: :development gem "sitemap_generator" # API Rest -gem 'sawyer' -gem 'faraday', '~> 0.9.1' +gem 'sawyer', "~> 0.6.0" gem 'faraday_middleware', '~> 0.9.1' -gem 'kleisli' -gem 'hashie' -gem 'hashie_rails', '~> 0.0.2' platforms :jruby do gem 'activerecord-jdbcpostgresql-adapter', '~> 1.3.3' diff --git a/Gemfile.lock b/Gemfile.lock index 71ae6425e..76a675918 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -181,10 +181,6 @@ GEM has_scope (0.6.0) actionpack (>= 3.2, < 5) activesupport (>= 3.2, < 5) - hashie (3.4.0) - hashie_rails (0.0.2) - activesupport (~> 4.0) - hashie (>= 3.0) highline (1.7.1) hike (1.2.3) hitimes (1.2.2) @@ -216,7 +212,6 @@ GEM jruby-rack (>= 1.1.10) json (1.8.2) json (1.8.2-java) - kleisli (0.2.6) language_engine (0.0.6) rails (~> 4.1.1) launchy (2.4.3) @@ -487,7 +482,6 @@ DEPENDENCIES enumerize (~> 0.10.0) factory_girl_rails (~> 4.0) fakeweb - faraday (~> 0.9.1) faraday_middleware (~> 0.9.1) font-awesome-sass (~> 4.2.0) formtastic (= 2.3.1) @@ -496,8 +490,6 @@ DEPENDENCIES google-analytics-rails guard guard-rspec - hashie - hashie_rails (~> 0.0.2) inherited_resources jbuilder (~> 2.0) jquery-rails @@ -505,7 +497,6 @@ DEPENDENCIES jruby-openssl jruby-rack-worker json - kleisli language_engine (= 0.0.6) launchy map_layers (= 0.0.4) @@ -534,7 +525,7 @@ DEPENDENCIES rspec-rails (~> 3.1.0) rubyzip (~> 1.1.7) sass-rails (~> 4.0.3) - sawyer + sawyer (~> 0.6.0) sdoc (~> 0.4.0) simple_form (~> 3.1.0) sitemap_generator diff --git a/app/assets/stylesheets/main/export_tasks.css.scss b/app/assets/stylesheets/main/export_tasks.css.scss new file mode 100644 index 000000000..5c04b8ea0 --- /dev/null +++ b/app/assets/stylesheets/main/export_tasks.css.scss @@ -0,0 +1,13 @@ +#workspace.export_tasks.new, #workspace.export_tasks.create { + .nav{ + margin: 30px 0 10px 0; + } + + .highlight { + padding: 9px 14px; + margin-bottom: 14px; + background-color: #f7f7f9; + border: 1px solid #e1e1e8; + border-radius: 4px; + } +} diff --git a/app/controllers/export_tasks_controller.rb b/app/controllers/export_tasks_controller.rb new file mode 100644 index 000000000..dcc5e684d --- /dev/null +++ b/app/controllers/export_tasks_controller.rb @@ -0,0 +1,66 @@ +class ExportTasksController < ChouetteController + defaults :resource_class => ExportTask + + respond_to :html, :only => [:new, :create] + respond_to :js, :only => [:new, :create] + belongs_to :referential + + def new + @available_exports = available_exports + begin + new! + rescue Ievkit::Error => error + logger.error("Iev failure : #{error.message}") + flash[:error] = t('iev.failure') + redirect_to referential_path(@referential) + end + end + + def create + begin + create! do |success, failure| + success.html { redirect_to referential_exports_path(@referential) } + end + rescue Ievkit::Error => error + logger.error("Iev failure : #{error.message}") + flash[:error] = t('iev.failure') + redirect_to referential_path(@referential) + end + end + + protected + + def available_exports + @available_exports ||= [ + NeptuneExport.new(:referential_id => @referential.id ), + NetexExport.new(:referential_id => @referential.id ), + GtfsExport.new(:referential_id => @referential.id ), + HubExport.new(:referential_id => @referential.id ), + KmlExport.new(:referential_id => @referential.id ) + ] + end + + def build_resource + export_task_parameters = params[:export_task] + + if export_task_parameters.present? + case export_task_parameters[:data_format] + when "neptune" + @export_task = NeptuneExport.new(export_task_parameters) + when "netex" + @export_task = NetexExport.new(export_task_parameters) + when "gtfs" + @export_task = GtfsExport.new(export_task_parameters) + when "hub" + @export_task = HubExport.new(export_task_parameters) + when "kml" + @export_task = KmlExport.new(export_task_parameters) + else + @export_task = nil + end + else + @export_task = nil + end + end + +end diff --git a/app/controllers/import_tasks_controller.rb b/app/controllers/import_tasks_controller.rb index cb0bafdfa..2e0b325c7 100644 --- a/app/controllers/import_tasks_controller.rb +++ b/app/controllers/import_tasks_controller.rb @@ -6,9 +6,7 @@ class ImportTasksController < ChouetteController def new begin - new! do - puts "new" - end + new! rescue Ievkit::Error => error logger.error("Iev failure : #{error.message}") flash[:error] = t('iev.failure') diff --git a/app/models/csv_export.rb b/app/models/csv_export.rb index 9fff79be3..f7bbb7ed7 100644 --- a/app/models/csv_export.rb +++ b/app/models/csv_export.rb @@ -1,7 +1,23 @@ -# class CsvExport < Export +class CsvExport < ExportTask -# def export_options -# super.merge(:format => :csv) -# end + enumerize :references_type, in: %w( all network line company groupofline ) -# end + def action_params + { + "parameters" => { + "kml-export" => { + "name" => name, + "references_type" => references_type, + "user_name" => user_name, + "organisation_name" => organisation.name, + "referential_name" => referential.name + } + } + } + end + + def data_format + "csv" + end + +end diff --git a/app/models/export_task.rb b/app/models/export_task.rb index 4d439b58a..0ca3b49b3 100644 --- a/app/models/export_task.rb +++ b/app/models/export_task.rb @@ -1,164 +1,64 @@ -class ExportTask < ActiveRecord::Base - attr_accessor :resources, :rule_parameter_set_id +class ExportTask + extend Enumerize + extend ActiveModel::Naming + extend ActiveModel::Translation + extend ActiveModel::Callbacks + include ActiveModel::Validations + include ActiveModel::Conversion - belongs_to :referential + define_model_callbacks :initialize, only: :after - has_one :user - has_one :compliance_check_task, :dependent => :delete - - serialize :parameter_set, JSON - serialize :result, JSON + # TODO : Move in configuration + @@root = "#{Rails.root}/tmp/exports" + cattr_accessor :root + enumerize :data_format, in: %w( neptune netex gtfs hub kml ) + enumerize :references_type, in: %w( all network line company groupofline stoparea ) + attr_accessor :referential_id, :user_id, :user_name, :references_type, :data_format, :name, :projection_type + validates_presence_of :referential_id - validates_presence_of :resources validates_presence_of :user_id validates_presence_of :user_name - validates_inclusion_of :status, :in => %w{ pending processing completed failed } - - def references_types - [] + validates_presence_of :name + validates_presence_of :data_format + validates_presence_of :references_type + + def initialize( params = {} ) + params.each {|k,v| send("#{k}=",v)} end - protected - - def self.option(name, type=nil) - name = name.to_s - - define_method(name) do - self.parameter_set and self.parameter_set[name] - end - - if type.to_s == "boolean" - define_method("#{name}=") do |prefix| - (self.parameter_set ||= {})[name] = (prefix=="1" || prefix==true) - end - else - define_method("#{name}=") do |prefix| - (self.parameter_set ||= {})[name] = prefix - end - end - end - - public - - def self.formats - %w{Neptune Csv Gtfs Netex Hub} + def referential + Referential.find(referential_id) end - def self.format_label(format) - I18n.t 'exchange.format.'+format.downcase + def organisation + referential.organisation end - def delayed_export - delay.export - end - - protected - - option :format - option :file_path - option :references_type - - validates_inclusion_of :format, :in => self.formats - - def chouette_command - Chouette::Command.new(:schema => referential.slug) - end - - before_validation :define_default_attributes, :on => :create - def define_default_attributes - self.status ||= "pending" - end - - @@root = "#{Rails.root}/tmp/exports" - cattr_accessor :root - - def compliance_check_task_attributes - {:referential_id => referential.id, - :user_id => user_id, - :user_name => user_name, - :rule_parameter_set_id => rule_parameter_set_id} - end - - after_create :update_info, :save_resources - def update_info - self.file_path = saved_resources - self.update_attribute :parameter_set, self.parameter_set - - self.create_compliance_check_task( self.compliance_check_task_attributes) - end - - def save_resources - FileUtils.mkdir_p root - FileUtils.cp resources.path, saved_resources - end - - after_destroy :destroy_resources - def destroy_resources - FileUtils.rm file_path if File.exists? file_path - end - - def saved_resources - raise Exception.new("Illegal call") if self.new_record? - "#{root}/#{id}#{File.extname(resources.original_filename)}" - end - - def chouette_command_args - {:c => "export", :id => id} - end - - public - - def failed? - status == "failed" - end - - def completed? - status == "completed" - end - - def file_path_extension - extension = File.extname( self.file_path ) - if extension == ".xml" - "xml" - elsif extension == ".zip" - "zip" - else - "basic" + def save + # Call Iev Server + begin + Ievkit.create_job( referential.name, "exporter", data_format, { + :file1 => action_params_io, + } ) + rescue Exception => exception + raise exception end end - def name - "#{ExportTask.model_name.human} #{self.format} #{self.id}" - end - - def full_name - return name + def self.formats + self.data_format.values end - # Create ExportTask and ComplianceCheckTask associated and give export id to Chouette Loader - def export - return nil if self.new_record? - begin - chouette_command.run! chouette_command_args - reload - update_attribute :status, "completed" - compliance_check_task.update_attribute :status, "completed" - rescue => e - Rails.logger.error "Export #{id} failed : #{e}, #{e.backtrace}" - reload - update_attribute :status, "failed" - compliance_check_task.update_attribute :status, "failed" - end + def action_params + { + "parameters" => {} + } end - - def self.new(attributes = {}, parameter_set = {}, &block) - if self == ExportTask - attributes[:format] = "Neptune" unless attributes[:format] - Object.const_get( attributes[:format] + "Export").new(attributes, parameter_set) - else - super - end + + def action_params_io + file = StringIO.new( action_params.to_s ) + Faraday::UploadIO.new(file, "application/json", "parameters.json") end end diff --git a/app/models/gtfs_export.rb b/app/models/gtfs_export.rb index 5f3364ef1..279cc62d7 100644 --- a/app/models/gtfs_export.rb +++ b/app/models/gtfs_export.rb @@ -1,28 +1,40 @@ -# class GtfsExport < Export +class GtfsExport < ExportTask -# validates_presence_of :time_zone -# option :time_zone -# option :object_id_prefix + validates_presence_of :time_zone + attr_accessor :time_zone, :object_id_prefix + + enumerize :references_type, in: %w( all network line company groupofline stoparea ) -# after_initialize :init_params + after_initialize :init_params -# def references_types -# [ Chouette::Line, Chouette::Network, Chouette::Company, Chouette::StopArea ] -# end + def init_params + if time_zone.nil? + self.time_zone = "Paris" + end + end -# def init_params -# if time_zone.nil? -# self.time_zone = "Paris" -# end -# end - -# def export_options -# opts = super.merge(:format => :gtfs, :time_zone => ActiveSupport::TimeZone.find_tzinfo(time_zone).name) -# if object_id_prefix.present? -# opts = opts.merge(:object_id_prefix => object_id_prefix) -# end -# puts opts.inspect -# opts -# end + def time_zone=(time_zone) + ActiveSupport::TimeZone.find_tzinfo(time_zone).name + end + + def action_params + { + "parameters" => { + "gtfs-export" => { + "name" => name, + "references_type" => references_type, + "user_name" => user_name, + "organisation_name" => organisation.name, + "referential_name" => referential.name, + "time_zone" => time_zone, + "object_id_prefix" => object_id_prefix + } + } + } + end + + def data_format + "gtfs" + end -# end +end diff --git a/app/models/hub_export.rb b/app/models/hub_export.rb index 88c8e061c..8bd2e3a96 100644 --- a/app/models/hub_export.rb +++ b/app/models/hub_export.rb @@ -1,35 +1,42 @@ -# class HubExport < Export +class HubExport < ExportTask -# option :start_date -# option :end_date - -# after_initialize :init_period + attr_accessor :start_date, :end_date + enumerize :references_type, in: %w( all network line company groupofline ) + + validates :start_date, presence: true , if: "end_date.present?" + validates :end_date, presence: true, if: "start_date.present?" -# def init_period -# unless Chouette::TimeTable.start_validity_period.nil? -# if start_date.nil? -# self.start_date = Chouette::TimeTable.start_validity_period -# end -# if end_date.nil? -# self.end_date = Chouette::TimeTable.end_validity_period -# end -# end -# end + after_initialize :init_period -# def export_options -# if (start_date.empty? && end_date.empty?) -# super.merge(:format => :hub).except(:start_date).except(:end_date) -# elsif start_date.empty? -# super.merge(:format => :hub, :end_date => end_date).except(:start_date) -# elsif end_date.empty? -# super.merge(:format => :hub, :start_date => start_date).except(:end_date) -# else -# super.merge(:format => :hub, :start_date => start_date, :end_date => end_date) -# end -# end + def init_period + unless Chouette::TimeTable.start_validity_period.nil? + if start_date.nil? + self.start_date = Chouette::TimeTable.start_validity_period + end + if end_date.nil? + self.end_date = Chouette::TimeTable.end_validity_period + end + end + end + + def action_params + { + "parameters" => { + "hub-export" => { + "name" => name, + "references_type" => references_type, + "user_name" => user_name, + "organisation_name" => organisation.name, + "referential_name" => referential.name, + "start_date" => start_date, + "end_date" => end_date + } + } + } + end -# def exporter -# exporter ||= ::Chouette::Hub::Exporter.new(referential, self) -# end + def data_format + "hub" + end -# end +end diff --git a/app/models/kml_export.rb b/app/models/kml_export.rb index c450bd297..186108f6d 100644 --- a/app/models/kml_export.rb +++ b/app/models/kml_export.rb @@ -1,11 +1,23 @@ -class KmlExport < Export +class KmlExport < ExportTask - def export_options - super.merge(:format => :kml) - end + enumerize :references_type, in: %w( all network line company groupofline ) - def exporter - exporter ||= ::Chouette::Kml::Exporter.new(referential, self) + def action_params + { + "parameters" => { + "kml-export" => { + "name" => name, + "references_type" => references_type, + "user_name" => user_name, + "organisation_name" => organisation.name, + "referential_name" => referential.name + } + } + } + end + + def data_format + "kml" end end diff --git a/app/models/neptune_export.rb b/app/models/neptune_export.rb index 566117b32..90ccc1389 100644 --- a/app/models/neptune_export.rb +++ b/app/models/neptune_export.rb @@ -1,20 +1,30 @@ -class NeptuneExport < Export +class NeptuneExport < ExportTask -# option :start_date -# option :end_date + attr_accessor :start_date, :end_date, :extensions, :export_type + enumerize :references_type, in: %w( all network line company groupofline ) + + validates :start_date, presence: true , if: "end_date.present?" + validates :end_date, presence: true, if: "start_date.present?" -# def export_options -# start_date ||= "" -# end_date ||= "" -# if (start_date.empty? && end_date.empty?) -# super.merge(:format => :neptune).except(:start_date).except(:end_date) -# elsif start_date.empty? -# super.merge(:format => :neptune, :end_date => end_date).except(:start_date) -# elsif end_date.empty? -# super.merge(:format => :neptune, :start_date => start_date).except(:end_date) -# else -# super.merge(:format => :neptune, :start_date => start_date, :end_date => end_date) -# end -# end + def action_params + { + "parameters" => { + "neptune-export" => { + "name" => name, + "references_type" => references_type, + "user_name" => user_name, + "organisation_name" => organisation.name, + "referential_name" => referential.name, + "projection_type" => projection_type || "", + "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 index c29ef2b45..65f9f5340 100644 --- a/app/models/netex_export.rb +++ b/app/models/netex_export.rb @@ -1,7 +1,23 @@ -class NetexExport < Export +class NetexExport < ExportTask - def export_options - super.merge(:format => :netex) + enumerize :references_type, in: %w( all network line company groupofline ) + + def action_params + { + "parameters" => { + "netex-export" => { + "name" => name, + "references_type" => references_type, + "user_name" => user_name, + "organisation_name" => organisation.name, + "referential_name" => referential.name, + } + } + } + end + + def data_format + "netex" end end diff --git a/app/views/exports/_fields_gtfs_export.erb b/app/views/export_tasks/_fields_gtfs_export.html.erb index 3ec95c181..3ec95c181 100644 --- a/app/views/exports/_fields_gtfs_export.erb +++ b/app/views/export_tasks/_fields_gtfs_export.html.erb diff --git a/app/views/exports/_fields_hub_export.erb b/app/views/export_tasks/_fields_hub_export.html.erb index 4d6f6f177..fc7cf7112 100644 --- a/app/views/exports/_fields_hub_export.erb +++ b/app/views/export_tasks/_fields_hub_export.html.erb @@ -1,3 +1,2 @@ -<%= I18n.t("formtastic.titles.export.vjas.size", size: Chouette::VehicleJourneyAtStop.count) if Chouette::VehicleJourneyAtStop.count > 50000 %> <%= form.input :start_date, :as => :date_picker, :input_html => { :title => t("formtastic.titles.export.start_date")} %> <%= form.input :end_date, :as => :date_picker, :input_html => { :title => t("formtastic.titles.export.end_date")} %> diff --git a/app/views/export_tasks/_fields_kml_export.html.erb b/app/views/export_tasks/_fields_kml_export.html.erb new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/app/views/export_tasks/_fields_kml_export.html.erb diff --git a/app/views/export_tasks/_fields_neptune_export.html.erb b/app/views/export_tasks/_fields_neptune_export.html.erb new file mode 100644 index 000000000..57826d972 --- /dev/null +++ b/app/views/export_tasks/_fields_neptune_export.html.erb @@ -0,0 +1,4 @@ +<%= form.input :start_date, :as => :date_picker, :input_html => { :title => t("formtastic.titles.export.start_date")} %> +<%= form.input :end_date, :as => :date_picker, :input_html => { :title => t("formtastic.titles.export.end_date")} %> +<%= form.input :projection_type, :as => :hidden, :input_html => { :value => @referential.projection_type || "" } %> +<%= form.input :extensions , :as => :boolean%> diff --git a/app/views/export_tasks/_fields_netex_export.html.erb b/app/views/export_tasks/_fields_netex_export.html.erb new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/app/views/export_tasks/_fields_netex_export.html.erb diff --git a/app/views/export_tasks/new.html.erb b/app/views/export_tasks/new.html.erb new file mode 100644 index 000000000..92753a675 --- /dev/null +++ b/app/views/export_tasks/new.html.erb @@ -0,0 +1,31 @@ +<%= title_tag t(".title") %> +<ul class="nav nav-pills"> + <% ExportTask.formats.each do |format| %> + <li role="presentation"><a href="#<%= format %>" class="<%= format %>" title='<%= t(:"enumerize.data_format_detail.#{format}")%>' data-toggle="tab"><%= t(:"enumerize.data_format.#{format}") %></a></li> + <% end %> +</ul> + +<div class="tab-content"> +<% @available_exports.each do |export_task| %> + <%= semantic_form_for [@referential, export_task], :as => :export_task, :url => referential_export_tasks_path(@referential), :namespace => export_task.data_format ,:html => { :id => "#{export_task.data_format}", :class => "tab-pane highlight"} do |form| %> + <%= form.inputs do %> + <%= form.input :user_name, :as => :hidden, :input_html => { :value => current_user.name } %> <%= form.input :user_id, :as => :hidden, :input_html => { :value => current_user.id } %> + <%= form.input :data_format, :as => :hidden %> + <%= form.input :referential_id, :as => :hidden, :input_html => { :value => @referential.id } %> + <%= form.input :name %> + <%= form.input :references_type, :as => :select, :include_blank => false %> + <% end %> + + <%= render partial: "fields_#{export_task.data_format}_export", :locals => { :form => form } %> + + <%= form.actions do %> + <%= form.action :submit, :as => :button , :label => t( 'formtastic.export' ) %> + <%= form.action :cancel, :as => :link %> + <% end %> + + <% end %> +<% end %> +</div> + +<%= javascript_include_tag new_referential_export_task_path(@referential, :format => :js) %> + diff --git a/app/views/export_tasks/new.js.coffee b/app/views/export_tasks/new.js.coffee new file mode 100644 index 000000000..21eba2e05 --- /dev/null +++ b/app/views/export_tasks/new.js.coffee @@ -0,0 +1,2 @@ +jQuery -> + $('#workspace.export_tasks .nav a:first').tab('show') diff --git a/app/views/exports/_fields_neptune_export.erb b/app/views/exports/_fields_neptune_export.erb deleted file mode 100644 index 20fa9085c..000000000 --- a/app/views/exports/_fields_neptune_export.erb +++ /dev/null @@ -1,3 +0,0 @@ - <%= form.input :start_date, :as => :date_picker, :input_html => { :title => t("formtastic.titles.export.start_date")} %> - <%= form.input :end_date, :as => :date_picker, :input_html => { :title => t("formtastic.titles.export.end_date")} %> - <%= form.input :extensions , :as => :boolean%> diff --git a/app/views/exports/index.html.erb b/app/views/exports/index.html.erb index 8775bbd71..a0310e6d1 100644 --- a/app/views/exports/index.html.erb +++ b/app/views/exports/index.html.erb @@ -6,7 +6,7 @@ <% content_for :sidebar do %> <ul class="actions"> - <li><%= link_to t('exports.actions.new'), new_referential_export_path(@referential), :class => "add" %></li> + <li><%= link_to t('exports.actions.new'), new_referential_export_task_path(@referential), :class => "add" %></li> <li><%= link_to t('rule_parameter_sets.actions.index'), referential_rule_parameter_sets_path(@referential), :class => "link" %></li> </ul> <% end %> diff --git a/app/views/exports/new.html.erb b/app/views/exports/new.html.erb deleted file mode 100644 index fe5961ce9..000000000 --- a/app/views/exports/new.html.erb +++ /dev/null @@ -1,32 +0,0 @@ -<%= title_tag t(".title") %> - -<%= semantic_form_for([@referential, @export], :as => :export, :url => new_referential_export_path(@referential), :method => :get) do |form| %> - <%= form.inputs do %> - <%= form.input :type, :as => :radio, :collection => Export.types.map { |format| [ Export.format_label(format), format]}, :required => true, :include_blank => false %> - <% end %> -<% end %> - -<% @available_exports.each do |export| %> - <%= semantic_form_for [@referential, export], :as => :export, :url => referential_exports_path(@referential), :namespace => export.type.underscore ,:html => { :id => "#{export.type}_new", :style => ('display: none' unless @export == export)} do |form| %> - <%= form.inputs do %> - <%= fields_for_export_type form %> - <% end %> - <%= form.inputs do %> - <%= form.input :type, :as => :hidden %> - - <p class="warning"><%= t('.'+export_partial_name(form)+'.warning',:default => "")%></p> - <%= form.input :references_type, :as => :select, :collection => export.references_types.map { |c| [ c.model_name.human.capitalize.pluralize, c.name ] }, :include_blank => t(".all") %> - - <% export.references_types.each do |type| %> - <%= type_ids_model_references_input(form, @export, Export, type).input %> - <% end %> - <% end %> - - <%= form.actions do %> - <%= form.action :submit, :as => :button , :label => t( 'formtastic.export' ) %> - <%= form.action :cancel, :as => :link %> - <% end %> - <% end %> -<% end %> - -<%= javascript_include_tag new_referential_export_path(@referential, :format => :js) %> diff --git a/app/views/exports/new.js.coffee b/app/views/exports/new.js.coffee deleted file mode 100644 index aafa70bed..000000000 --- a/app/views/exports/new.js.coffee +++ /dev/null @@ -1,4 +0,0 @@ -jQuery -> - <% Export.all_references_types.map { |type| type_ids_model_references_type( Export, type)}.each do |rt| %> - $("textarea.<%= rt.input_class %>").tokenInput('<%= references_referential_compliance_check_tasks_path(@referential, :type => rt.relation_name, :format => :json) %>', { prePopulate: $('#').data('pre'), minChars: 1, hintText: '<%= t('search_hint') %>', noResultsText: '<%= t('no_result_text') %>', searchingText: '<%= t('searching_term') %>'}); - <% end %> diff --git a/config/locales/enumerize.en.yml b/config/locales/enumerize.en.yml index 574c316cd..f65885ee8 100644 --- a/config/locales/enumerize.en.yml +++ b/config/locales/enumerize.en.yml @@ -14,4 +14,23 @@ en: normal: "Regularly scheduled drop off" forbidden: "No drop off available" request_stop: "Drop off if requested" - is_flexible: "Booking requested for drop off"
\ No newline at end of file + is_flexible: "Booking requested for drop off" + references_type: + all: "All datas" + network: "Networks" + line: "Lines" + company: "Companies" + groupofline: "Group of lines" + stoparea: "Stop areas" + data_format: + neptune: "Neptune" + gtfs: "GTFS (General Transit Feed Specification)" + netex: "NeTEx" + hub: "HUB 1.3" + kml: "KML" + data_format_detail: + neptune: "" + gtfs: "General Transit Feed Specification" + netex: "Experimental" + hub: "Specific Transdev Format" + kml: "line, route, ... drawings on Keyhole Markup Language format"
\ No newline at end of file diff --git a/config/locales/enumerize.fr.yml b/config/locales/enumerize.fr.yml index 0dad16319..2902f1835 100644 --- a/config/locales/enumerize.fr.yml +++ b/config/locales/enumerize.fr.yml @@ -14,4 +14,23 @@ fr: normal: "Descente autorisée" forbidden: "Descente interdite" request_stop: "Descente sur demande au conducteur" - is_flexible: "Descente sur réservation"
\ No newline at end of file + is_flexible: "Descente sur réservation" + references_type: + all: "Toutes les données" + network: "Réseaux" + line: "Lignes" + company: "Transporteurs" + groupofline: "Groupe de lignes" + stoparea: "Arrêts" + data_format: + neptune: "Profil Neptune" + gtfs: "GTFS" + netex: "Profil NeTEx" + hub: "HUB 1.3" + kml: "KML" + data_format_detail: + neptune: "" + gtfs: "General Transit Feed Specification défini par Google" + netex: "Expérimental" + hub: "Format spécifique Transdev" + kml: "Tracés de lignes, séquences d'arrêts, ... en 'Keyhole Markup Language'"
\ No newline at end of file diff --git a/config/locales/exchange.yml b/config/locales/exchange.yml deleted file mode 100644 index 7c8ff9646..000000000 --- a/config/locales/exchange.yml +++ /dev/null @@ -1,18 +0,0 @@ -en: - exchange: - format: - neptune: "Neptune" - gtfs: "GTFS (General Transit Feed Specification)" - csv: "CSV (Chouette format)" - netex: "NeTEx (experimental)" - hub: "HUB 1.3 (Specific Transdev Format)" - kml: "KML (line, route, ... drawings on Keyhole Markup Language format)" -fr: - exchange: - format: - neptune: "profil Neptune" - gtfs: "GTFS (General Transit Feed Specification défini par Google)" - csv: "CSV (format spécifique à Chouette)" - netex: "profil NeTEx expérimental" - hub: "HUB 1.3 (format spécifique Transdev)" - kml: "KML (tracés de lignes, séquences d'arrêts, ... en 'Keyhole Markup Language')" diff --git a/config/locales/export_tasks.en.yml b/config/locales/export_tasks.en.yml new file mode 100644 index 000000000..a2cb4bc35 --- /dev/null +++ b/config/locales/export_tasks.en.yml @@ -0,0 +1,48 @@ +en: + export_tasks: + actions: + new: "New export" + new: + title: "New export" + flash: "Export task on queue, refresh page to see progression" + fields_gtfs_export: + warning: "Filter on stop areas export only GTFS stops and transfers files, these may contain extra attributes" + activemodel: + models: + export_task: + zero: "export" + one: "export" + other: "exports" + neptune_export: + zero: "export" + one: "Neptune export" + other: "exports" + gtfs_export: + zero: "export" + one: "GTFS export" + other: "exports" + netex_export: + zero: "export" + one: "NeTEx export" + other: "exports" + attributes: + export_task: + name: "Export name" + start_date: "Start date" + end_date: "End date" + extensions: "Extensions" + created_at: "Created on" + status: "Status" + references_type: "subset" + object_id_prefix: "Neptune Id prefix" + max_distance_for_commercial: "Max distance for commercial stop" + max_distance_for_connection_link: "Max distance for connection link" + ignore_last_word: "ignore last word" + ignore_end_chars: "ignore last chars" + formtastic: + titles: + export_task: + max_distance_for_commercial: "Maximal distance to merge homonymous stops in commercial stop in meter" + max_distance_for_connection_link: "Maximal distance to link stops by connection link stop in meter" + ignore_last_word: "ignore last word on stop name in homonymous detection (inappliable when just one word occurs)" + ignore_end_chars: "ignore some chars at the end of stop names in homonymous detection"
\ No newline at end of file diff --git a/config/locales/export_tasks.fr.yml b/config/locales/export_tasks.fr.yml new file mode 100644 index 000000000..e5e3eaea6 --- /dev/null +++ b/config/locales/export_tasks.fr.yml @@ -0,0 +1,48 @@ +fr: + export_tasks: + actions: + new: "Nouvel export" + new: + title: "Nouvel export" + flash: "La demande d'export est mise en file d'attente, veuillez rafraichir régulièrement la page pour en suivre la progression" + fields_gtfs_export: + warning: "Le filtre sur arrêts exporte uniquement les fichiers GTFS stops et transfers gtfs, ceux-ci pouvant contenir des attributs supplémentaires" + activemodel: + models: + export_task: + zero: "export" + one: "export" + other: "exports" + neptune_export: + zero: "export" + one: "export Neptune" + other: "exports" + gtfs_export: + zero: "export" + one: "export GTFS" + other: "exports" + netex_export: + zero: "export" + one: "export NeTEx" + other: "exports" + attributes: + export_task: + name: "Nom de l'export" + start_date: "Date de début" + end_date: "Date de fin" + extensions: "Extensions" + created_at: "Créé le" + status: "Status" + references_type: "Sous ensemble" + object_id_prefix: "Préfixe d'identifiants" + max_distance_for_commercial: "Distance max pour créer les zones" + max_distance_for_connection_link: "Distance max pour créer les correspondances" + ignore_last_word: "ignorer le dernier mot" + ignore_end_chars: "ignorer les n derniers caractères" + formtastic: + titles: + export_task: + max_distance_for_commercial: "Distance maximale entre deux arrêts homonymes pour créer les zones d'arrêt (en mètre)" + max_distance_for_connection_link: "Distance maximale entre deux arrêts pour créer les correspondances (en mètre)" + ignore_last_word: "Ignorer le dernier mot pour détecter l'homonymie des noms d'arrêt (inapplicable quand le nom ne comporte qu'un mot)" + ignore_end_chars: "Ignorer les n derniers caractères du nom de l'arrêt pour détecter l'homonymie" diff --git a/config/routes.rb b/config/routes.rb index b795a2c70..d2d24dfe3 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -86,7 +86,8 @@ ChouetteIhm::Application.routes.draw do end end - resources :exports do + resources :export_tasks, :only => [:new, :create] + resources :exports, :only => [:index, :show, :destroy] do collection do get 'references' end |
