diff options
| -rw-r--r-- | app/models/rule_parameter_set.rb | 34 | ||||
| -rw-r--r-- | app/models/vehicle_journey_export.rb | 6 | ||||
| -rw-r--r-- | app/models/vehicle_journey_import.rb | 6 | ||||
| -rw-r--r-- | app/views/rule_parameter_sets/_form.html.erb | 29 | ||||
| -rw-r--r-- | app/views/rule_parameter_sets/_mode_fields.html.erb | 13 | ||||
| -rw-r--r-- | app/views/rule_parameter_sets/show.html.erb | 68 | ||||
| -rw-r--r-- | config/deploy.rb | 2 | ||||
| -rw-r--r-- | config/locales/compliance_check_results.yml | 21 | ||||
| -rw-r--r-- | config/locales/rule_parameter_sets.yml | 83 | ||||
| -rw-r--r-- | config/locales/transport_modes.yml | 2 | ||||
| -rw-r--r-- | config/locales/vehicle_journey_exports.yml | 4 | ||||
| -rw-r--r-- | spec/fixtures/vehicle_journey_imports_valid.csv | 2 | ||||
| -rw-r--r-- | spec/fixtures/vehicle_journey_imports_with_vj_invalid.csv | 2 | ||||
| -rw-r--r-- | spec/fixtures/vehicle_journey_imports_with_vjas_bad_order.csv | 2 | ||||
| -rw-r--r-- | spec/fixtures/vehicle_journey_imports_with_vjas_invalid.csv | 2 |
15 files changed, 200 insertions, 76 deletions
diff --git a/app/models/rule_parameter_set.rb b/app/models/rule_parameter_set.rb index 5177d6ecc..0c7a98300 100644 --- a/app/models/rule_parameter_set.rb +++ b/app/models/rule_parameter_set.rb @@ -9,13 +9,14 @@ class RuleParameterSet < ActiveRecord::Base attr_accessible :name, :referential_id def self.mode_attribute_prefixes - %w( inter_stop_area_distance_min inter_stop_area_distance_max speed_max speed_min inter_stop_duration_variation_max) + %w( allowed_transport inter_stop_area_distance_min inter_stop_area_distance_max speed_max speed_min inter_stop_duration_variation_max) end def self.general_attributes %w( inter_stop_area_distance_min parent_stop_area_distance_max stop_areas_area inter_access_point_distance_min inter_connection_link_distance_max walk_default_speed_max walk_occasional_traveller_speed_max walk_frequent_traveller_speed_max walk_mobility_restricted_traveller_speed_max - inter_access_link_distance_max inter_stop_duration_max facility_stop_area_distance_max) + inter_access_link_distance_max inter_stop_duration_max facility_stop_area_distance_max + vehicle_journey_number_max vehicle_journey_number_min check_allowed_transport_modes) end def self.all_modes Chouette::TransportMode.all.map { |m| m.to_s} @@ -75,7 +76,8 @@ class RuleParameterSet < ActiveRecord::Base :walk_mobility_restricted_traveller_speed_max => 1, :inter_access_link_distance_max => 300, :inter_stop_duration_max => 40, - :facility_stop_area_distance_max => 300 + :facility_stop_area_distance_max => 300, + :check_allowed_transport_modes => false } if mode && self.mode_default_params[ mode.to_sym] base.merge!( self.mode_default_params[ mode.to_sym]) @@ -85,108 +87,126 @@ class RuleParameterSet < ActiveRecord::Base def self.mode_default_params { :coach => { + :allowed_transport_mode_coach => false, :inter_stop_area_distance_min_mode_coach => 500, :inter_stop_area_distance_max_mode_coach => 10000, :speed_max_mode_coach => 90, :speed_min_mode_coach => 40, :inter_stop_duration_variation_max_mode_coach => 20}, :air => { + :allowed_transport_mode_air => false, :inter_stop_area_distance_min_mode_air => 200, :inter_stop_area_distance_max_mode_air => 10000, :speed_max_mode_air => 800, :speed_min_mode_air => 700, :inter_stop_duration_variation_max_mode_air => 60}, :waterborne => { + :allowed_transport_mode_waterborne => false, :inter_stop_area_distance_min_mode_waterborne => 200, :inter_stop_area_distance_max_mode_waterborne => 10000, :speed_max_mode_waterborne => 40, :speed_min_mode_waterborne => 5, :inter_stop_duration_variation_max_mode_waterborne => 60}, :bus => { + :allowed_transport_mode_bus => false, :inter_stop_area_distance_min_mode_bus => 100, :inter_stop_area_distance_max_mode_bus => 10000, :speed_max_mode_bus => 60, :speed_min_mode_bus => 10, :inter_stop_duration_variation_max_mode_bus => 15}, :ferry => { + :allowed_transport_mode_ferry => false, :inter_stop_area_distance_min_mode_ferry => 200, :inter_stop_area_distance_max_mode_ferry => 10000, :speed_max_mode_ferry => 40, :speed_min_mode_ferry => 5, :inter_stop_duration_variation_max_mode_ferry => 60}, :walk => { + :allowed_transport_mode_walk => false, :inter_stop_area_distance_min_mode_walk => 1, :inter_stop_area_distance_max_mode_walk => 10000, :speed_max_mode_walk => 6, :speed_min_mode_walk => 1, :inter_stop_duration_variation_max_mode_walk => 10}, :metro => { + :allowed_transport_mode_metro => false, :inter_stop_area_distance_min_mode_metro => 300, :inter_stop_area_distance_max_mode_metro => 2000, :speed_max_mode_metro => 60, :speed_min_mode_metro => 30, :inter_stop_duration_variation_max_mode_metro => 30}, :shuttle => { + :allowed_transport_mode_shuttle => false, :inter_stop_area_distance_min_mode_shuttle => 500, :inter_stop_area_distance_max_mode_shuttle => 10000, :speed_max_mode_shuttle => 80, :speed_min_mode_shuttle => 20, :inter_stop_duration_variation_max_mode_shuttle => 10}, :rapid_transit => { + :allowed_transport_mode_rapid_transit => false, :inter_stop_area_distance_min_mode_rapid_transit => 2000, :inter_stop_area_distance_max_mode_rapid_transit => 500000, :speed_max_mode_rapid_transit => 300, :speed_min_mode_rapid_transit => 20, :inter_stop_duration_variation_max_mode_rapid_transit => 60}, :taxi => { + :allowed_transport_mode_taxi => false, :inter_stop_area_distance_min_mode_taxi => 500, :inter_stop_area_distance_max_mode_taxi => 300000, :speed_max_mode_taxi => 130, :speed_min_mode_taxi => 20, :inter_stop_duration_variation_max_mode_taxi => 60}, :local_train => { + :allowed_transport_mode_local_train => false, :inter_stop_area_distance_min_mode_local_train => 2000, :inter_stop_area_distance_max_mode_local_train => 500000, :speed_max_mode_local_train => 300, :speed_min_mode_local_train => 20, :inter_stop_duration_variation_max_mode_local_train => 60}, :train => { + :allowed_transport_mode_train => false, :inter_stop_area_distance_min_mode_train => 2000, :inter_stop_area_distance_max_mode_train => 500000, :speed_max_mode_train => 300, :speed_min_mode_train => 20, :inter_stop_duration_variation_max_mode_train => 60}, :long_distance_train => { + :allowed_transport_mode_long_distance_train => false, :inter_stop_area_distance_min_mode_long_distance_train => 2000, :inter_stop_area_distance_max_mode_long_distance_train => 500000, :speed_max_mode_long_distance_train => 300, :speed_min_mode_long_distance_train => 20, :inter_stop_duration_variation_max_mode_long_distance_train => 60}, :tramway => { + :allowed_transport_mode_tramway => false, :inter_stop_area_distance_min_mode_tramway => 300, :inter_stop_area_distance_max_mode_tramway => 2000, :speed_max_mode_tramway => 50, :speed_min_mode_tramway => 20, :inter_stop_duration_variation_max_mode_tramway => 30}, :trolleybus => { + :allowed_transport_mode_trolleybus => false, :inter_stop_area_distance_min_mode_trolleybus => 300, :inter_stop_area_distance_max_mode_trolleybus => 2000, :speed_max_mode_trolleybus => 50, :speed_min_mode_trolleybus => 20, :inter_stop_duration_variation_max_mode_trolleybus => 30}, :private_vehicle => { + :allowed_transport_mode_private_vehicle => false, :inter_stop_area_distance_min_mode_private_vehicle => 500, :inter_stop_area_distance_max_mode_private_vehicle => 300000, :speed_max_mode_private_vehicle => 130, :speed_min_mode_private_vehicle => 20, :inter_stop_duration_variation_max_mode_private_vehicle => 60}, :bicycle => { + :allowed_transport_mode_bicycle => false, :inter_stop_area_distance_min_mode_bicycle => 300, :inter_stop_area_distance_max_mode_bicycle => 30000, :speed_max_mode_bicycle => 40, :speed_min_mode_bicycle => 10, :inter_stop_duration_variation_max_mode_bicycle => 10}, :other => { + :allowed_transport_mode_other => false, :inter_stop_area_distance_min_mode_other => 300, :inter_stop_area_distance_max_mode_other => 30000, :speed_max_mode_other => 40, @@ -208,6 +228,12 @@ class RuleParameterSet < ActiveRecord::Base :name => "valeurs par defaut" }.merge( mode_attributes)) end + + def allowed(mode) + return true unless self.check_allowed_transport_modes + puts "#{mode} = "+self.send("allowed_transport_mode_#{mode}").to_s + return self.send("allowed_transport_mode_#{mode}") == "1" + end all_modes.each do |mode| mode_attribute_prefixes.each do |prefix| @@ -217,7 +243,7 @@ class RuleParameterSet < ActiveRecord::Base general_attributes.each do |attribute| parameter attribute.to_sym - unless attribute == "stop_areas_area" + unless attribute == "stop_areas_area" || attribute == "check_allowed_transport_modes" validates attribute.to_sym, :numericality => true, :allow_nil => true, :allow_blank => true end end diff --git a/app/models/vehicle_journey_export.rb b/app/models/vehicle_journey_export.rb index 3de88b608..4c2c62fa8 100644 --- a/app/models/vehicle_journey_export.rb +++ b/app/models/vehicle_journey_export.rb @@ -54,8 +54,8 @@ class VehicleJourneyExport (vehicle_journeys.collect{ |vj| vj.number ? vj.number.to_s : "" } ) end - def vehicle_identifier_array - (vehicle_journeys.collect{ |vj| vj.vehicle_type_identifier ? vj.vehicle_type_identifier : "" } ) + def published_journey_name_array + (vehicle_journeys.collect{ |vj| vj.published_journey_name ? vj.published_journey_name : "" } ) end def flexible_service_array @@ -82,7 +82,7 @@ class VehicleJourneyExport CSV.generate(options) do |csv| csv << column_names csv << ["", label("number")] + number_array - csv << ["", label("vehicle_identifier")] + vehicle_identifier_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 diff --git a/app/models/vehicle_journey_import.rb b/app/models/vehicle_journey_import.rb index 20faef6cc..f710eeab7 100644 --- a/app/models/vehicle_journey_import.rb +++ b/app/models/vehicle_journey_import.rb @@ -96,7 +96,7 @@ class VehicleJourneyImport # fixed rows (first = 1) number_row = 2 - vehicle_type_identifier_row = 3 + published_journey_name_row = 3 mobility_row = 4 flexible_service_row = 5 time_tables_row = 6 @@ -141,8 +141,8 @@ class VehicleJourneyImport # number vehicle_journey.number = as_integer(spreadsheet.row(number_row)[i-1]) - # vehicle_type_identifier - vehicle_journey.vehicle_type_identifier = spreadsheet.row(vehicle_type_identifier_row)[i-1] + # published_name + vehicle_journey.published_journey_name = spreadsheet.row(published_journey_name_row)[i-1] # flexible_service vehicle_journey.flexible_service = as_boolean(spreadsheet.row(flexible_service_row)[i-1]) diff --git a/app/views/rule_parameter_sets/_form.html.erb b/app/views/rule_parameter_sets/_form.html.erb index 1f12d6b14..90d6850fb 100644 --- a/app/views/rule_parameter_sets/_form.html.erb +++ b/app/views/rule_parameter_sets/_form.html.erb @@ -14,10 +14,29 @@ <%= form.input :inter_access_link_distance_max, :as => :number %> <%= form.input :inter_stop_duration_max, :as => :number %> <%= form.input :facility_stop_area_distance_max, :as => :number %> - + + <%= form.input :vehicle_journey_number_min, :as => :number %> + <%= form.input :vehicle_journey_number_max, :as => :number %> + <%= form.input :check_allowed_transport_modes, :as => :boolean %> + + <table class="table table-striped table-condensed"> + <tr> + <th><%= t("transport_modes.name") %></th> + <% RuleParameterSet.mode_attribute_prefixes.each do |prefix| %> + <% if prefix == "allowed_transport" %> + <% hidden = (@rule_parameter_set.check_allowed_transport_modes == "1") ? "" : 'display:none;'%> + <th class="allowed" style="<%= hidden %>" ><%= RuleParameterSet.human_attribute_name(prefix) %></th> + <% else %> + <th><%= RuleParameterSet.human_attribute_name(prefix) %></th> + <% end %> + <% end %> + </tr> <% Chouette::Line.transport_modes.map(&:to_s).each do |mode| %> + <tr> <%= render :partial => "mode_fields", :locals => { :f => form, :mode => mode} %> + </tr> <% end %> + </table> <% end %> <%= form.actions do %> @@ -25,3 +44,11 @@ <%= form.action :cancel, :as => :link %> <% end %> <% end %> + +<script> + $(function() { + $( "#rule_parameter_set_check_allowed_transport_modes").change( function(){ + $(".allowed").toggle(); + }); + }); +</script> diff --git a/app/views/rule_parameter_sets/_mode_fields.html.erb b/app/views/rule_parameter_sets/_mode_fields.html.erb index 0a17b4d82..a305c4d0a 100644 --- a/app/views/rule_parameter_sets/_mode_fields.html.erb +++ b/app/views/rule_parameter_sets/_mode_fields.html.erb @@ -1,5 +1,12 @@ -<%= f.inputs t("transport_modes.label.#{mode}"), :id => "specific_parameters_#{mode}" do %> + <td><%= t("transport_modes.label.#{mode}") %></td> <% RuleParameterSet.mode_attribute_prefixes.each do |prefix| %> - <%= f.input "#{prefix}_mode_#{mode}".to_sym, :as => :number, :label => RuleParameterSet.human_attribute_name(prefix), :wrapper_html => { :class => "special"} %> + <% if prefix == "allowed_transport" %> + <% hidden = (@rule_parameter_set.check_allowed_transport_modes == "1") ? "" : 'display: none;'%> + <td class="allowed" style="<%= hidden %>" > + <%= f.check_box "#{prefix}_mode_#{mode}".to_sym, :class => "special" %> + <% else%> + <td> + <%= f.number_field "#{prefix}_mode_#{mode}".to_sym, :class => "special" %> + <% end %> + </td> <% end %> -<% end %> diff --git a/app/views/rule_parameter_sets/show.html.erb b/app/views/rule_parameter_sets/show.html.erb index f4ca5e912..66e002b94 100644 --- a/app/views/rule_parameter_sets/show.html.erb +++ b/app/views/rule_parameter_sets/show.html.erb @@ -4,10 +4,6 @@ <div class="summary"> <p> - <label><%= RuleParameterSet.human_attribute_name("name") %>: </label> - <%= @rule_parameter_set.name %> - </p> - <p> <label><%= RuleParameterSet.human_attribute_name("stop_areas_area") %>: </label> <%= @rule_parameter_set.stop_areas_area %> </p> @@ -72,25 +68,53 @@ <label><%= t(".inter_stop_duration_max") %>: </label> <%= @rule_parameter_set.inter_stop_duration_max %> </p> - <div class="rule_parameter_by_mode"> - <label><%= t(".rule_parameter_by_mode") %>: </label> - <select id="mode" > - <%= options_for_select( Chouette::Line.transport_modes.map(&:to_s).map { |s| [ I18n.t("transport_modes.label.#{s}"), s]}, 1) %> - </select> - <% Chouette::Line.transport_modes.map(&:to_s).each_with_index do |mode, index| %> - <% selected_class = (index==0) ? 'selected' : '' %> - <% style = (index==0) ? "style='display: block;'" : '' %> - <div class='<%= "#{mode} mode_specific #{selected_class}" %>' <%= style %> > - <% RuleParameterSet.mode_attribute_prefixes.each do |prefix| %> - <% unless @rule_parameter_set.send("#{prefix}_mode_#{mode}" ).blank? %> - <p> - <label><%= RuleParameterSet.human_attribute_name( prefix) %>: </label> - <%= @rule_parameter_set.send "#{prefix}_mode_#{mode}" %> - </p> - <% end %> - <% end %> + <% if @rule_parameter_set.vehicle_journey_number_min.present? && @rule_parameter_set.vehicle_journey_number_max.present? %> + <div class="attributes_group" > + <span class="title"><%= t(".vehicle_journey_number_bounds") %></span> + <div class="columns"> + <div class="two_columns"> + <label><%= t(".min_value") %> : </label> + <span class="value"><%= @rule_parameter_set.vehicle_journey_number_min %></span> + </div> + <div class="two_columns"> + <label><%= t(".max_value") %> : </label> + <span class="value"><%= @rule_parameter_set.vehicle_journey_number_max %></span> + </div> </div> - <% end %> + </div> + <% end %> + <p> + <label><%= RuleParameterSet.human_attribute_name("check_allowed_transport_modes") %>: </label> + <%= @rule_parameter_set.check_allowed_transport_modes ? t("true") : t("false") %> + </p> + + <div class="rule_parameter_by_mode"> + <label><%= t(".rule_parameter_by_mode") %> + <%= t(".modes_allowed") if @rule_parameter_set.check_allowed_transport_modes %> + </label> + <table class="table table-striped table-condensed"> + <tr> + <th><%= t("transport_modes.name") %></th> + <% RuleParameterSet.mode_attribute_prefixes.each do |prefix| %> + <% unless prefix == "allowed_transport" %> + <th><%= RuleParameterSet.human_attribute_name(prefix) %></th> + <% end %> + <% end %> + </tr> + <% Chouette::Line.transport_modes.map(&:to_s).each do |mode| %> + <% if @rule_parameter_set.allowed(mode) %> + <tr> + <td><%= t("transport_modes.label.#{mode}") %></td> + <% RuleParameterSet.mode_attribute_prefixes.each do |prefix| %> + + <% unless prefix == "allowed_transport" %> + <td><%= @rule_parameter_set.send "#{prefix}_mode_#{mode}" %></td> + <% end %> + <% end %> + </tr> + <% end %> + <% end %> + </table> </div> </div> </div> diff --git a/config/deploy.rb b/config/deploy.rb index ba622453f..5d3324c74 100644 --- a/config/deploy.rb +++ b/config/deploy.rb @@ -12,7 +12,7 @@ set :group_writable, true set :rake, "bundle exec rake" set :keep_releases, 4 set :rails_env, "production" #added for delayed job -set :user, "zbouziane" +set :user, "metienne" set :deploy_via, :copy set :copy_via, :scp set :copy_exclude, ".git/*" diff --git a/config/locales/compliance_check_results.yml b/config/locales/compliance_check_results.yml index cc6196e52..96ac952fe 100644 --- a/config/locales/compliance_check_results.yml +++ b/config/locales/compliance_check_results.yml @@ -96,6 +96,7 @@ en: detail_3_stoparea_3: "Les arrêts %{name} (%{objectId} et %{areaId}) sont desservis par les mêmes lignes" detail_3_stoparea_4: "L'arrêt %{name} (%{objectId}) est en dehors du périmètre de contrôle" detail_3_stoparea_5: "L'arrêt %{name} (%{objectId}) est localisé trop loin de son parent %{parentName} (%{parentId}) : distance %{distance} > %{distanceLimit}" + detail_3_stoparea_6: "L'arrêt %{name} (%{objectId}) n'a pas de code commune" detail_3_accesspoint_1: "L'accès %{name} (%{objectId}) de l'arrêt %{areaName} (%{areaId}) n'est pas géolocalisé" detail_3_accesspoint_2: "L'accès %{name} (%{objectId}) est localisé trop près de l'accès %{accessName} (%{accessId}) : distance %{distance} < %{distanceLimit}" detail_3_accesspoint_3: "L'accès %{name} (%{objectId}) est localisé trop loin de son parent %{parentName} (%{parentId}) : distance %{distance} > %{distanceLimit}" @@ -113,6 +114,7 @@ en: detail_3_accesslink_3_4: "Sur le lien d'accès %{name} (%{objectId}), la vitesse pour un voyageur à mobilité réduite %{speed} est supérieure à %{speedLimit} km/h" detail_3_line_1: "La ligne %{number} : %{name} ( %{objectId}) a une ligne homonyme sur le même réseau %{networkName} (%{networkId})" detail_3_line_2: "La ligne %{number} : %{name} ( %{objectId}) n'a pas de séquence d'arrêts" + detail_3_line_3: "La ligne %{number} : %{name} ( %{objectId}) a un mode de transport interdit %{transportMode}" detail_3_route_1: "Sur la séquence d'arrêt %{objectId}, l'arrêt %{areaName} (%{areaId}) est desservi 2 fois consécutivement" detail_3_route_2: "Les terminus de la séquence d'arrêt %{objectId} ne sont pas cohérent avec ceux de la séquence opposée %{routeId} : l'une part de %{firstName} (%firstId}) et l'autre arrive à %{lastName} (%lastId})" detail_3_route_3: "Sur la séquence d'arrêt %{objectId}, entre les arrêts de rang %{firstStopRank} (%{firstStop} et %{nextStopRank} (%{nextStop}, distance %{distance} %{orientation} %{distanceLimit} " @@ -129,6 +131,10 @@ en: detail_3_vehiclejourney_2_3: "La course %{objectId} a une vitesse %{speed} > %{speedLimit} km/h entre les arrêts n° %{firstStopRank} (%{firstStopName}) et n° %{lastStopRank} (%{lastStopName})" detail_3_vehiclejourney_3: "La course %{objectId} a une variation de progression entre les arrêts n° %{firstStopRank} (%{firstStopName}) et n° %{lastStopRank} (%{lastStopName}) %{variation} > %{maxVariation} avec la course %{vehicleJourneyId}" detail_3_vehiclejourney_4: "La course %{objectId} n'a pas de calendrier d'application" + detail_3_vehiclejourney_5_1: "La course %{objectId} n'a pas de numéro" + detail_3_vehiclejourney_5_2: "La course %{objectId} a un numéro hors plage (%{number})" + detail_3_vehiclejourney_5_3: "La course %{objectId} a un numéro partagé avec la course %{vehicleJourneyId}" + detail_3_vehiclejourney_6: "La course %{objectId} a un mode de transport interdit %{transportMode}" detail_3_facility_1: "L'équipement %{name} (%{objectId}) n'est pas géolocalisé" detail_3_facility_2: "L'équipement %{name} (%{objectId}) est localisé trop loin de son parent %{areaName} (%{areaId}) : distance %{distance} > %{distanceLimit}" activerecord: @@ -217,6 +223,7 @@ en: 3-StopArea-3: "Vérification de l'unicité des arrêts" 3-StopArea-4: "Vérification de la géolocalisation des arrêts" 3-StopArea-5: "Vérification de la position relative des arrêts et de leur parent" + 3-StopArea-6: "Vérification de l'information de commune des arrêts" 3-AccessPoint-1: "Vérification de la géolocalisation de tous les accès" 3-AccessPoint-2: "Vérification que deux accès de nom différents ne sont pas trop proches" 3-AccessPoint-3: "Vérification de la proximité entre les accès et leur arrêt de rattachement" @@ -228,6 +235,7 @@ en: 3-AccessLink-3: "Vérification de la vitesse de parcours entre les deux extrémités d'un lien d'accès" 3-Line-1: "Vérification de la non homonymie des lignes" 3-Line-2: "Vérification de la présence de séquences d'arrêts sur la ligne" + 3-Line-3: "Vérification des modes de transport" 3-Route-1: "Vérification de la succession des arrêts de la séquence" 3-Route-2: "Vérification de la séquence inverse" 3-Route-3: "Vérification de la distance entre deux arrêts successifs de la séquence" @@ -242,6 +250,8 @@ en: 3-VehicleJourney-2: "Vérification de la vitesse de transfert entre deux arrêts" 3-VehicleJourney-3: "Vérification de la cohérence des courses successives desservant deux mêmes arrêts" 3-VehicleJourney-4: "Vérification de l'affectation des courses à un calendrier" + 3-VehicleJourney-5: "Vérification des numéros de course" + 3-VehicleJourney-6: "Vérification des modes de transport" 3-Facility-1: "Vérification de la géolocalisation de tous les accès" 3-Facility-2: "Vérification de la proximité entre les équipements et leur arrêt de rattachement" severity: "Severity" @@ -351,6 +361,7 @@ fr: detail_3_stoparea_3: "Les arrêts %{name} (%{objectId} et %{areaId}) sont desservis par les mêmes lignes" detail_3_stoparea_4: "L'arrêt %{name} (%{objectId}) est en dehors du périmètre de contrôle" detail_3_stoparea_5: "L'arrêt %{name} (%{objectId}) est localisé trop loin de son parent %{parentName} (%{parentId}) : distance %{distance} > %{distanceLimit}" + detail_3_stoparea_6: "L'arrêt %{name} (%{objectId}) n'a pas de code commune" detail_3_accesspoint_1: "L'accès %{name} (%{objectId}) de l'arrêt %{areaName} (%{areaId}) n'est pas géolocalisé" detail_3_accesspoint_2: "L'accès %{name} (%{objectId}) est localisé trop près de l'accès %{accessName} (%{accessId}) : distance %{distance} < %{distanceLimit}" detail_3_accesspoint_3: "L'accès %{name} (%{objectId}) est localisé trop loin de son parent %{parentName} (%{parentId}) : distance %{distance} > %{distanceLimit}" @@ -368,6 +379,7 @@ fr: detail_3_accesslink_3_4: "Sur le lien d'accès %{name} (%{objectId}), la vitesse pour un voyageur à mobilité réduite %{speed} est supérieure à %{speedLimit} km/h" detail_3_line_1: "La ligne %{number} : %{name} ( %{objectId}) a une ligne homonyme sur le même réseau %{networkName} (%{networkId})" detail_3_line_2: "La ligne %{number} : %{name} ( %{objectId}) n'a pas de séquence d'arrêts" + detail_3_line_3: "La ligne %{number} : %{name} ( %{objectId}) a un mode de transport interdit %{transportMode}" detail_3_route_1: "Sur la séquence d'arrêt %{objectId}, l'arrêt %{areaName} (%{areaId}) est desservi 2 fois consécutivement" detail_3_route_2: "Les terminus de la séquence d'arrêt %{objectId} ne sont pas cohérent avec ceux de la séquence opposée %{routeId} : l'une part de %{firstName} (%firstId}) et l'autre arrive à %{lastName} (%lastId})" detail_3_route_3: "Sur la séquence d'arrêt %{objectId}, entre les arrêts de rang %{firstStopRank} (%{firstStop} et %{nextStopRank} (%{nextStop}, distance %{distance} %{orientation} %{distanceLimit} " @@ -384,6 +396,10 @@ fr: detail_3_vehiclejourney_2_3: "La course %{objectId} a une vitesse %{speed} > %{speedLimit} km/h entre les arrêts n° %{firstStopRank} (%{firstStopName}) et n° %{lastStopRank} (%{lastStopName})" detail_3_vehiclejourney_3: "La course %{objectId} a une variation de progression entre les arrêts n° %{firstStopRank} (%{firstStopName}) et n° %{lastStopRank} (%{lastStopName}) %{variation} > %{maxVariation} avec la course %{vehicleJourneyId}" detail_3_vehiclejourney_4: "La course %{objectId} n'a pas de calendrier d'application" + detail_3_vehiclejourney_5_1: "La course %{objectId} n'a pas de numéro" + detail_3_vehiclejourney_5_2: "La course %{objectId} a un numéro hors plage (%{number})" + detail_3_vehiclejourney_5_3: "La course %{objectId} a un numéro partagé avec la course %{vehicleJourneyId}" + detail_3_vehiclejourney_6: "La course %{objectId} a un mode de transport interdit %{transportMode}" detail_3_facility_1: "L'équipement %{name} (%{objectId}) n'est pas géolocalisé" detail_3_facility_2: "L'équipement %{name} (%{objectId}) est localisé trop loin de son parent %{areaName} (%{areaId}) : distance %{distance} > %{distanceLimit}" @@ -473,6 +489,7 @@ fr: 3-StopArea-3: "Vérification de l'unicité des arrêts" 3-StopArea-4: "Vérification de la géolocalisation des arrêts" 3-StopArea-5: "Vérification de la position relative des arrêts et de leur parent" + 3-StopArea-6: "Vérification de l'information de commune des arrêts" 3-AccessPoint-1: "Vérification de la géolocalisation de tous les accès" 3-AccessPoint-2: "Vérification que deux accès de nom différents ne sont pas trop proches" 3-AccessPoint-3: "Vérification de la proximité entre les accès et leur arrêt de rattachement" @@ -483,6 +500,8 @@ fr: 3-AccessLink-2: "Vérification de la cohérence entre la distance fournie sur le lien d'accès et la distance géographique entre les deux extrémités du lien d'accès" 3-AccessLink-3: "Vérification de la vitesse de parcours entre les deux extrémités d'un lien d'accès" 3-Line-1: "Vérification de la non homonymie des lignes" + 3-Line-2: "Vérification de la présence de séquences d'arrêts sur la ligne" + 3-Line-3: "Vérification des modes de transport" 3-Route-1: "Vérification de la succession des arrêts de la séquence" 3-Route-2: "Vérification de la séquence inverse" 3-Route-3: "Vérification de la distance entre deux arrêts successifs de la séquence" @@ -495,6 +514,8 @@ fr: 3-VehicleJourney-2: "Vérification de la vitesse de transfert entre deux arrêts" 3-VehicleJourney-3: "Vérification de la cohérence des courses successives desservant deux mêmes arrêts" 3-VehicleJourney-4: "Vérification de l'affectation des courses à un calendrier" + 3-VehicleJourney-5: "Vérification des numéros de course" + 3-VehicleJourney-6: "Vérification des modes de transport" 3-Facility-1: "Vérification de la géolocalisation de tous les accès" 3-Facility-2: "Vérification de la proximité entre les équipements et leur arrêt de rattachement" severity: "Sévérité" diff --git a/config/locales/rule_parameter_sets.yml b/config/locales/rule_parameter_sets.yml index e3626fc04..b1f45c4f4 100644 --- a/config/locales/rule_parameter_sets.yml +++ b/config/locales/rule_parameter_sets.yml @@ -14,20 +14,25 @@ en: add_mode_parameter_set: "Add mode specific parameter set" show: title: "Parameter Set %{rule_parameter_set}" - max_distance: "Maximum distance" - min_distance: "Minimum distance" - walk_speed: "Maximum walk speed for" - inter_stop_area_distance_min: "between 2 stop areas having different parent" - parent_stop_area_distance_max: "between a stop area and its own parent" - inter_access_point_distance_min: "between 2 access having different name for a commun stop area" - inter_connection_link_distance_max: "between stop area departure and stop area arrival in a connection link" - walk_default_speed_max: "a regular traveller" - walk_occasional_traveller_speed_max: "an occasional traveller" - walk_frequent_traveller_speed_max: "a frequent traveller" - walk_mobility_restricted_traveller_speed_max: "for a mobility restricted traveller" - inter_access_link_distance_max: "Access link maximum distance" + max_distance: "Maximum distance between " + min_distance: "Minimum distance between " + walk_speed: "Maximum walk speed for travellers" + inter_stop_area_distance_min: "2 stop areas having different parent" + parent_stop_area_distance_max: "a stop area and its own parent" + inter_access_point_distance_min: "2 access with different names on a same stop area" + inter_connection_link_distance_max: "stop areas in a connection link" + walk_default_speed_max: "a regular one" + walk_occasional_traveller_speed_max: "an occasional one" + walk_frequent_traveller_speed_max: "a frequent one" + walk_mobility_restricted_traveller_speed_max: "a mobility restricted one" + inter_access_link_distance_max: "an access point and a linked stop area" inter_stop_duration_max: "Maximum duration between the moment when a vehicle is arriving at a stop and the moment when the vehicle is leaving" - facility_stop_area_distance_max: "between a stop area and a facility" + facility_stop_area_distance_max: "a stop area and a facility" + rule_parameter_by_mode: "Parameters by mode" + modes_allowed: " (only for allowed ones)" + vehicle_journey_number_bounds: "Vehicle journey number limits (0,0 to disable check-point))" + min_value: "minimal value" + max_value: "maximal value" index: title: "Parameter sets" activerecord: @@ -48,11 +53,15 @@ en: inter_access_link_distance_max: "Access link maximum distance" inter_stop_duration_max: "Maximum duration for a stopping time" facility_stop_area_distance_max: "Maximum distance between a stop area and a facility" - inter_stop_area_distance_min: "Maximum distance between a stop areas" - inter_stop_area_distance_max: "Maximum distance between a stop areas" + inter_stop_area_distance_min: "Maximum distance between 2 stop areas" + inter_stop_area_distance_max: "Maximum distance between 2 stop areas" speed_min: "Minimum speed" speed_max: "Maximum speed" - inter_stop_duration_variation_max: "Maximum duration gap between 2 vehicle journeys and between 2 folowing stops" + inter_stop_duration_variation_max: "Maximum duration gap between 2 vehicle journeys and between 2 following stops" + vehicle_journey_number_min: "Minimal value for vehicle journey numbers (empty to disable check-point)" + vehicle_journey_number_min: "Maximal value for vehicle journey numbers (empty to disable check-point)" + check_allowed_transport_modes: "Check transport modes" + allowed_transport: "Allowed" fr: rule_parameter_sets: @@ -85,6 +94,10 @@ fr: facility_stop_area_distance_max: "un arrêt et un équipement" inter_stop_duration_max: "Durée maximum de stationnement à un arrêt" rule_parameter_by_mode: "Jeu de paramètres pour un mode de transport" + modes_allowed: " (uniquement pour les modes autorisés)" + vehicle_journey_number_bounds: "Fouchette de valeurs pour le numéro de courses" + min_value: "valeur minimale" + max_value: "valeur maximale" index: title: "Jeux de paramètres" activerecord: @@ -93,21 +106,25 @@ fr: attributes: rule_parameter_set: name: "Nom" - inter_stop_area_distance_min: Distance minimum entre 2 arrêts n'ayant pas le même parent - parent_stop_area_distance_max: Distance maximum entre un arrêt et son parent - stop_areas_area: Délimitation géographique des arrêts - inter_access_point_distance_min: Distance minimum entre 2 accès de noms différents pour un même arrêt - inter_connection_link_distance_max: Distance maximum entre les arrêts en correspondance - walk_default_speed_max: Vitesse de marche maximum pour un voyageur ordinaire - walk_occasional_traveller_speed_max: Vitesse de marche maximum pour un voyageur occasionnel - walk_frequent_traveller_speed_max: Vitesse de marche maximum pour un voyageur habituel - walk_mobility_restricted_traveller_speed_max: Vitesse de marche maximum pour un voyageur à mobilité réduite - inter_access_link_distance_max: Distance maximum d'un liaison accès - arrêt - inter_stop_duration_max: Durée maximum entre les horaires d'arrivée et de départ à un arrêt - facility_stop_area_distance_max: Distance maximum entre un arrêt et un équipement - inter_stop_area_distance_min: Distance minimum entre 2 arrêts - inter_stop_area_distance_max: Distance maximum entre 2 arrêts - speed_min: Vitesse minimum - speed_max: Vitesse maximum - inter_stop_duration_variation_max: Ecart maximum de durée de trajet entre 2 arrêts successifs pour les différentes courses + inter_stop_area_distance_min: "Distance minimum entre 2 arrêts n'ayant pas le même parent" + parent_stop_area_distance_max: "Distance maximum entre un arrêt et son parent" + stop_areas_area: "Délimitation géographique des arrêts" + inter_access_point_distance_min: "Distance minimum entre 2 accès de noms différents pour un même arrêt" + inter_connection_link_distance_max: "Distance maximum entre les arrêts en correspondance" + walk_default_speed_max: "Vitesse de marche maximum pour un voyageur ordinaire" + walk_occasional_traveller_speed_max: "Vitesse de marche maximum pour un voyageur occasionnel" + walk_frequent_traveller_speed_max: "Vitesse de marche maximum pour un voyageur habituel" + walk_mobility_restricted_traveller_speed_max: "Vitesse de marche maximum pour un voyageur à mobilité réduite" + inter_access_link_distance_max: "Distance maximum d'un liaison accès - arrêt" + inter_stop_duration_max: "Durée maximum entre les horaires d'arrivée et de départ à un arrêt" + facility_stop_area_distance_max: "Distance maximum entre un arrêt et un équipement" + inter_stop_area_distance_min: "Distance minimum entre 2 arrêts" + inter_stop_area_distance_max: "Distance maximum entre 2 arrêts" + speed_min: "Vitesse minimum" + speed_max: "Vitesse maximum" + inter_stop_duration_variation_max: "Ecart maximum de durée entre 2 arrêts successifs pour les différentes courses" + vehicle_journey_number_min: "Borne inférieur pour les numéros de course (vide pour désactiver le contrôle)" + vehicle_journey_number_min: "Borne supérieure pour les numéros de course (vide pour désactiver le contrôle)" + check_allowed_transport_modes: "Contrôler les modes de transport" + allowed_transport: "Autorisé" diff --git a/config/locales/transport_modes.yml b/config/locales/transport_modes.yml index 9ed0745f7..55954abeb 100644 --- a/config/locales/transport_modes.yml +++ b/config/locales/transport_modes.yml @@ -1,5 +1,6 @@ en: transport_modes: + name: "Transport mode" label: unknown: "unknown" air: "Air" @@ -24,6 +25,7 @@ en: fr: transport_modes: + name: "Mode de transport" label: unknown: "Inconnu" air: "Air" diff --git a/config/locales/vehicle_journey_exports.yml b/config/locales/vehicle_journey_exports.yml index bcfc04e9a..f8169c544 100644 --- a/config/locales/vehicle_journey_exports.yml +++ b/config/locales/vehicle_journey_exports.yml @@ -8,7 +8,7 @@ en: number: "number" time_table_ids: "timetables" flexible_service: "on demand (Y(es)|N(o)|empty for unknown)" - vehicle_identifier: "vehicle identifier" + published_journey_name: "published name" mobility: "wheel_chairs (Y(es)|N(o)|empty for unknown)" stop_id: "stop id" stop_name: "stop name" @@ -34,7 +34,7 @@ fr: number: "numéro" time_table_ids: "calendriers" flexible_service: "TAD (O(ui)|N(on)|vide si inconnu)" - vehicle_identifier: "identifiant véhicule" + published_journey_name: "nom public" mobility: "PMR (O(ui)|N(on)|vide si inconnu)" stop_id: "id arrêt" stop_name: "nom arrêt" diff --git a/spec/fixtures/vehicle_journey_imports_valid.csv b/spec/fixtures/vehicle_journey_imports_valid.csv index 13b59b102..3126ffe2b 100644 --- a/spec/fixtures/vehicle_journey_imports_valid.csv +++ b/spec/fixtures/vehicle_journey_imports_valid.csv @@ -1,6 +1,6 @@ ;id course;import:VehicleJourney:1;import:VehicleJourney:2;import:VehicleJourney:3; ;numéro;1;2;3;4 -;identifiant véhicule;11;12;13;14 +;nom public;11;12;13;14 ;PMR (O(ui)|N(on)|vide si inconnu);Oui;;; ;TAD (O(ui)|N(on)|vide si inconnu);Oui;;; ;calendriers;;;; diff --git a/spec/fixtures/vehicle_journey_imports_with_vj_invalid.csv b/spec/fixtures/vehicle_journey_imports_with_vj_invalid.csv index 34fbbb6bb..7aa59009e 100644 --- a/spec/fixtures/vehicle_journey_imports_with_vj_invalid.csv +++ b/spec/fixtures/vehicle_journey_imports_with_vj_invalid.csv @@ -1,6 +1,6 @@ ;id course;9999;import:VehicleJourney:2;import:VehicleJourney:3 ;numéro;1;2;3 -;identifiant véhicule;11;12;13 +;nom public;11;12;13 ;PMR (O(ui)|N(on)|vide si inconnu);Oui;; ;TAD (O(ui)|N(on)|vide si inconnu);Oui;; ;calendriers;;; diff --git a/spec/fixtures/vehicle_journey_imports_with_vjas_bad_order.csv b/spec/fixtures/vehicle_journey_imports_with_vjas_bad_order.csv index 6dc20cfeb..df6b1acff 100644 --- a/spec/fixtures/vehicle_journey_imports_with_vjas_bad_order.csv +++ b/spec/fixtures/vehicle_journey_imports_with_vjas_bad_order.csv @@ -1,6 +1,6 @@ ;id course;import:VehicleJourney:1;import:VehicleJourney:2; ;numéro;1;2;3 -;identifiant véhicule;11;12;13 +;nopm public;11;12;13 ;PMR (O(ui)|N(on)|vide si inconnu);Oui;; ;TAD (O(ui)|N(on)|vide si inconnu);Oui;; ;calendriers;;; diff --git a/spec/fixtures/vehicle_journey_imports_with_vjas_invalid.csv b/spec/fixtures/vehicle_journey_imports_with_vjas_invalid.csv index c7745849f..bcb07a177 100644 --- a/spec/fixtures/vehicle_journey_imports_with_vjas_invalid.csv +++ b/spec/fixtures/vehicle_journey_imports_with_vjas_invalid.csv @@ -1,6 +1,6 @@ ;id course;import:VehicleJourney:1;import:VehicleJourney:2; ;numéro;1;2;3 -;identifiant véhicule;11;12;13 +;nom public;11;12;13 ;PMR (O(ui)|N(on)|vide si inconnu);Oui;; ;TAD (O(ui)|N(on)|vide si inconnu);Oui;; ;calendriers;;;; |
