diff options
| author | Zakaria BOUZIANE | 2015-02-26 14:54:18 +0100 |
|---|---|---|
| committer | Zakaria BOUZIANE | 2015-02-26 14:54:18 +0100 |
| commit | 6c799be447a241f0eb232fc4cea3405612acd4e8 (patch) | |
| tree | f4ca3be7a7ba189900dedeb0c66feb2045c8437b | |
| parent | 0adee77238b5c70bcf518e939e16136f3a481493 (diff) | |
| download | chouette-core-6c799be447a241f0eb232fc4cea3405612acd4e8.tar.bz2 | |
Instable state: postgresql_adapter.rb: undefined method table_name for Export:Class
| -rw-r--r-- | app/controllers/exports_controller.rb | 69 | ||||
| -rw-r--r-- | app/helpers/exports_helper.rb | 32 | ||||
| -rw-r--r-- | app/helpers/pagination_helper.rb | 5 | ||||
| -rw-r--r-- | app/models/csv_export.rb | 10 | ||||
| -rw-r--r-- | app/models/export.rb | 150 | ||||
| -rw-r--r-- | app/models/export_log_message.rb | 70 | ||||
| -rw-r--r-- | app/models/gtfs_export.rb | 44 | ||||
| -rw-r--r-- | app/models/hub_export.rb | 58 | ||||
| -rw-r--r-- | app/models/import.rb | 2 | ||||
| -rw-r--r-- | app/models/kml_export.rb | 16 | ||||
| -rw-r--r-- | app/models/neptune_export.rb | 34 | ||||
| -rw-r--r-- | app/models/netex_export.rb | 10 | ||||
| -rw-r--r-- | app/models/vehicle_journey_export.rb | 282 | ||||
| -rw-r--r-- | app/views/exports/_export.erb | 24 | ||||
| -rw-r--r-- | app/views/exports/_exports.html.erb | 2 | ||||
| -rw-r--r-- | app/views/exports/index.html.erb | 1 | ||||
| -rw-r--r-- | config/routes.rb | 1 | ||||
| -rw-r--r-- | db/schema.rb | 48 |
18 files changed, 361 insertions, 497 deletions
diff --git a/app/controllers/exports_controller.rb b/app/controllers/exports_controller.rb index bb9cff197..941d293ae 100644 --- a/app/controllers/exports_controller.rb +++ b/app/controllers/exports_controller.rb @@ -1,69 +1,20 @@ -class ExportsController < ChouetteController - defaults :resource_class => Export - - respond_to :html, :xml, :json, :js - respond_to :zip, :only => :show +require 'will_paginate/array' +class ExportsController < ChouetteController + respond_to :html, :xml, :json + respond_to :js, :only => [:show, :index] belongs_to :referential - def new - new! do - build_breadcrumb :new - available_exports - end - end - - def create - if (params[:export][:type] == "HubExport") && Chouette::VehicleJourneyAtStop.count > 50000 - flash[:notice] = I18n.t("formtastic.titles.export.vjas.size", size: Chouette::VehicleJourneyAtStop.count) - redirect_to new_referential_export_path(@referential) - elsif (params[:export][:type] == "HubExport") && (params[:export][:start_date].empty? || params[:export][:end_date].empty?) - flash[:notice] = I18n.t("formtastic.titles.export.dates.not_nul") - redirect_to new_referential_export_path(@referential) - else - create! do |success, failure| - success.html { flash[:notice] = I18n.t('exports.new.flash')+"<br/>"+I18n.t('exports.new.flash2'); redirect_to referential_exports_path(@referential) } - end - end - end - - def show - show! do |format| - format.zip { send_file @export.file, :type => :zip } - build_breadcrumb :show - end - end - - def references - @references = referential.send(params[:type]).where("name ilike ?", "%#{params[:q]}%") - respond_to do |format| - format.json do - render :json => @references.collect { |child| { :id => child.id, :name => child.name } } - end - end - end - protected - def available_exports - @available_exports ||= Export.types.collect do |type| - unless @export.type == type - @referential.exports.build :type => type - else - @export - end + def test + test = IevApi.jobs(@referential.slug, { :action => "exporter" }).map do |export_hash| + export = Export.new(export_hash) end end - - # FIXME why #resource_id is nil ?? - def build_resource - super.tap do |export| - export.referential_id = @referential.id - end - end - + def collection - @exports ||= end_of_association_chain.order('created_at DESC').paginate(:page => params[:page]) + @exports ||= test.paginate(:page => params[:page]) end - + end diff --git a/app/helpers/exports_helper.rb b/app/helpers/exports_helper.rb index d9b975297..7f53cffba 100644 --- a/app/helpers/exports_helper.rb +++ b/app/helpers/exports_helper.rb @@ -1,7 +1,8 @@ +# -*- coding: utf-8 -*- module ExportsHelper - def fields_for_export_type(form) - #partial_name = "fields_#{form.object.type.underscore}" + def fields_for_export_format(form) + #partial_name = "fields_#{form.object.format.underscore}" begin render :partial => export_partial_name(form), :locals => { :form => form } @@ -9,38 +10,31 @@ module ExportsHelper "" end end - + def export_partial_name(form) - "fields_#{form.object.type.underscore}" + "fields_#{form.object.format.underscore}" end - - include TypeIdsModelsHelper - + def export_progress_bar_tag(export) - if export.status == "failed" + if export.canceled? || export.aborted? div_class = "progress-bar progress-bar-danger" - percentage_progress = "100" - elsif export.status == "pending" + elsif export.scheduled? div_class = "progress-bar progress-bar-info" - percentage_progress = "10" - elsif export.status == "processing" + elsif export.created? div_class = "progress-bar progress-bar-info" - percentage_progress = "50" - elsif export.status == "completed" + elsif export.terminated? div_class = "progress-bar progress-bar-success" - percentage_progress = "100" else div_class = "" - percentage_progress = "" end content_tag :div, :class => "progress" do - content_tag :div, :class => div_class, role: "progressbar", :'aria-valuenow' => percentage_progress, :'aria-valuemin' => "0", :'aria-valuemax' => "100", :style => "width: #{percentage_progress}%;" do - percentage_progress + "% " + I18n.t("exports.statuses.#{export.status}") + content_tag :div, :class => div_class, role: "progressbar", :'aria-valuenow' => "#{export.percentage_progress}", :'aria-valuemin' => "0", :'aria-valuemax' => "100", :style => "width: #{export.percentage_progress}%;" do + "#{export.percentage_progress}% " + I18n.t("exports.statuses.#{export.export_status}") end end end - + end diff --git a/app/helpers/pagination_helper.rb b/app/helpers/pagination_helper.rb index 68c3d462f..41f225aa9 100644 --- a/app/helpers/pagination_helper.rb +++ b/app/helpers/pagination_helper.rb @@ -10,7 +10,10 @@ module PaginationHelper html += '<div class="row">' row_models.each do |model| partial_name = default_partial_name || model.class.name.underscore.gsub("chouette/", "") - html += '<div class="col-md-4">' + (render :partial => partial_name, :object => model, :locals => options).to_s + '</div>' + puts "PARTIAL_NAME = #{partial_name}\nMODEL = #{model.inspect}\nOPTIONS = #{options}" + #html += '<div class="col-md-4">' + (render :partial => partial_name, :object => model, :locals => options).to_s + '</div>' + #html += '<div class="col-md-4">' + "<%= link_to referential_export_path(#{model.referential}, #{model}) %>" + '</div>' + puts "HTML= #{html}" end html += '</div>' end diff --git a/app/models/csv_export.rb b/app/models/csv_export.rb index 4afacf81a..9fff79be3 100644 --- a/app/models/csv_export.rb +++ b/app/models/csv_export.rb @@ -1,7 +1,7 @@ -class CsvExport < Export +# class CsvExport < Export - def export_options - super.merge(:format => :csv) - end +# def export_options +# super.merge(:format => :csv) +# end -end +# end diff --git a/app/models/export.rb b/app/models/export.rb index 99e499c2d..7ee9704f6 100644 --- a/app/models/export.rb +++ b/app/models/export.rb @@ -1,137 +1,55 @@ -class Export < ActiveRecord::Base - - belongs_to :referential - validates_presence_of :referential_id - - validates_inclusion_of :status, :in => %w{ pending processing completed failed } - - has_many :log_messages, -> { order('position ASC') }, :class_name => "ExportLogMessage", :dependent => :delete_all - - serialize :options - - include ::TypeIdsModelable - - def self.option(name) - name = name.to_s - - define_method(name) do - self.options and self.options[name] - end - - define_method("#{name}=") do |prefix| - (self.options ||= {})[name] = prefix - end - end - - - def exporter - exporter ||= ::Chouette::Exporter.new(referential.slug) - end - - @@root = "#{Rails.root}/tmp/exports" - cattr_accessor :root - - after_destroy :destroy_file - def destroy_file - FileUtils.rm file if File.exists? file - end - - def file - "#{root}/#{id}.zip" - end +class Export + extend Enumerize + extend ActiveModel::Naming + include ActiveModel::Model + + enumerize :export_status, in: %w{created scheduled terminated canceled aborted}, default: "created", predicates: true + enumerize :export_format, in: %w{neptune netex gtfs hub kml}, default: "neptune", predicates: true + + attr_reader :datas - def name - "#{self.class.model_name.human} #{id}" + def initialize(options=Hashie::Mash.new) + @datas = options + @export_status = @datas.status.downcase if @datas.status + @export_format = @datas.type.downcase if @datas.type end - def export_options - { :export_id => self.id, :o => export_object_type }.tap do |options| - options[:id] = reference_ids.join(',') if reference_ids.present? + def percentage_progress + if %w{created}.include? export_status + 0 + elsif %w{ terminated canceled aborted }.include? export_status + 100 + else + 20 end end - def export_object_type - references_relation ? references_relation.singularize : "line" + def links + @datas.links end - before_validation :define_default_attributes, :on => :create - def define_default_attributes - self.status ||= "pending" - self.options ||= {} + def name + @datas.parameters.name end - after_create :delayed_export - def delayed_export - delay.export + def user_name + @datas.parameters.user_name end - def export - result_severity = "ok" - FileUtils.mkdir_p root - - begin - # delayed job may repeat call - ExportLogMessage.where(:export_id => self.id).delete_all - log_messages.create :severity => "ok", :key => :started - - exporter.export file, export_options - - update_attribute :status, "completed" - rescue => e - Rails.logger.error "Export #{id} failed : #{e}, #{e.backtrace}" - update_attribute :status, "failed" - result_severity = "error" - end - - log_messages.create :severity => result_severity, :key => status + def no_save + @datas.parameters.no_save end - - def self.all_references_types - [ Chouette::Line, Chouette::Network, Chouette::Company , Chouette::StopArea] + def filename + @datas.filename end - def references_types - [ Chouette::Line, Chouette::Network, Chouette::Company ] + def created_at + Time.at(@datas.created.to_i / 1000) end - # @@references_types = [ Chouette::Line, Chouette::Network, Chouette::Company ] - # cattr_reader :references_types - - # validates_inclusion_of :references_type, :in => references_types.map(&:to_s), :allow_blank => true, :allow_nil => true - - def self.format_name(format) - name_by_format = { - "NeptuneExport" => "Neptune", - "CsvExport" => "CSV", - "GtfsExport" => "GTFS", - "NetexExport" => "NeTEx", - "KmlExport" => "KML", - "HubExport" => "HUB" - } - name_by_format[format] - end - - def self.format_label(format) - I18n.t 'exchange.format.'+format.sub("Export",'').downcase - end - - def self.types - unless Rails.env.development? - subclasses.map(&:to_s) - else - # FIXME - %w{NeptuneExport CsvExport GtfsExport NetexExport KmlExport HubExport} - end - end - - def self.new(attributes = {}, options = {}, &block) - if self == Export - Object.const_get(attributes.delete(:type) || "NeptuneExport").new(attributes, options) - else - super - end + def updated_at + Time.at(@datas.updated.to_i / 1000) end end - diff --git a/app/models/export_log_message.rb b/app/models/export_log_message.rb index 4bb9d3cc7..9d48f288e 100644 --- a/app/models/export_log_message.rb +++ b/app/models/export_log_message.rb @@ -1,42 +1,42 @@ -class ExportLogMessage < ActiveRecord::Base - belongs_to :export +# class ExportLogMessage < ActiveRecord::Base +# belongs_to :export - acts_as_list :scope => :export +# acts_as_list :scope => :export - validates_presence_of :key - validates_inclusion_of :severity, :in => %w{info warning error ok uncheck fatal} +# validates_presence_of :key +# validates_inclusion_of :severity, :in => %w{info warning error ok uncheck fatal} - def arguments=(arguments) - write_attribute :arguments, (arguments.to_json if arguments.present?) - end +# def arguments=(arguments) +# write_attribute :arguments, (arguments.to_json if arguments.present?) +# end - def arguments - @decoded_arguments ||= - begin - if (stored_arguments = raw_attributes).present? - ActiveSupport::JSON.decode stored_arguments - else - {} - end - end - end +# def arguments +# @decoded_arguments ||= +# begin +# if (stored_arguments = raw_attributes).present? +# ActiveSupport::JSON.decode stored_arguments +# else +# {} +# end +# end +# end - def raw_attributes - read_attribute(:arguments) - end +# def raw_attributes +# read_attribute(:arguments) +# end - before_validation :define_default_attributes, :on => :create - def define_default_attributes - self.severity ||= "info" - end +# before_validation :define_default_attributes, :on => :create +# def define_default_attributes +# self.severity ||= "info" +# end - def full_message - last_key=key.rpartition("|").last - begin - I18n.translate last_key, arguments.symbolize_keys.merge(:scope => "export_log_messages.messages").merge(:default => :undefined).merge(:key => last_key) - rescue => e - Rails.logger.error "missing arguments for message "+last_key - I18n.translate "WRONG_DATA",{"0"=>last_key}.symbolize_keys.merge(:scope => "export_log_messages.messages").merge(:default => :undefined).merge(:key => "WRONG_DATA") - end - end -end +# def full_message +# last_key=key.rpartition("|").last +# begin +# I18n.translate last_key, arguments.symbolize_keys.merge(:scope => "export_log_messages.messages").merge(:default => :undefined).merge(:key => last_key) +# rescue => e +# Rails.logger.error "missing arguments for message "+last_key +# I18n.translate "WRONG_DATA",{"0"=>last_key}.symbolize_keys.merge(:scope => "export_log_messages.messages").merge(:default => :undefined).merge(:key => "WRONG_DATA") +# end +# end +# end diff --git a/app/models/gtfs_export.rb b/app/models/gtfs_export.rb index 6ee83098f..5f3364ef1 100644 --- a/app/models/gtfs_export.rb +++ b/app/models/gtfs_export.rb @@ -1,28 +1,28 @@ -class GtfsExport < Export +# class GtfsExport < Export - validates_presence_of :time_zone - option :time_zone - option :object_id_prefix +# validates_presence_of :time_zone +# option :time_zone +# option :object_id_prefix - after_initialize :init_params +# after_initialize :init_params - def references_types - [ Chouette::Line, Chouette::Network, Chouette::Company, Chouette::StopArea ] - end +# 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 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 -end +# end diff --git a/app/models/hub_export.rb b/app/models/hub_export.rb index 3d93cbfae..88c8e061c 100644 --- a/app/models/hub_export.rb +++ b/app/models/hub_export.rb @@ -1,35 +1,35 @@ -class HubExport < Export +# class HubExport < Export - option :start_date - option :end_date +# option :start_date +# option :end_date - after_initialize :init_period +# after_initialize :init_period - 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 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 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 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 exporter - exporter ||= ::Chouette::Hub::Exporter.new(referential, self) - end +# def exporter +# exporter ||= ::Chouette::Hub::Exporter.new(referential, self) +# end -end +# end diff --git a/app/models/import.rb b/app/models/import.rb index 526d77783..6a6b78c9e 100644 --- a/app/models/import.rb +++ b/app/models/import.rb @@ -11,7 +11,7 @@ class Import def initialize(options=Hashie::Mash.new) @datas = options @import_status = @datas.status.downcase if @datas.status - @import_format = @datas.type.downcase + @import_format = @datas.type.downcase if @datas.type end def percentage_progress diff --git a/app/models/kml_export.rb b/app/models/kml_export.rb index c450bd297..aa27e331a 100644 --- a/app/models/kml_export.rb +++ b/app/models/kml_export.rb @@ -1,11 +1,11 @@ -class KmlExport < Export +# class KmlExport < Export - def export_options - super.merge(:format => :kml) - end +# def export_options +# super.merge(:format => :kml) +# end - def exporter - exporter ||= ::Chouette::Kml::Exporter.new(referential, self) - end +# def exporter +# exporter ||= ::Chouette::Kml::Exporter.new(referential, self) +# end -end +# end diff --git a/app/models/neptune_export.rb b/app/models/neptune_export.rb index 4d8aff76d..67dbc33d1 100644 --- a/app/models/neptune_export.rb +++ b/app/models/neptune_export.rb @@ -1,20 +1,20 @@ -class NeptuneExport < Export +# class NeptuneExport < Export - option :start_date - option :end_date +# option :start_date +# option :end_date - 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 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 -end +# end diff --git a/app/models/netex_export.rb b/app/models/netex_export.rb index c29ef2b45..1845d1c06 100644 --- a/app/models/netex_export.rb +++ b/app/models/netex_export.rb @@ -1,7 +1,7 @@ -class NetexExport < Export +# class NetexExport < Export - def export_options - super.merge(:format => :netex) - end +# def export_options +# super.merge(:format => :netex) +# end -end +# end diff --git a/app/models/vehicle_journey_export.rb b/app/models/vehicle_journey_export.rb index 4c2c62fa8..916c9af0d 100644 --- a/app/models/vehicle_journey_export.rb +++ b/app/models/vehicle_journey_export.rb @@ -1,167 +1,167 @@ -# -*- coding: utf-8 -*- -require "csv" -require "zip" +# # -*- coding: utf-8 -*- +# require "csv" +# require "zip" -class VehicleJourneyExport - include ActiveModel::Validations - include ActiveModel::Conversion - extend ActiveModel::Naming +# class VehicleJourneyExport +# include ActiveModel::Validations +# include ActiveModel::Conversion +# extend ActiveModel::Naming - attr_accessor :vehicle_journeys, :route +# attr_accessor :vehicle_journeys, :route - def initialize(attributes = {}) - attributes.each { |name, value| send("#{name}=", value) } - end +# def initialize(attributes = {}) +# attributes.each { |name, value| send("#{name}=", value) } +# end - def persisted? - false - end +# def persisted? +# false +# end - def label(name) - I18n.t "vehicle_journey_exports.label.#{name}" - end +# def label(name) +# I18n.t "vehicle_journey_exports.label.#{name}" +# end - def column_names - ["", label("vehicle_journey_id")] + vehicle_journeys.collect(&:id) - end +# def column_names +# ["", label("vehicle_journey_id")] + vehicle_journeys.collect(&:id) +# end - # produce a map stop_id => departure time for a vehicle_journey - def time_by_stops(vj) - {}.tap do |hash| - vj.vehicle_journey_at_stops.each do |vjas| - hash[ "#{vjas.stop_point_id}"] = vjas.departure_time.strftime("%H:%M") - end - end - end +# # produce a map stop_id => departure time for a vehicle_journey +# def time_by_stops(vj) +# {}.tap do |hash| +# vj.vehicle_journey_at_stops.each do |vjas| +# hash[ "#{vjas.stop_point_id}"] = vjas.departure_time.strftime("%H:%M") +# end +# end +# end - def time_tables (vj) - (vj.time_tables.collect{ |t| t.id }) - end +# def time_tables (vj) +# (vj.time_tables.collect{ |t| t.id }) +# end - def time_tables_array - (vehicle_journeys.collect{ |vj| time_tables(vj).to_s[1..-2] } ) - end +# def time_tables_array +# (vehicle_journeys.collect{ |vj| time_tables(vj).to_s[1..-2] } ) +# end - def vehicle_journey_at_stops_array - (vehicle_journeys.collect{ |vj| time_by_stops vj } ) - end +# def vehicle_journey_at_stops_array +# (vehicle_journeys.collect{ |vj| time_by_stops vj } ) +# end - def boolean_code(b) - b.nil? ? "" : label("b_"+b.to_s) - end +# def boolean_code(b) +# b.nil? ? "" : label("b_"+b.to_s) +# end - def number_array - (vehicle_journeys.collect{ |vj| vj.number ? vj.number.to_s : "" } ) - end +# def number_array +# (vehicle_journeys.collect{ |vj| vj.number ? vj.number.to_s : "" } ) +# end - def published_journey_name_array - (vehicle_journeys.collect{ |vj| vj.published_journey_name ? vj.published_journey_name : "" } ) - end +# def published_journey_name_array +# (vehicle_journeys.collect{ |vj| vj.published_journey_name ? vj.published_journey_name : "" } ) +# end - def flexible_service_array - (vehicle_journeys.collect{ |vj| boolean_code vj.flexible_service } ) - end +# def flexible_service_array +# (vehicle_journeys.collect{ |vj| boolean_code vj.flexible_service } ) +# end - def mobility_restricted_suitability_array - (vehicle_journeys.collect{ |vj| boolean_code vj.mobility_restricted_suitability } ) - end +# def mobility_restricted_suitability_array +# (vehicle_journeys.collect{ |vj| boolean_code vj.mobility_restricted_suitability } ) +# end - def empty_array - (vehicle_journeys.collect{ |vj| "" } ) - end +# def empty_array +# (vehicle_journeys.collect{ |vj| "" } ) +# end - def times_of_stop(stop_id,vjas_array) - a = [] - vjas_array.each do |map| - a << (map[stop_id.to_s].present? ? map[stop_id.to_s] : "") - end - a - end +# def times_of_stop(stop_id,vjas_array) +# a = [] +# vjas_array.each do |map| +# a << (map[stop_id.to_s].present? ? map[stop_id.to_s] : "") +# end +# a +# end - def to_csv(options = {}) - CSV.generate(options) do |csv| - csv << column_names - csv << ["", label("number")] + number_array - csv << ["", label("published_journey_name")] + published_journey_name_array - csv << ["", label("mobility")] + mobility_restricted_suitability_array - csv << ["", label("flexible_service")] + flexible_service_array - csv << ["", label("time_table_ids")] + time_tables_array - csv << [label("stop_id"), label("stop_name")] + empty_array - vjas_array = vehicle_journey_at_stops_array - route.stop_points.each_with_index do |stop_point, index| - times = times_of_stop(stop_point.id,vjas_array) - csv << [stop_point.id, stop_point.stop_area.name] + times - end - end - end +# def to_csv(options = {}) +# CSV.generate(options) do |csv| +# csv << column_names +# csv << ["", label("number")] + number_array +# csv << ["", label("published_journey_name")] + published_journey_name_array +# csv << ["", label("mobility")] + mobility_restricted_suitability_array +# csv << ["", label("flexible_service")] + flexible_service_array +# csv << ["", label("time_table_ids")] + time_tables_array +# csv << [label("stop_id"), label("stop_name")] + empty_array +# vjas_array = vehicle_journey_at_stops_array +# route.stop_points.each_with_index do |stop_point, index| +# times = times_of_stop(stop_point.id,vjas_array) +# csv << [stop_point.id, stop_point.stop_area.name] + times +# end +# end +# end - def tt_day_types(tt) - type = tt.monday ? label("monday") : ".." - type += tt.tuesday ? label("tuesday") : ".." - type += tt.wednesday ? label("wednesday") : ".." - type += tt.thursday ? label("thursday") : ".." - type += tt.friday ? label("friday") : ".." - type += tt.saturday ? label("saturday") : ".." - type += tt.sunday ? label("sunday") : ".." - type - end +# def tt_day_types(tt) +# type = tt.monday ? label("monday") : ".." +# type += tt.tuesday ? label("tuesday") : ".." +# type += tt.wednesday ? label("wednesday") : ".." +# type += tt.thursday ? label("thursday") : ".." +# type += tt.friday ? label("friday") : ".." +# type += tt.saturday ? label("saturday") : ".." +# type += tt.sunday ? label("sunday") : ".." +# type +# end - def tt_periods(tt) - periods = "" - tt.periods.each do |p| - periods += "["+p.period_start.to_s+" -> "+p.period_end.to_s+"] " - end - periods - end +# def tt_periods(tt) +# periods = "" +# tt.periods.each do |p| +# periods += "["+p.period_start.to_s+" -> "+p.period_end.to_s+"] " +# end +# periods +# end - def tt_peculiar_days(tt) - days = "" - tt.included_days.each do |d| - days += d.to_s+" " - end - days - end +# def tt_peculiar_days(tt) +# days = "" +# tt.included_days.each do |d| +# days += d.to_s+" " +# end +# days +# end - def tt_excluded_days(tt) - days = "" - tt.excluded_days.each do |d| - days += d.to_s+" " - end - days - end +# def tt_excluded_days(tt) +# days = "" +# tt.excluded_days.each do |d| +# days += d.to_s+" " +# end +# days +# end - def tt_data(tt) - [].tap do |array| - # code;name;tags;start;end;day types;periods;peculiar days;excluded days - array << tt.id.to_s - array << tt.comment - array << tt.tag_list - array << tt.start_date.to_s - array << tt.end_date.to_s - array << tt_day_types(tt) - array << tt_day_types(tt) - array << tt_periods(tt) - array << tt_peculiar_days(tt) - array << tt_excluded_days(tt) - end - end +# def tt_data(tt) +# [].tap do |array| +# # code;name;tags;start;end;day types;periods;peculiar days;excluded days +# array << tt.id.to_s +# array << tt.comment +# array << tt.tag_list +# array << tt.start_date.to_s +# array << tt.end_date.to_s +# array << tt_day_types(tt) +# array << tt_day_types(tt) +# array << tt_periods(tt) +# array << tt_peculiar_days(tt) +# array << tt_excluded_days(tt) +# end +# end - def time_tables_to_csv (options = {}) - tts = Chouette::TimeTable.all - CSV.generate(options) do |csv| - csv << label("tt_columns").split(";") - tts.each do |tt| - csv << tt_data(tt) - end - end - end +# def time_tables_to_csv (options = {}) +# tts = Chouette::TimeTable.all +# CSV.generate(options) do |csv| +# csv << label("tt_columns").split(";") +# tts.each do |tt| +# csv << tt_data(tt) +# end +# end +# end - def to_zip(temp_file,options = {}) - ::Zip::OutputStream.open(temp_file) { |zos| } - ::Zip::File.open(temp_file.path, ::Zip::File::CREATE) do |zipfile| - zipfile.get_output_stream(label("vj_filename")+route.id.to_s+".csv") { |f| f.puts to_csv(options) } - zipfile.get_output_stream(label("tt_filename")+".csv") { |f| f.puts time_tables_to_csv(options) } - end - end +# def to_zip(temp_file,options = {}) +# ::Zip::OutputStream.open(temp_file) { |zos| } +# ::Zip::File.open(temp_file.path, ::Zip::File::CREATE) do |zipfile| +# zipfile.get_output_stream(label("vj_filename")+route.id.to_s+".csv") { |f| f.puts to_csv(options) } +# zipfile.get_output_stream(label("tt_filename")+".csv") { |f| f.puts time_tables_to_csv(options) } +# end +# end -end +# end diff --git a/app/views/exports/_export.erb b/app/views/exports/_export.erb index a139e3171..d23795f8f 100644 --- a/app/views/exports/_export.erb +++ b/app/views/exports/_export.erb @@ -1,18 +1,18 @@ <div id="index_item" class="panel panel-default"> <div class="panel-heading"> <div class="panel-title clearfix"> - <span class="pull-right"> - <%= link_to referential_export_path(@referential, export), :method => :delete, :data => {:confirm => t('exports.actions.destroy_confirm')}, :class => "btn btn-danger btn-sm" do %> - <span class="fa fa-trash-o"></span> - <% end %> - </span> - <h5> - <%= link_to( referential_export_path(@referential, export), :class => "preview", :title => "#{Export.model_name.human.capitalize} #{export.name}") do %> - <span class="name"> - <%= truncate(export.name, :length => 20) %> - </span> - <% end %> - </h5> + <!-- span class="pull-right" --> + <!-- %= link_to referential_export_path(@referential, export), :method => :delete, :data => {:confirm => t('exports.actions.destroy_confirm')}, :class => "btn btn-danger btn-sm" do % --> + <!-- span class="fa fa-trash-o"></span --> + <!--% end % --> + <!-- /span --> + <!-- <h5> --> + <!-- < %= link_to( referential_export_path(@referential, export), :class => "preview", :title => "#{Export.model_name.human.capitalize} #{export.name}") do % > --> + <!-- <span class="name"> --> + <!-- < %= truncate(export.name, :length => 20) % > --> + <!-- </span> --> + <!-- < % end % > --> + <!-- </h5> --> </div> </div> <div class="panel-body"> diff --git a/app/views/exports/_exports.html.erb b/app/views/exports/_exports.html.erb index 9417cfed6..4e86de0a5 100644 --- a/app/views/exports/_exports.html.erb +++ b/app/views/exports/_exports.html.erb @@ -2,7 +2,7 @@ <span class="search"> <%= t("will_paginate.page_entries_info.search") %></span> <%= page_entries_info @exports %> </div> <div class="exports paginated_content"> - <%= paginated_content @exports, "export" %> + <%= paginated_content(@exports, "export", {:delete => false, :edit => true}) %> </div> <div class="pagination"> <%= will_paginate @exports, :container => false, renderer: RemoteBootstrapPaginationLinkRenderer %> diff --git a/app/views/exports/index.html.erb b/app/views/exports/index.html.erb index 35b19be62..3fda99672 100644 --- a/app/views/exports/index.html.erb +++ b/app/views/exports/index.html.erb @@ -1,5 +1,6 @@ <%= title_tag t('.title') %> <div class="warning"><%= t('.warning') %> </div> + <div id="exports"><%= render 'exports' %></div> diff --git a/config/routes.rb b/config/routes.rb index 93b1b2303..82dd4248f 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -97,6 +97,7 @@ ChouetteIhm::Application.routes.draw do get 'references' end end + resources :compliance_check_tasks do member do get 'export', defaults: { format: 'zip' } diff --git a/db/schema.rb b/db/schema.rb index cde534a39..5714242ae 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20150130094642) do +ActiveRecord::Schema.define(version: 20150226083920) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -164,31 +164,6 @@ ActiveRecord::Schema.define(version: 20150130094642) do add_index "delayed_jobs", ["priority", "run_at"], name: "delayed_jobs_priority", using: :btree - create_table "export_log_messages", force: true do |t| - t.integer "export_id", limit: 8 - t.string "key" - t.string "arguments", limit: 1000 - t.integer "position" - t.string "severity" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - end - - add_index "export_log_messages", ["export_id"], name: "index_export_log_messages_on_export_id", using: :btree - - create_table "exports", force: true do |t| - t.integer "referential_id", limit: 8 - t.string "status" - t.string "type" - t.string "options" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.string "references_type" - t.string "reference_ids" - end - - add_index "exports", ["referential_id"], name: "index_exports_on_referential_id", using: :btree - create_table "facilities", force: true do |t| t.integer "stop_area_id", limit: 8 t.integer "line_id", limit: 8 @@ -249,6 +224,17 @@ ActiveRecord::Schema.define(version: 20150130094642) do t.datetime "updated_at", null: false end + create_table "jobs", force: true do |t| + t.string "action" + t.datetime "created" + t.string "filename" + t.string "path" + t.string "referential" + t.string "status" + t.string "type" + t.datetime "updated" + end + create_table "journey_patterns", force: true do |t| t.integer "route_id", limit: 8 t.string "objectid", null: false @@ -296,6 +282,14 @@ ActiveRecord::Schema.define(version: 20150130094642) do add_index "lines", ["objectid"], name: "lines_objectid_key", unique: true, using: :btree add_index "lines", ["registration_number"], name: "lines_registration_number_key", unique: true, using: :btree + create_table "links", id: false, force: true do |t| + t.integer "job_id", limit: 8, null: false + t.string "href" + t.string "method" + t.string "rel" + t.string "type" + end + create_table "networks", force: true do |t| t.string "objectid", null: false t.integer "object_version" @@ -608,6 +602,8 @@ ActiveRecord::Schema.define(version: 20150130094642) do add_foreign_key "lines", "companies", name: "line_company_fkey", dependent: :nullify add_foreign_key "lines", "networks", name: "line_ptnetwork_fkey", dependent: :nullify + add_foreign_key "links", "jobs", name: "fk_n5ypxycc1stckgkm6ust2l6on" + add_foreign_key "routes", "lines", name: "route_line_fkey", dependent: :delete add_foreign_key "routing_constraints_lines", "lines", name: "routingconstraint_line_fkey", dependent: :delete |
