aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/models/rule_parameter_set.rb34
-rw-r--r--app/models/vehicle_journey_export.rb6
-rw-r--r--app/models/vehicle_journey_import.rb6
-rw-r--r--app/views/rule_parameter_sets/_form.html.erb29
-rw-r--r--app/views/rule_parameter_sets/_mode_fields.html.erb13
-rw-r--r--app/views/rule_parameter_sets/show.html.erb68
-rw-r--r--config/deploy.rb2
-rw-r--r--config/locales/compliance_check_results.yml21
-rw-r--r--config/locales/rule_parameter_sets.yml83
-rw-r--r--config/locales/transport_modes.yml2
-rw-r--r--config/locales/vehicle_journey_exports.yml4
-rw-r--r--spec/fixtures/vehicle_journey_imports_valid.csv2
-rw-r--r--spec/fixtures/vehicle_journey_imports_with_vj_invalid.csv2
-rw-r--r--spec/fixtures/vehicle_journey_imports_with_vjas_bad_order.csv2
-rw-r--r--spec/fixtures/vehicle_journey_imports_with_vjas_invalid.csv2
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;;;;