aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/controllers/lines_controller.rb4
-rw-r--r--app/controllers/referential_lines_controller.rb4
-rw-r--r--app/controllers/vehicle_journey_frequencies_controller.rb2
-rw-r--r--app/controllers/vehicle_journeys_controller.rb2
-rw-r--r--app/exporters/chouette/hub/exporter.rb46
-rw-r--r--app/models/chouette/line.rb18
-rw-r--r--app/models/chouette/vehicle_journey.rb19
-rw-r--r--app/models/chouette_transport_mode_enumerations.rb6
-rw-r--r--app/models/stif_transport_mode_enumerations.rb5
-rw-r--r--app/views/api/v1/lines/show.rabl4
-rw-r--r--app/views/lines/_form.html.slim2
-rw-r--r--app/views/referential_lines/_form.html.slim2
-rw-r--r--app/views/rule_parameter_sets/_form.html.slim2
-rw-r--r--app/views/rule_parameter_sets/show.html.slim2
-rw-r--r--app/views/shared/_lines_search_form.html.slim2
-rw-r--r--app/views/vehicle_journeys/_form.html.slim2
16 files changed, 51 insertions, 71 deletions
diff --git a/app/controllers/lines_controller.rb b/app/controllers/lines_controller.rb
index 1a5c30787..eb38352be 100644
--- a/app/controllers/lines_controller.rb
+++ b/app/controllers/lines_controller.rb
@@ -73,7 +73,7 @@ class LinesController < BreadcrumbController
end
def collection
- %w(network_id company_id group_of_lines_id comment_id transport_mode_name).each do |filter|
+ %w(network_id company_id group_of_lines_id comment_id transport_mode).each do |filter|
if params[:q] && params[:q]["#{filter}_eq"] == '-1'
params[:q]["#{filter}_eq"] = ''
params[:q]["#{filter}_blank"] = '1'
@@ -91,7 +91,7 @@ class LinesController < BreadcrumbController
end
def line_params
- params.require(:line).permit( :transport_mode, :network_id, :company_id, :objectid, :object_version, :creation_time, :creator_id, :name, :number, :published_name, :transport_mode_name, :registration_number, :comment, :mobility_restricted_suitability, :int_user_needs, :flexible_service, :group_of_lines, :group_of_line_ids, :group_of_line_tokens, :url, :color, :text_color, :stable_id, { footnotes_attributes: [ :code, :label, :_destroy, :id ] } )
+ params.require(:line).permit( :transport_mode, :network_id, :company_id, :objectid, :object_version, :creation_time, :creator_id, :name, :number, :published_name, :transport_mode, :registration_number, :comment, :mobility_restricted_suitability, :int_user_needs, :flexible_service, :group_of_lines, :group_of_line_ids, :group_of_line_tokens, :url, :color, :text_color, :stable_id, { footnotes_attributes: [ :code, :label, :_destroy, :id ] } )
end
end
diff --git a/app/controllers/referential_lines_controller.rb b/app/controllers/referential_lines_controller.rb
index c53819dd2..d767cb151 100644
--- a/app/controllers/referential_lines_controller.rb
+++ b/app/controllers/referential_lines_controller.rb
@@ -67,7 +67,7 @@ class ReferentialLinesController < ChouetteController
end
def collection
- %w(network_id company_id group_of_lines_id comment_id transport_mode_name).each do |filter|
+ %w(network_id company_id group_of_lines_id comment_id transport_mode).each do |filter|
if params[:q] && params[:q]["#{filter}_eq"] == '-1'
params[:q]["#{filter}_eq"] = ''
params[:q]["#{filter}_blank"] = '1'
@@ -92,7 +92,7 @@ class ReferentialLinesController < ChouetteController
:creator_id,
:name, :number,
:published_name,
- :transport_mode_name,
+ :transport_mode,
:registration_number,
:comment,
:mobility_restricted_suitability,
diff --git a/app/controllers/vehicle_journey_frequencies_controller.rb b/app/controllers/vehicle_journey_frequencies_controller.rb
index 683bd6d5a..9626bd36d 100644
--- a/app/controllers/vehicle_journey_frequencies_controller.rb
+++ b/app/controllers/vehicle_journey_frequencies_controller.rb
@@ -12,7 +12,7 @@ class VehicleJourneyFrequenciesController < VehicleJourneysController
def vehicle_journey_frequency_params
params.require(:vehicle_journey_frequency).permit( { footnote_ids: [] } , :journey_pattern_id, :number, :published_journey_name,
- :published_journey_identifier, :comment, :transport_mode_name,
+ :published_journey_identifier, :comment, :transport_mode,
:mobility_restricted_suitability, :flexible_service, :status_value,
:facility, :vehicle_type_identifier, :objectid, :time_table_tokens,
{ date: [ :hour, :minute ] }, :button, :referential_id, :line_id,
diff --git a/app/controllers/vehicle_journeys_controller.rb b/app/controllers/vehicle_journeys_controller.rb
index 036816b21..d1c54827b 100644
--- a/app/controllers/vehicle_journeys_controller.rb
+++ b/app/controllers/vehicle_journeys_controller.rb
@@ -81,7 +81,7 @@ class VehicleJourneysController < ChouetteController
def vehicle_journey_params
params.require(:vehicle_journey).permit( { footnote_ids: [] } , :journey_pattern_id, :number, :published_journey_name,
- :published_journey_identifier, :comment, :transport_mode_name,
+ :published_journey_identifier, :comment, :transport_mode,
:mobility_restricted_suitability, :flexible_service, :status_value,
:facility, :vehicle_type_identifier, :objectid, :time_table_tokens,
{ date: [ :hour, :minute ] }, :button, :referential_id, :line_id,
diff --git a/app/exporters/chouette/hub/exporter.rb b/app/exporters/chouette/hub/exporter.rb
index 3a9313762..d098ad15e 100644
--- a/app/exporters/chouette/hub/exporter.rb
+++ b/app/exporters/chouette/hub/exporter.rb
@@ -16,7 +16,7 @@ class Chouette::Hub::Exporter
end
def select_time_tables(start_date, end_date)
- all_time_tables = Chouette::TimeTable.all
+ all_time_tables = Chouette::TimeTable.all
time_tables = []
s_date = Date.strptime(start_date, "%Y-%m-%d")
e_date = Date.strptime(end_date, "%Y-%m-%d")
@@ -82,21 +82,21 @@ class Chouette::Hub::Exporter
Dir.mktmpdir(nil, "/tmp") { |temp_dir|
@time_tables = select_time_tables(options[:start_date], options[:end_date])
@lines = select_lines(options[:o], options[:id])
-
+
@routes = []
if @lines
@lines.each { |line| @routes << Chouette::Route.where("line_id = ?", line.id).order(:wayback) }
end
-
+
@journey_patterns = []
if @routes
@routes.each { |subroutes| @journey_patterns << Chouette::JourneyPattern.where(:route_id => subroutes.map(&:id)).order(:objectid) }
end
@journey_patterns = @journey_patterns.flatten
-
+
@routes = @routes.flatten
@vehicle_journeys = Chouette::VehicleJourney.where(:route_id => @routes.map(&:id)).order(:objectid) if routes_exportable?
-
+
rts = []
jps = []
vjs = []
@@ -113,18 +113,18 @@ class Chouette::Hub::Exporter
@vehicle_journeys = vjs.uniq
rts = rts.flatten.uniq
jps = jps.flatten.uniq
-
+
@routes.delete_if {|r| !(rts.include?(r.id)) }
@journey_patterns.delete_if {|jp| !(jps.include?(jp.id)) }
-
+
vehicle_journey_at_stops = Chouette::VehicleJourneyAtStop.where( :vehicle_journey_id => @vehicle_journeys.map(&:id) ) #.order(:id) if vehicle_journeys_exportable?
-
+
if time_tables_exportable?
Chouette::Hub::TimeTableExporter.save(@time_tables, temp_dir, hub_export)
else
log_overflow_warning(Chouette::TimeTable)
end
-
+
if journey_patterns_exportable?
Chouette::Hub::RouteExporter.save(@routes, temp_dir, hub_export)
Chouette::Hub::ItlExporter.save(@routes, temp_dir, hub_export)
@@ -133,7 +133,7 @@ class Chouette::Hub::Exporter
else
log_overflow_warning(Chouette::JourneyPattern) if routes_exportable?
end
-
+
if vehicle_journeys_exportable?
Chouette::Hub::VehicleJourneyExporter.save(@vehicle_journeys, temp_dir, hub_export)
Chouette::Hub::VehicleJourneyOperationExporter.save(@vehicle_journeys, temp_dir, hub_export)
@@ -141,40 +141,40 @@ class Chouette::Hub::Exporter
else
log_overflow_warning(Chouette::VehicleJourney)
end
-
+
stop_points = Chouette::StopPoint.where( :id => vehicle_journey_at_stops.map(&:stop_point_id)) #.order(:id)
physical_stop_areas = Chouette::StopArea.where( :id => stop_points.map(&:stop_area_id)) #.order(:parent_id)
commercial_stop_areas = Chouette::StopArea.where( :id => physical_stop_areas.map(&:parent_id)).order(:objectid)
-
+
physical_stop_areas = []
commercial_stop_areas.each { |commercial_stop_area| physical_stop_areas << Chouette::StopArea.where( :parent_id => [commercial_stop_area.id] ).order(:objectid) }
physical_stop_areas = physical_stop_areas.flatten
-
+
city_codes = Hash.new
commercial_stop_areas.each { |commercial_stop_area| city_codes[commercial_stop_area.zip_code] = commercial_stop_area.city_name if commercial_stop_area.zip_code }
physical_stop_areas.each { |physical_stop_area| city_codes[physical_stop_area.zip_code] = physical_stop_area.city_name if physical_stop_area.zip_code }
-
+
Chouette::Hub::CityCodeExporter.save(city_codes, temp_dir, hub_export)
Chouette::Hub::CommercialStopAreaExporter.save(commercial_stop_areas, temp_dir, hub_export)
Chouette::Hub::PhysicalStopAreaExporter.save(physical_stop_areas, temp_dir, hub_export)
-
+
connection_links = Chouette::ConnectionLink.where( "departure_id IN (?) AND arrival_id IN (?)", (physical_stop_areas.map(&:id) + commercial_stop_areas.map(&:id)), (physical_stop_areas.map(&:id) + commercial_stop_areas.map(&:id)) ).order(:id)
-
+
Chouette::Hub::ConnectionLinkExporter.save(connection_links, temp_dir, hub_export)
-
+
if lines_exportable?
Chouette::Hub::LineExporter.save(@lines, temp_dir, hub_export)
transport_modes = Hash.new
@lines.each do |l|
- if l.transport_mode_name
- case l.transport_mode_name
- when "Coach"
+ if l.transport_mode
+ case l.transport_mode
+ when 'coach'
if transport_modes["CAR"]
transport_modes["CAR"] += "|"+l.objectid.sub(/(\w*\:\w*\:)(\w*)/, '\2')
else
transport_modes["CAR"] = l.objectid.sub(/(\w*\:\w*\:)(\w*)/, '\2')
end
- when "Bus"
+ when 'bus'
if transport_modes["BUS"]
transport_modes["BUS"] += "|"+l.objectid.sub(/(\w*\:\w*\:)(\w*)/, '\2')
else
@@ -195,12 +195,12 @@ class Chouette::Hub::Exporter
else
log_overflow_warning(Chouette::Line)
end
-
+
if lines_exportable?
stop_areas = Chouette::StopArea.joins( :stop_points => [:route => :line]).where(:lines => {:id => lines.map(&:id)}).uniq.order(:name)
commercial_stop_areas = Chouette::StopArea.where( :id => stop_areas.map(&:parent_id).compact.uniq).order(:name)
end
-
+
::Zip::File.open(zip_file_path, ::Zip::File::CREATE) do |zipfile|
Dir[File.join(temp_dir, '*.TXT')].each do |f|
#Rails.logger.error("Adding File #{File.basename(f)}")
diff --git a/app/models/chouette/line.rb b/app/models/chouette/line.rb
index b47f7d6f9..9b18f0ffb 100644
--- a/app/models/chouette/line.rb
+++ b/app/models/chouette/line.rb
@@ -2,6 +2,7 @@ class Chouette::Line < Chouette::ActiveRecord
include DefaultNetexAttributesSupport
include LineRestrictions
include LineReferentialSupport
+ include StifTransportModeEnumerations
extend Enumerize
extend ActiveModel::Naming
@@ -35,6 +36,7 @@ class Chouette::Line < Chouette::ActiveRecord
validates_format_of :text_color, :with => %r{\A[0-9a-fA-F]{6}\Z}, :allow_nil => true, :allow_blank => true
validates_presence_of :name
+ validates :transport_mode, inclusion: { in: self.transport_mode.values }
scope :by_text, ->(text) { where('lower(name) LIKE :t or lower(published_name) LIKE :t or lower(objectid) LIKE :t or lower(comment) LIKE :t or lower(number) LIKE :t',
t: "%#{text.downcase}%") }
@@ -47,22 +49,6 @@ class Chouette::Line < Chouette::ActiveRecord
Chouette::Geometry::LinePresenter.new self
end
- def transport_mode
- # return nil if transport_mode_name is nil
- transport_mode_name && Chouette::TransportMode.new( transport_mode_name.underscore)
- end
-
- def transport_mode=(transport_mode)
- self.transport_mode_name = (transport_mode ? transport_mode.camelcase : nil)
- end
-
- @@transport_modes = nil
- def self.transport_modes
- @@transport_modes ||= Chouette::TransportMode.all.select do |transport_mode|
- transport_mode.to_i > 0
- end
- end
-
def commercial_stop_areas
Chouette::StopArea.joins(:children => [:stop_points => [:route => :line] ]).where(:lines => {:id => self.id}).uniq
end
diff --git a/app/models/chouette/vehicle_journey.rb b/app/models/chouette/vehicle_journey.rb
index 17d4d952f..b4bd38850 100644
--- a/app/models/chouette/vehicle_journey.rb
+++ b/app/models/chouette/vehicle_journey.rb
@@ -1,6 +1,7 @@
module Chouette
class VehicleJourney < TridentActiveRecord
include VehicleJourneyRestrictions
+ include StifTransportModeEnumerations
# FIXME http://jira.codehaus.org/browse/JRUBY-6358
self.primary_key = "id"
@@ -8,7 +9,6 @@ module Chouette
default_scope { where(journey_category: journey_categories[:timed]) }
- attr_accessor :transport_mode_name
attr_reader :time_table_tokens
def self.nullable_attributes
@@ -43,27 +43,10 @@ module Chouette
accepts_nested_attributes_for :vehicle_journey_at_stops, :allow_destroy => true
-
def presenter
@presenter ||= ::VehicleJourneyPresenter.new( self)
end
- def transport_mode_name
- # return nil if transport_mode is nil
- transport_mode && Chouette::TransportMode.new( transport_mode.underscore)
- end
-
- def transport_mode_name=(transport_mode_name)
- self.transport_mode = (transport_mode_name ? transport_mode_name.camelcase : nil)
- end
-
- @@transport_mode_names = nil
- def self.transport_mode_names
- @@transport_mode_names ||= Chouette::TransportMode.all.select do |transport_mode_name|
- transport_mode_name.to_i > 0
- end
- end
-
def increasing_times
previous = nil
vehicle_journey_at_stops.select{|vjas| vjas.departure_time && vjas.arrival_time}.each do |vjas|
diff --git a/app/models/chouette_transport_mode_enumerations.rb b/app/models/chouette_transport_mode_enumerations.rb
new file mode 100644
index 000000000..30e9100fc
--- /dev/null
+++ b/app/models/chouette_transport_mode_enumerations.rb
@@ -0,0 +1,6 @@
+module ChouetteTransportModeEnumerations
+ extend Enumerize
+
+ enumerize :transport_mode, in: %w(interchange unknown coach air waterborne bus ferry walk
+ metro shuttle rapid_transit taxi local_train train long_distance_train tramway trolleybus private_vehicle bicycle other)
+end
diff --git a/app/models/stif_transport_mode_enumerations.rb b/app/models/stif_transport_mode_enumerations.rb
new file mode 100644
index 000000000..a9a3fc3e0
--- /dev/null
+++ b/app/models/stif_transport_mode_enumerations.rb
@@ -0,0 +1,5 @@
+module StifTransportModeEnumerations
+ extend Enumerize
+
+ enumerize :transport_mode, in: %w(air bus coach ferry metro rail trolleyBus tram water cableway funicular other)
+end
diff --git a/app/views/api/v1/lines/show.rabl b/app/views/api/v1/lines/show.rabl
index dcd497aa5..16a265dfe 100644
--- a/app/views/api/v1/lines/show.rabl
+++ b/app/views/api/v1/lines/show.rabl
@@ -1,6 +1,6 @@
object @line
extends "api/v1/trident_objects/show"
-[ :name, :number, :published_name, :transport_mode_name, :registration_number, :comment, :mobility_restricted_suitability].each do |attr|
+[ :name, :number, :published_name, :transport_mode, :registration_number, :comment, :mobility_restricted_suitability].each do |attr|
attributes attr, :unless => lambda { |m| m.send( attr).nil?}
end
@@ -9,6 +9,6 @@ node :network_short_description do |line|
end unless root_object.network.nil?
node :company_short_description do |line|
- partial("api/v1/companies/short_description", :object => line.company)
+ partial("api/v1/companies/short_description", :object => line.company)
end unless root_object.company.nil?
diff --git a/app/views/lines/_form.html.slim b/app/views/lines/_form.html.slim
index 6c847b275..cbb50ae28 100644
--- a/app/views/lines/_form.html.slim
+++ b/app/views/lines/_form.html.slim
@@ -6,7 +6,7 @@
= form.input :published_name
= form.input :registration_number, :input_html => { :title => t("formtastic.titles#{format_restriction_for_locales(@line_referential)}.line.registration_number")}
= form.input :number, :input_html => { :title => t("formtastic.titles#{format_restriction_for_locales(@line_referential)}.line.number") }
- = form.input :transport_mode, as: :select, :collection => @line.line_referential.transport_modes, :include_blank => false, :member_label => Proc.new { |mode| t("transport_modes.label.#{mode}") }
+ = form.input :transport_mode, include_blank: false
= form.input :color, as: :string
= form.input :text_color
= form.input :stable_id
diff --git a/app/views/referential_lines/_form.html.slim b/app/views/referential_lines/_form.html.slim
index 08a011017..ca90ef8c3 100644
--- a/app/views/referential_lines/_form.html.slim
+++ b/app/views/referential_lines/_form.html.slim
@@ -6,7 +6,7 @@
= form.input :published_name
= form.input :registration_number, :input_html => { :title => t("formtastic.titles#{format_restriction_for_locales(@referential)}.line.registration_number") }
= form.input :number, :input_html => { :title => t("formtastic.titles#{format_restriction_for_locales(@referential)}.line.number") }
- = form.input :transport_mode, as: :select, :collection => @line.line_referential.transport_modes, :include_blank => false, :member_label => Proc.new { |mode| t("transport_modes.label.#{mode}") }
+ = form.input :transport_mode, include_blank: false
= form.input :color, as: :string
= form.input :text_color
= form.input :stable_id
diff --git a/app/views/rule_parameter_sets/_form.html.slim b/app/views/rule_parameter_sets/_form.html.slim
index de3368a1b..b93caae58 100644
--- a/app/views/rule_parameter_sets/_form.html.slim
+++ b/app/views/rule_parameter_sets/_form.html.slim
@@ -36,7 +36,7 @@
tbody
/ To be removed, see #1936
- - Chouette::Line.transport_modes.map(&:to_s).each do |mode|
+ - Chouette::Line.transport_mode.values.each do |mode|
tr
== render partial: "mode_fields", :locals => { f: form, mode: mode }
diff --git a/app/views/rule_parameter_sets/show.html.slim b/app/views/rule_parameter_sets/show.html.slim
index af7ecb0a4..6adfeab89 100644
--- a/app/views/rule_parameter_sets/show.html.slim
+++ b/app/views/rule_parameter_sets/show.html.slim
@@ -96,7 +96,7 @@
- unless prefix == "allowed_transport"
th = RuleParameterSet.human_attribute_name(prefix)
/ To be removed, see #1936
- - Chouette::Line.transport_modes.map(&:to_s).each do |mode|
+ - Chouette::Line.transport_mode.values.each do |mode|
- if @rule_parameter_set.allowed(mode)
tr
td = t("transport_modes.label.#{mode}")
diff --git a/app/views/shared/_lines_search_form.html.slim b/app/views/shared/_lines_search_form.html.slim
index 30cdb1483..f7c3dc4ee 100644
--- a/app/views/shared/_lines_search_form.html.slim
+++ b/app/views/shared/_lines_search_form.html.slim
@@ -19,6 +19,6 @@
- options_container = (referential_type == 'referential' && filter == 'transport_modes') ? referential.line_referential : referential
- if options_container && options_container.send(filter).any?
- options = options_container.send(filter).collect { |f| [f.name, filter == 'transport_modes' ? f.name : f.id] }.unshift([t("lines.index.no_#{filter}"), -1])
- - matcher = filter == 'transport_modes' ? :transport_mode_name_eq : :"#{filter == 'group_of_lines' ? filter : filter.singularize}_id_eq"
+ - matcher = filter == 'transport_modes' ? :transport_mode_eq : :"#{filter == 'group_of_lines' ? filter : filter.singularize}_id_eq"
.col-xs-3
= f.select(matcher, options, { include_blank: '' }, { class: 'form-control', style: 'width: 100%', 'data-select2ed': 'true', 'data-select2ed-placeholder': t("lines.index.all_#{filter}") })
diff --git a/app/views/vehicle_journeys/_form.html.slim b/app/views/vehicle_journeys/_form.html.slim
index 61d6b0e06..c738b8b00 100644
--- a/app/views/vehicle_journeys/_form.html.slim
+++ b/app/views/vehicle_journeys/_form.html.slim
@@ -7,7 +7,7 @@
= form.input :published_journey_name
= form.input :published_journey_identifier
= form.input :comment
- = form.input :transport_mode_name, as: :select, :collection => @line.line_referential.transport_modes, :include_blank => true, :member_label => Proc.new { |mode| t("transport_modes.label.#{mode}") }
+ = form.input :transport_mode, include_blank: false
= form.input :mobility_restricted_suitability, as: :select, :collection => [[vehicle_journey.human_attribute_name("accessible"), true], [vehicle_journey.human_attribute_name("not_accessible"), false]], :include_blank => true
= form.input :flexible_service, as: :select, :collection => [[vehicle_journey.human_attribute_name("on_demand_fs"), true], [vehicle_journey.human_attribute_name("regular_fs"), false]], :include_blank => true
= form.input :status_value