aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md10
-rw-r--r--Gemfile4
-rw-r--r--Gemfile.lock25
-rw-r--r--app/controllers/access_links_controller.rb11
-rw-r--r--app/controllers/lines_controller.rb2
-rw-r--r--app/controllers/networks_controller.rb2
-rw-r--r--app/models/stop_area_copy.rb17
-rw-r--r--app/views/access_links/_form.html.erb8
-rw-r--r--app/views/access_links/show.html.erb26
-rw-r--r--app/views/connection_links/_form.erb8
-rw-r--r--app/views/connection_links/show.html.erb20
-rw-r--r--app/views/help/introduction.textile2
-rw-r--r--app/views/lines/_form.erb1
-rw-r--r--app/views/lines/show.html.erb5
-rw-r--r--app/views/networks/_form.erb1
-rw-r--r--app/views/networks/show.html.erb6
-rw-r--r--app/views/stop_areas/_form.html.erb6
-rw-r--r--app/views/stop_areas/show.html.erb18
-rw-r--r--app/views/vehicle_journeys/_form.html.erb2
-rw-r--r--app/views/vehicle_journeys/show.html.erb2
-rw-r--r--config/environment.rb2
-rw-r--r--config/locales/companies.yml20
-rw-r--r--config/locales/compliance_check_results.en.yml679
-rw-r--r--config/locales/compliance_check_results.fr.yml (renamed from config/locales/compliance_check_results.yml)531
-rw-r--r--config/locales/en.yml1
-rw-r--r--config/locales/fr.yml1
-rw-r--r--config/locales/group_of_lines.yml20
-rw-r--r--config/locales/journey_patterns.yml20
-rw-r--r--config/locales/lines.yml233
-rw-r--r--config/locales/lines_en.yml118
-rw-r--r--config/locales/lines_fr.yml117
-rw-r--r--config/locales/networks.yml44
-rw-r--r--config/locales/source_types.yml27
-rw-r--r--config/locales/stop_areas.yml32
-rw-r--r--config/locales/time_tables.yml20
-rw-r--r--config/locales/vehicle_journeys.yml4
-rw-r--r--db/migrate/20150922095511_add_stable_id_to_line.ninoxe_engine.rb8
-rw-r--r--db/schema.rb9
-rw-r--r--lib/ninoxe_extension/hub/company_restrictions.rb3
-rw-r--r--lib/ninoxe_extension/hub/connection_link_restrictions.rb4
-rw-r--r--lib/ninoxe_extension/hub/group_of_line_restrictions.rb3
-rw-r--r--lib/ninoxe_extension/hub/journey_pattern_restrictions.rb3
-rw-r--r--lib/ninoxe_extension/hub/line_restrictions.rb3
-rw-r--r--lib/ninoxe_extension/hub/network_restrictions.rb11
-rw-r--r--lib/ninoxe_extension/hub/objectid_restrictions.rb2
-rw-r--r--lib/ninoxe_extension/hub/stop_area_restrictions.rb24
-rw-r--r--lib/ninoxe_extension/hub/time_table_restrictions.rb7
-rw-r--r--lib/ninoxe_extension/hub/vehicle_journey_restrictions.rb4
48 files changed, 1389 insertions, 737 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6608ab53c..33e761a49 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,14 @@
+# Version 3.1.0 (en cours)
+* Nouvelles fonctionnalités
+ * Validation GTFS lors de l'import
+* Améliorations
+ * présentation des rapports d'import/export et validation
+
# Version 3.0.1 (en cours)
* Corrections
- * mise en place d'un formulaire de consultation des clés de l'API V1
+ * mise en place d'un formulaire de consultation des clés de l'API V1 (Mantis 38248)
+ * restitution d'erreurs de clonage des arrêts sur clone invalide (Mantis 39159)
+ * corrections sur les restrictions hub
# Version 3.0.0 (20/08/15)
* Nouvelles fonctionnalités
diff --git a/Gemfile b/Gemfile
index ff8d1c2ba..fb6b15196 100644
--- a/Gemfile
+++ b/Gemfile
@@ -115,9 +115,9 @@ gem 'squeel'
gem 'enumerize', '~> 0.10.0'
-#gem 'ninoxe', :git => 'https://github.com/afimb/ninoxe.git', :branch => "rails4"
gem 'ninoxe', :git => 'https://github.com/afimb/ninoxe.git'
-#gem 'ninoxe', '1.2.0'
+#gem 'ninoxe', '1.2.2'
+#gem 'ninoxe',:path => '~/workspace/chouette/ninoxe'
gem 'acts_as_list', '~> 0.6.0'
gem "acts_as_tree", '~> 2.1.0', :require => "acts_as_tree"
diff --git a/Gemfile.lock b/Gemfile.lock
index 58465495e..319c0ce14 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -1,8 +1,8 @@
GIT
remote: https://github.com/afimb/ninoxe.git
- revision: 0c548adb266659e7aacd9a7b055e6eb9e21baf66
+ revision: 766d2293bde741d34a5b9f23da21e5dc8d66bb2f
specs:
- ninoxe (1.2.0)
+ ninoxe (1.2.1)
activerecord (~> 4.1.1)
acts-as-taggable-on (>= 3)
acts_as_list (>= 0.1.6)
@@ -106,7 +106,7 @@ GEM
coffee-script-source (1.9.1)
daemons (1.1.9)
database_cleaner (1.4.1)
- dbf (2.0.9)
+ dbf (2.0.10)
fastercsv (~> 1.5)
debug_inspector (0.0.2)
deep_cloneable (2.0.2)
@@ -150,9 +150,9 @@ GEM
faraday_middleware (0.9.1)
faraday (>= 0.7.4, < 0.10)
fastercsv (1.5.5)
- ffi (1.9.8)
- ffi (1.9.8-java)
- ffi-geos (1.0.0)
+ ffi (1.9.10)
+ ffi (1.9.10-java)
+ ffi-geos (1.1.0)
ffi (>= 1.0.0)
font-awesome-sass (4.2.2)
sass (~> 3.2)
@@ -219,8 +219,8 @@ GEM
jruby-rack (1.1.18)
jruby-rack-worker (0.10.0)
jruby-rack (>= 1.1.10)
- json (1.8.2)
- json (1.8.2-java)
+ json (1.8.3)
+ json (1.8.3-java)
language_engine (0.0.6)
rails (~> 4.1.1)
launchy (2.4.3)
@@ -247,9 +247,9 @@ GEM
mime-types (2.4.3)
mimemagic (0.3.0)
mini_portile (0.6.2)
- minitest (5.6.1)
+ minitest (5.8.1)
modernizr-rails (2.0.6)
- multi_json (1.11.0)
+ multi_json (1.11.2)
multipart-post (2.0.0)
nenv (0.2.0)
net-scp (1.2.1)
@@ -365,7 +365,7 @@ GEM
ref (1.0.5)
responders (1.1.2)
railties (>= 3.2, < 4.2)
- rgeo (0.3.20)
+ rgeo (0.4.0)
roo (1.13.2)
nokogiri
rubyzip
@@ -576,3 +576,6 @@ DEPENDENCIES
warbler
will_paginate (~> 3.0.7)
will_paginate-bootstrap (~> 1.0.1)
+
+BUNDLED WITH
+ 1.10.6
diff --git a/app/controllers/access_links_controller.rb b/app/controllers/access_links_controller.rb
index 8a01453eb..d590aba00 100644
--- a/app/controllers/access_links_controller.rb
+++ b/app/controllers/access_links_controller.rb
@@ -17,7 +17,7 @@ class AccessLinksController < ChouetteController
def show
@map = AccessLinkMap.new(resource).with_helpers(self)
@access_point = Chouette::AccessPoint.find(params[:access_point_id])
- @access_link = Chouette::AccessLink.find(params[:id])
+ #@access_link = Chouette::AccessLink.find(params[:id])
@stop_area = @access_link.stop_area
show! do |format|
format.html {build_breadcrumb :show}
@@ -62,6 +62,15 @@ class AccessLinksController < ChouetteController
end
end
+ def update
+ @access_point = Chouette::AccessPoint.find(params[:access_point_id])
+ @access_link = Chouette::AccessLink.find(params[:id])
+ @stop_area = @access_link.stop_area
+ @orientation = @access_link.link_orientation_type
+ update! do |success, failure|
+ build_breadcrumb :edit
+ end
+ end
protected
diff --git a/app/controllers/lines_controller.rb b/app/controllers/lines_controller.rb
index 6533278d2..514c82401 100644
--- a/app/controllers/lines_controller.rb
+++ b/app/controllers/lines_controller.rb
@@ -83,7 +83,7 @@ class LinesController < ChouetteController
private
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, { 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_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 ] } )
end
end
diff --git a/app/controllers/networks_controller.rb b/app/controllers/networks_controller.rb
index 5dff116c2..239f022b3 100644
--- a/app/controllers/networks_controller.rb
+++ b/app/controllers/networks_controller.rb
@@ -42,7 +42,7 @@ class NetworksController < ChouetteController
end
def network_params
- params.require(:network).permit(:objectid, :object_version, :creation_time, :creator_id, :version_date, :description, :name, :registration_number, :source_name, :source_type, :source_identifier, :comment )
+ params.require(:network).permit(:objectid, :object_version, :creation_time, :creator_id, :version_date, :description, :name, :registration_number, :source_name, :source_type_name, :source_identifier, :comment )
end
end
diff --git a/app/models/stop_area_copy.rb b/app/models/stop_area_copy.rb
index 3401b5fde..0fa56ff68 100644
--- a/app/models/stop_area_copy.rb
+++ b/app/models/stop_area_copy.rb
@@ -56,7 +56,7 @@ class StopAreaCopy
{ :name => self.source.name, # TODO: change ninoxe to avoid that !!!
:area_type => self.area_type.camelcase,
:registration_number => nil,
- :parent_id => copy_is_source_child? ? self.source_id : self.copy.parent_id
+ :parent_id => copy_is_source_child? ? self.source_id : nil
}
end
@@ -71,11 +71,18 @@ class StopAreaCopy
if self.valid?
Chouette::StopArea.transaction do
copy.update_attributes copy_modfied_attributes
- unless source_modified_attributes.empty?
- source.update_attributes source_modified_attributes
- end
+ if copy.valid?
+ unless source_modified_attributes.empty?
+ source.update_attributes source_modified_attributes
+ end
+ true
+ else
+ copy.errors.full_messages.each do |m|
+ errors.add :base, m
+ end
+ false
+ end
end
- true
else
false
end
diff --git a/app/views/access_links/_form.html.erb b/app/views/access_links/_form.html.erb
index 2ce44542f..d6c0c603e 100644
--- a/app/views/access_links/_form.html.erb
+++ b/app/views/access_links/_form.html.erb
@@ -4,12 +4,12 @@
<%= form.input :stop_area_id , :as => :hidden %>
<%= form.input :link_orientation_type , :as => :hidden%>
<%= form.input :name %>
- <%= form.input :access_link_type, :as => :select, :collection => Chouette::AccessLink.access_link_types, :include_blank => false, :member_label => Proc.new { |type| t("connection_link_types.label.#{type}") } %>
+ <%= form.input :access_link_type, :as => :select, :collection => Chouette::AccessLink.access_link_types, :include_blank => true, :member_label => Proc.new { |type| t("connection_link_types.label.#{type}") } %>
<%= form.input :comment %>
<%= form.input :link_distance %>
- <%= form.input :mobility_restricted_suitability,:as => :boolean %>
- <%= form.input :stairs_availability,:as => :boolean %>
- <%= form.input :lift_availability,:as => :boolean %>
+ <%= form.input :mobility_restricted_suitability, :as => :select, :collection => [[t("true"), true], [t("false"), false]], :include_blank => true %>
+ <%= form.input :stairs_availability, :as => :select, :collection => [[t("true"), true], [t("false"), false]], :include_blank => true %>
+ <%= form.input :lift_availability, :as => :select, :collection => [[t("true"), true], [t("false"), false]], :include_blank => true %>
<%= form.input :objectid, :required => !@access_link.new_record?, :input_html => { :title => t("formtastic.titles.access_link.objectid")} %>
<%= form.inputs :name => t('access_links.show.durations') do %>
<%= form.input :default_duration, :as => :extended_time_picker, :size => 8, :step => :seconds, :label => @access_link.human_attribute_name("default_duration"), :input_html => { :class => "form-control input-sm timepicker_seconds", :step => 1}, :wrapper_html => { :class => "input-append bootstrap-timepicker" } %>
diff --git a/app/views/access_links/show.html.erb b/app/views/access_links/show.html.erb
index 3999b0287..54f89297e 100644
--- a/app/views/access_links/show.html.erb
+++ b/app/views/access_links/show.html.erb
@@ -6,7 +6,11 @@
<div class="summary">
<p>
<label><%= @access_link.human_attribute_name("access_link_type") %>: </label>
- <%= t("connection_link_types.label.#{@access_link.access_link_type}") %>
+ <% if @access_link.access_link_type.present? %>
+ <%= t("connection_link_types.label.#{@access_link.access_link_type}") %>
+ <% else %>
+ <%=t("unknown") %>
+ <% end %>
</p>
<p>
<label><%= @access_link.human_attribute_name("comment") %>: </label>
@@ -39,21 +43,33 @@
</p>
<p>
<label class='duration'><%= @access_link.human_attribute_name("mobility_restricted_traveller_duration") %>: </label>
- <% if (@access_link.mobility_restricted_traveller_duration.present?) %>
+ <% if (!@access_link.mobility_restricted_traveller_duration.nil?) %>
<%= @access_link.mobility_restricted_traveller_duration.strftime('%Hh %Mm %Ss') %>
<% end %>
</p>
<p>
<label><%= @access_link.human_attribute_name("mobility_restricted_suitability") %>: </label>
- <%= t((@access_link.mobility_restricted_suitability == true).to_s) %>
+ <% if (!@access_link.mobility_restricted_suitability.nil?) %>
+ <%= t((@access_link.mobility_restricted_suitability == true).to_s) %>
+ <% else %>
+ <%=t("unknown") %>
+ <% end %>
</p>
<p>
<label><%= @access_link.human_attribute_name("stairs_availability") %>: </label>
- <%= t((@access_link.stairs_availability == true).to_s) %>
+ <% if (!@access_link.stairs_availability.nil?) %>
+ <%= t((@access_link.stairs_availability == true).to_s) %>
+ <% else %>
+ <%=t("unknown") %>
+ <% end %>
</p>
<p>
<label><%= @access_link.human_attribute_name("lift_availability") %>: </label>
- <%= t((@access_link.lift_availability == true).to_s) %>
+ <% if (!@access_link.lift_availability.nil?) %>
+ <%= t((@access_link.lift_availability == true).to_s) %>
+ <% else %>
+ <%=t("unknown") %>
+ <% end %>
</p>
</div>
</div>
diff --git a/app/views/connection_links/_form.erb b/app/views/connection_links/_form.erb
index 52f2a94c8..49ca68aef 100644
--- a/app/views/connection_links/_form.erb
+++ b/app/views/connection_links/_form.erb
@@ -1,12 +1,12 @@
<%= semantic_form_for [@referential, @connection_link] do |form| %>
<%= form.inputs do %>
<%= form.input :name %>
- <%= form.input :connection_link_type, :as => :select, :collection => Chouette::ConnectionLink.connection_link_types, :include_blank => false, :member_label => Proc.new { |type| t("connection_link_types.label.#{type}") } %>
+ <%= form.input :connection_link_type, :as => :select, :collection => Chouette::ConnectionLink.connection_link_types, :include_blank => true, :member_label => Proc.new { |type| t("connection_link_types.label.#{type}") } %>
<%= form.input :comment %>
<%= form.input :link_distance, :input_html => { :title => t("formtastic.titles#{format_restriction_for_locales(@referential)}.connection_link.link_distance") } %>
- <%= form.input :mobility_restricted_suitability,:as => :boolean %>
- <%= form.input :stairs_availability,:as => :boolean %>
- <%= form.input :lift_availability,:as => :boolean %>
+ <%= form.input :mobility_restricted_suitability, :as => :select, :collection => [[t("true"), true], [t("false"), false]], :include_blank => true %>
+ <%= form.input :stairs_availability, :as => :select, :collection => [[t("true"), true], [t("false"), false]], :include_blank => true %>
+ <%= form.input :lift_availability, :as => :select, :collection => [[t("true"), true], [t("false"), false]], :include_blank => true %>
<%= form.input :objectid, :required => !@connection_link.new_record?, :input_html => { :title => t("formtastic.titles.connection_link.objectid")} %>
<% end %>
diff --git a/app/views/connection_links/show.html.erb b/app/views/connection_links/show.html.erb
index 0771caac4..e715953fc 100644
--- a/app/views/connection_links/show.html.erb
+++ b/app/views/connection_links/show.html.erb
@@ -23,7 +23,7 @@
<p>
<label><%= @connection_link.human_attribute_name("connection_link_type") %>: </label>
<% if @connection_link.connection_link_type.blank? %>
- <%= t("connection_link_types.label.undefined") %>
+ <%=t("unknown") %>
<% else %>
<%= t("connection_link_types.label.#{@connection_link.connection_link_type}") %>
<% end %>
@@ -65,15 +65,27 @@
</p>
<p>
<label><%= @connection_link.human_attribute_name("mobility_restricted_suitability") %>: </label>
- <%= t((@connection_link.mobility_restricted_suitability == true).to_s) %>
+ <% if (!@connection_link.mobility_restricted_suitability.nil?) %>
+ <%= t((@connection_link.mobility_restricted_suitability == true).to_s) %>
+ <% else %>
+ <%=t("unknown") %>
+ <% end %>
</p>
<p>
<label><%= @connection_link.human_attribute_name("stairs_availability") %>: </label>
- <%= t((@connection_link.stairs_availability == true).to_s) %>
+ <% if (!@connection_link.stairs_availability.nil?) %>
+ <%= t((@connection_link.stairs_availability == true).to_s) %>
+ <% else %>
+ <%=t("unknown") %>
+ <% end %>
</p>
<p>
<label><%= @connection_link.human_attribute_name("lift_availability") %>: </label>
- <%= t((@connection_link.lift_availability == true).to_s) %>
+ <% if (!@connection_link.lift_availability.nil?) %>
+ <%= t((@connection_link.lift_availability == true).to_s) %>
+ <% else %>
+ <%=t("unknown") %>
+ <% end %>
</p>
</div>
</div>
diff --git a/app/views/help/introduction.textile b/app/views/help/introduction.textile
index 8a30e7e0e..81e0a4284 100644
--- a/app/views/help/introduction.textile
+++ b/app/views/help/introduction.textile
@@ -16,7 +16,7 @@ D'autres utilisateurs potentiels sont également identifiés : services de l'ét
h3. Ce que vous trouverez dans ce manuel
Vous trouverez dans ce document, toutes les informations nécessaires à la prise en main de l’application.
-Le manuel couvre la version 3.0.1.
+Le manuel couvre la version 3.1.0.
diff --git a/app/views/lines/_form.erb b/app/views/lines/_form.erb
index 58cb7e6e3..442434d3b 100644
--- a/app/views/lines/_form.erb
+++ b/app/views/lines/_form.erb
@@ -9,6 +9,7 @@
<%= form.input :transport_mode, :as => :select, :collection => Chouette::Line.transport_modes, :include_blank => false, :member_label => Proc.new { |mode| t("transport_modes.label.#{mode}") } %>
<%= form.input :color, :as => :string %>
<%= form.input :text_color %>
+ <%= form.input :stable_id %>
<%= form.input :url %>
<%= form.input :mobility_restricted_suitability, :as => :select, :collection => [[@line.human_attribute_name("accessible"), true], [@line.human_attribute_name("not_accessible"), false]], :include_blank => true %>
<%= form.input :flexible_service, :as => :select, :collection => [[@line.human_attribute_name("on_demaond_fs"), true], [@line.human_attribute_name("regular_fs"), false]], :include_blank => true %>
diff --git a/app/views/lines/show.html.erb b/app/views/lines/show.html.erb
index 3654840fd..0d9a47142 100644
--- a/app/views/lines/show.html.erb
+++ b/app/views/lines/show.html.erb
@@ -48,6 +48,11 @@
<%= t("transport_modes.label.#{@line.transport_mode}") %>
</p>
<p>
+ <label><%= @line.human_attribute_name("stable_id") %>: </label>
+ <%= @line.stable_id %>
+ </p>
+
+ <p>
<label><%= @line.human_attribute_name("url") %>: </label>
<%= @line.url %>
</p>
diff --git a/app/views/networks/_form.erb b/app/views/networks/_form.erb
index cb9575664..5794794fd 100644
--- a/app/views/networks/_form.erb
+++ b/app/views/networks/_form.erb
@@ -6,6 +6,7 @@
<%= form.input :version_date, :as => :date_picker %>
<%= form.input :description %>
<%= form.input :source_name %>
+ <%= form.input :source_type_name, :as => :select, :collection => Chouette::Network.source_type_names, :include_blank => true, :member_label => Proc.new { |mode| t("source_types.label.#{mode}") } %>
<%= form.input :source_identifier %>
<%= form.input :objectid, :required => !@network.new_record?, :input_html => { :title => t("formtastic.titles#{format_restriction_for_locales(@referential)}.network.objectid")} %>
<% end %>
diff --git a/app/views/networks/show.html.erb b/app/views/networks/show.html.erb
index e7b103dda..d61974394 100644
--- a/app/views/networks/show.html.erb
+++ b/app/views/networks/show.html.erb
@@ -26,6 +26,12 @@
<%= @network.source_name %>
</p>
<p>
+ <label><%= Chouette::Network.human_attribute_name("source_type_name") %>: </label>
+ <% if @network.source_type_name.present? %>
+ <%= t("source_types.label.#{@network.source_type_name}") %>
+ <% end %>
+ </p>
+ <p>
<label><%= Chouette::Network.human_attribute_name("source_identifier") %>: </label>
<%= @network.source_identifier %>
</p>
diff --git a/app/views/stop_areas/_form.html.erb b/app/views/stop_areas/_form.html.erb
index e34253828..bcbbe2bf9 100644
--- a/app/views/stop_areas/_form.html.erb
+++ b/app/views/stop_areas/_form.html.erb
@@ -43,9 +43,9 @@
<h3><%= t("stop_areas.stop_area.accessibility") %></h3>
<%= form.inputs do %>
<% if !manage_itl %>
- <%= form.input :mobility_restricted_suitability,:as => :boolean %>
- <%= form.input :stairs_availability,:as => :boolean %>
- <%= form.input :lift_availability,:as => :boolean %>
+ <%= form.input :mobility_restricted_suitability, :as => :select, :collection => [[t("true"), true], [t("false"), false]], :include_blank => true %>
+ <%= form.input :stairs_availability, :as => :select, :collection => [[t("true"), true], [t("false"), false]], :include_blank => true %>
+ <%= form.input :lift_availability, :as => :select, :collection => [[t("true"), true], [t("false"), false]], :include_blank => true %>
<% end %>
<% end %>
</div>
diff --git a/app/views/stop_areas/show.html.erb b/app/views/stop_areas/show.html.erb
index 7ca59cf70..1b3578b65 100644
--- a/app/views/stop_areas/show.html.erb
+++ b/app/views/stop_areas/show.html.erb
@@ -52,15 +52,27 @@
<% if !manage_itl %>
<p>
<label><%= @stop_area.human_attribute_name("mobility_restricted_suitability") %>: </label>
- <%= t((@stop_area.mobility_restricted_suitability == true).to_s) %>
+ <% if (!@stop_area.mobility_restricted_suitability.nil?) %>
+ <%= t((@stop_area.mobility_restricted_suitability == true).to_s) %>
+ <% else %>
+ <%=t("unknown") %>
+ <% end %>
</p>
<p>
<label><%= @stop_area.human_attribute_name("stairs_availability") %>: </label>
- <%= t((@stop_area.stairs_availability == true).to_s) %>
+ <% if (!@stop_area.stairs_availability.nil?) %>
+ <%= t((@stop_area.stairs_availability == true).to_s) %>
+ <% else %>
+ <%=t("unknown") %>
+ <% end %>
</p>
<p>
<label><%= @stop_area.human_attribute_name("lift_availability") %>: </label>
- <%= t((@stop_area.lift_availability == true).to_s) %>
+ <% if (!@stop_area.lift_availability.nil?) %>
+ <%= t((@stop_area.lift_availability == true).to_s) %>
+ <% else %>
+ <%=t("unknown") %>
+ <% end %>
</p>
<p> <label><%= t('stop_areas.show.geographic_data') %> </label></p>
<% if @stop_area.long_lat_type == nil %>
diff --git a/app/views/vehicle_journeys/_form.html.erb b/app/views/vehicle_journeys/_form.html.erb
index 3c175148f..e4b1ce432 100644
--- a/app/views/vehicle_journeys/_form.html.erb
+++ b/app/views/vehicle_journeys/_form.html.erb
@@ -7,7 +7,7 @@
<%= form.input :comment %>
<%= form.input :transport_mode_name, :as => :select, :collection => Chouette::Line.transport_modes, :include_blank => true, :member_label => Proc.new { |mode| t("transport_modes.label.#{mode}") } %>
<%= 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_demaond_fs"), true], [@vehicle_journey.human_attribute_name("regular_fs"), 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 %>
<%= form.input :facility %>
<%= form.input :vehicle_type_identifier%>
diff --git a/app/views/vehicle_journeys/show.html.erb b/app/views/vehicle_journeys/show.html.erb
index 1e7c99a37..695b5c8b5 100644
--- a/app/views/vehicle_journeys/show.html.erb
+++ b/app/views/vehicle_journeys/show.html.erb
@@ -46,7 +46,7 @@
<% if @vehicle_journey.flexible_service.nil? %>
<%= @vehicle_journey.human_attribute_name("unspecified_fs") %>
<% elsif @vehicle_journey.flexible_service? %>
- <%= @vehicle_journey.human_attribute_name("on_demaond_fs") %>
+ <%= @vehicle_journey.human_attribute_name("on_demand_fs") %>
<% else %>
<%= @vehicle_journey.human_attribute_name("regular_fs") %>
<% end %>
diff --git a/config/environment.rb b/config/environment.rb
index dd88c63b5..1c2b830ee 100644
--- a/config/environment.rb
+++ b/config/environment.rb
@@ -5,4 +5,4 @@ require File.expand_path('../application', __FILE__)
Rails.application.initialize!
# Fix version
-APP_VERSION = '3.0.1'
+APP_VERSION = '3.1.0'
diff --git a/config/locales/companies.yml b/config/locales/companies.yml
index 9ffbdc0d5..a20f6059f 100644
--- a/config/locales/companies.yml
+++ b/config/locales/companies.yml
@@ -40,27 +40,27 @@ en:
formtastic:
titles:
company:
- name: "Only alphanumerical or underscore characters."
+ name: ""
registration_number: "only alphanumerical or underscore characters "
objectid: "[prefix]:Company:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character"
neptune:
company:
- name: "Only alphanumerical or underscore characters."
+ name: ""
registration_number: "only alphanumerical or underscore characters "
objectid: "[prefix]:Company:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character"
netex:
company:
- name: "Only alphanumerical or underscore characters."
+ name: ""
registration_number: "only alphanumerical or underscore characters "
objectid: "[prefix]:Company:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character"
gtfs:
company:
- name: "Only alphanumerical or underscore characters."
+ name: ""
registration_number: "only alphanumerical or underscore characters "
objectid: "[prefix]:Company:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character"
hub:
company:
- name: "Only alphanumerical or underscore characters. Maximum length = 75."
+ name: "maximum 75 characters"
registration_number: "Positif integer, unique key, of no more than 8 digits."
objectid: "[prefix]:Company:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character. Maximum length of the unique key = 3."
@@ -106,27 +106,27 @@ fr:
formtastic:
titles:
company:
- name: "Caractères autorisés : alphanumériques et 'souligné'."
+ name: ""
registration_number: "caractères autorisés : alphanumériques et 'souligné'"
objectid: "[prefixe]:Company:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'"
neptune:
company:
- name: "Caractères autorisés : alphanumériques et 'souligné'."
+ name: ""
registration_number: "caractères autorisés : alphanumériques et 'souligné'"
objectid: "[prefixe]:Company:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'"
netex:
company:
- name: "Caractères autorisés : alphanumériques et 'souligné'."
+ name: ""
registration_number: "caractères autorisés : alphanumériques et 'souligné'"
objectid: "[prefixe]:Company:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'"
gtfs:
company:
- name: "Caractères autorisés : alphanumériques et 'souligné'."
+ name: ""
registration_number: "caractères autorisés : alphanumériques et 'souligné'"
objectid: "[prefixe]:Company:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'"
hub:
company:
- name: "Caractères autorisés : alphanumériques et 'souligné'. Longueur maximale = 75."
+ name: "maximum 75 caractères"
registration_number: "Entier positif, clé unique, d'un maximum de 8 chiffres."
objectid: "[prefixe]:Company:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'. Longueur maximale de la clé unique = 3."
diff --git a/config/locales/compliance_check_results.en.yml b/config/locales/compliance_check_results.en.yml
new file mode 100644
index 000000000..9b31f1736
--- /dev/null
+++ b/config/locales/compliance_check_results.en.yml
@@ -0,0 +1,679 @@
+en:
+ compliance_check_results:
+ errors: 'Errors'
+ file:
+ zip_name_prefix: "compliance_check_results"
+ summary_errors_file_prefix: "summary_of_tests.csv"
+ detailed_errors_file_prefix: "detail_of_errors.csv"
+ index:
+ line: "Li"
+ column: "Col"
+ compliance_check_result:
+ severities:
+ error: "Required"
+ warning: "Optional"
+ error_txt: "Required"
+ warning_txt: "Optional"
+ statuses:
+ nok: "Error"
+ uncheck: "Unavailable"
+ ok: "Success"
+ details:
+ #### level 1
+ ## NEPTUNE
+ detail_1_neptune_xml_1: "%{source_label} : %{error_value}"
+ detail_1_neptune_xml_2: "%{source_label} : %{error_value}"
+
+ ## GTFS
+ detail_1_gtfs_csv_1: "TBD"
+ detail_1_gtfs_csv_2: "TBD"
+ detail_1_gtfs_csv_3: "TBD"
+ detail_1_gtfs_csv_6: "HTML tags in field names are not allowed"
+ detail_1_gtfs_csv_7: "Extra spaces in field names are not allowed"
+ detail_1_gtfs_csv_10: "The first line must comply with CSV"
+ detail_1_gtfs_csv_11: "Header fields could not be empty"
+ detail_1_gtfs_csv_12: "The header fields could not be duplicated"
+ detail_1_gtfs_csv_13: "Line must comply with CSV"
+ detail_1_gtfs_csv_14: "A problem occured while reading the file"
+ detail_1_gtfs_agency_1: "File missing"
+ detail_1_gtfs_agency_2: "Field agency_id required when more than one agency is provided"
+ detail_1_gtfs_agency_3: "Field agency_id must be unique"
+ detail_1_gtfs_agency_4: "Missing column"
+ detail_1_gtfs_agency_5: "Missing value on column"
+ detail_1_gtfs_agency_6: "TBD"
+ detail_1_gtfs_agency_7: "TBD"
+ detail_1_gtfs_agency_8: "TBD"
+ detail_1_gtfs_agency_9: "TBD"
+ detail_1_gtfs_agency_10: "Extra columns found"
+ detail_1_gtfs_agency_11: "File must contains at least one entry"
+ detail_1_gtfs_stop_1: ""
+ detail_1_gtfs_stop_2: ""
+ detail_1_gtfs_stop_3: ""
+ detail_1_gtfs_stop_4: ""
+ detail_1_gtfs_stop_5: ""
+ detail_1_gtfs_stop_6: ""
+ detail_1_gtfs_stop_7: ""
+ detail_1_gtfs_stop_8: ""
+ detail_1_gtfs_stop_9: ""
+ detail_1_gtfs_stop_10: ""
+ detail_1_gtfs_stop_11: ""
+ detail_1_gtfs_stop_12: ""
+ detail_1_gtfs_route_1: ""
+ detail_1_gtfs_route_2: ""
+ detail_1_gtfs_route_3: ""
+ detail_1_gtfs_route_4: ""
+ detail_1_gtfs_route_5: ""
+ detail_1_gtfs_route_6: ""
+ detail_1_gtfs_route_7: ""
+ detail_1_gtfs_route_8: ""
+ detail_1_gtfs_route_9: ""
+ detail_1_gtfs_route_10: ""
+ detail_1_gtfs_route_11: ""
+ detail_1_gtfs_trip_1: ""
+ detail_1_gtfs_trip_2: ""
+ detail_1_gtfs_trip_3: ""
+ detail_1_gtfs_trip_4: ""
+ detail_1_gtfs_trip_5: ""
+ detail_1_gtfs_trip_6: ""
+ detail_1_gtfs_trip_7: ""
+ detail_1_gtfs_trip_8: ""
+ detail_1_gtfs_trip_9: ""
+ detail_1_gtfs_stoptime_1: ""
+ detail_1_gtfs_stoptime_2: ""
+ detail_1_gtfs_stoptime_3: ""
+ detail_1_gtfs_stoptime_4: ""
+ detail_1_gtfs_stoptime_5: ""
+ detail_1_gtfs_stoptime_6: ""
+ detail_1_gtfs_stoptime_7: ""
+ detail_1_gtfs_stoptime_8: ""
+ detail_1_gtfs_stoptime_9: ""
+ detail_1_gtfs_stoptime_10: ""
+ detail_1_gtfs_stoptime_11: ""
+ detail_1_gtfs_stoptime_12: ""
+ detail_1_gtfs_stoptime_13: ""
+ detail_1_gtfs_stoptime_14: ""
+ detail_1_gtfs_calendar_1: ""
+ detail_1_gtfs_calendar_2: ""
+ detail_1_gtfs_calendar_3: ""
+ detail_1_gtfs_calendar_4: ""
+ detail_1_gtfs_calendar_5: ""
+ detail_1_gtfs_calendar_6: ""
+ detail_1_gtfs_calendar_7: ""
+ detail_1_gtfs_calendar_8: ""
+ detail_1_gtfs_calendar_9: ""
+ detail_1_gtfs_calendar_10: ""
+ detail_1_gtfs_calendar_11: ""
+ detail_1_gtfs_calendar_12: ""
+ detail_1_gtfs_calendar_13: ""
+ detail_1_gtfs_calendar_14: ""
+ detail_1_gtfs_calendar_15: ""
+ detail_1_gtfs_calendardate_2: ""
+ detail_1_gtfs_calendardate_3: ""
+ detail_1_gtfs_calendardate_4: ""
+ detail_1_gtfs_calendardate_5: ""
+ detail_1_gtfs_calendardate_6: ""
+ detail_1_gtfs_calendardate_7: ""
+ detail_1_gtfs_frequency_1: ""
+ detail_1_gtfs_frequency_2: ""
+ detail_1_gtfs_frequency_3: ""
+ detail_1_gtfs_frequency_4: ""
+ detail_1_gtfs_frequency_5: ""
+ detail_1_gtfs_frequency_6: ""
+ detail_1_gtfs_frequency_7: ""
+ detail_1_gtfs_transfer_1: ""
+ detail_1_gtfs_transfer_2: ""
+ detail_1_gtfs_transfer_3: ""
+ detail_1_gtfs_transfer_4: ""
+ detail_1_gtfs_transfer_5: ""
+ detail_1_gtfs_transfer_6: ""
+ detail_1_gtfs_shape_1: ""
+ detail_1_gtfs_shape_2: ""
+ detail_1_gtfs_shape_3: ""
+ detail_1_gtfs_shape_4: ""
+ detail_1_gtfs_shape_5: ""
+ detail_1_gtfs_shape_6: ""
+ detail_1_gtfs_shape_7: ""
+ detail_1_gtfs_shape_8: ""
+
+ #### level 2
+ ## NEPTUNE
+ detail_2_neptune_common_1: "L'élément %{source_objectid} a des attributs qui diffèrent entre les différents fichiers qui le définissent"
+ detail_2_neptune_common_2: "L'élément %{source_objectid} partage l'attribut RegistrationNumber = %{error_value} avec un autre objet de même type"
+ detail_2_neptune_network_1: "La ligne %{source_objectid} est absente de la liste des lignes du réseau %{target_0_objectid}"
+ detail_2_neptune_network_2: "Le réseau %{source_objectid} a un type de source non valide : %{error_value}, remplacé par %{reference_value}"
+ detail_2_neptune_groupofline_1: "La ligne %{source_objectid} est absente de la liste des lignes du du groupe de lignes %{target_0_objectid}"
+ detail_2_neptune_stoparea_1: "Le fils (contains = %{error_value}) de l'arrêt %{source_objectid} n'est pas de type StopArea ni StopPoint"
+ detail_2_neptune_stoparea_2: "L'arrêt %{source_objectid} de type %{reference_value} ne peut contenir que des arrêts de type StopPlace ou CommercialStopPoint, or un des arrêts contenus (contains = %{target_0_objectid}) est de type %{error_value}"
+ detail_2_neptune_stoparea_3: "L'arrêt %{source_objectid} de type %{reference_value} ne peut contenir que des arrêts de type BoardingPosition ou Quay, or un des arrêts contenus (contains = %{target_0_objectid}) est de type %{error_value}"
+ detail_2_neptune_stoparea_4: "L'arrêt %{source_objectid} de type %{reference_value} ne peut contenir que des points d'arrêt de séquence, or un des arrêts contenus (contains = %{target_0_objectid}) est un StopArea arrêt de type %{error_value}"
+ detail_2_neptune_stoparea_5: "L'arrêt %{source_objectid} référence une position géographique (centroidOfArea = %{error_value}) inexistante"
+ detail_2_neptune_stoparea_6: "L'arrêt %{source_objectid} référence une position géographique (centroidOfArea = %{target_0_objectid}) qui ne le référence pas en retour (containedIn = %{error_value})"
+ detail_2_neptune_itl_1: "Le fils (contains = %{target_0_objectid}) de type %{error_value} ne peut pas être contenu dans l'arrêt %{source_objectid} de type %{reference_value}"
+ detail_2_neptune_itl_2: "L'arrêt de type ITL %{source_objectid} n'est pas utilisé"
+ detail_2_neptune_itl_3: "L'arrêt areaId = %{error_value} référencé par l'ITL %{source_objectid} n'existe pas"
+ detail_2_neptune_itl_4: "L'arrêt areaId = %{target_0_objectid} référencé par l'ITL %{source_objectid} devrait être de type ITL et non de type %{error_value}"
+ detail_2_neptune_itl_5: "La référence lineIdShortCut = %{error_value} de l'ITL %{source_objectid} n'est pas cohérente avec la ligne %{target_0_objectid}"
+ detail_2_neptune_areacentroid_1: "La position géographique <AreaCentroid> %{source_objectid} référence un arrêt (containedIn = %{error_value}) inexistant"
+ detail_2_neptune_areacentroid_2: "La position géographique <AreaCentroid> %{source_objectid} utilise un référentiel géographique (longLatType = %{error_value}) invalide"
+ detail_2_neptune_connectionlink_1: "La correspondance %{source_objectid} référence 2 arrêts inexistants"
+ detail_2_neptune_accesspoint_1: "L'accès %{source_objectid} référence un arrêt parent (containedIn = %{error_value}) inexistant"
+ detail_2_neptune_accesspoint_2: "L'accès %{source_objectid} référence un arrêt parent (containedIn = %{target_0_objectid}) de type invalide (ITL)"
+ detail_2_neptune_accesspoint_3: "L'accès %{source_objectid} n'a pas de lien d'accès"
+ detail_2_neptune_accesspoint_4: "L'accès %{source_objectid} de type In a des liens d'accès sortants"
+ detail_2_neptune_accesspoint_5: "L'accès %{source_objectid} de type Out a des liens d'accès entrants"
+ detail_2_neptune_accesspoint_6: "L'accès %{source_objectid} de type InOut n'a que des liens d'accès entrants ou sortants"
+ detail_2_neptune_accesspoint_7: "L'accès %{source_objectid} utilise un référentiel géographique (longLatType = %{error_value}) invalide"
+ detail_2_neptune_accesslink_1: "La liaison d'accès %{source_objectid} référence %{error_value} qui n'existe pas"
+ detail_2_neptune_accesslink_2: "Sur la liaison d'accès %{source_objectid}, les références startOfLink = %{error_value} et endOfLink = %{reference_value} sont de même type"
+ detail_2_neptune_line_1: "La ligne %{source_objectid} référence un réseau (ptNetworkIdShortcut = %{error_value} inexistant"
+ detail_2_neptune_line_2: "La ligne %{source_objectid} référence un point d'arrêt <StopPoint> (lineEnd = %{error_value}) inexistant "
+ detail_2_neptune_line_3: "La ligne %{source_objectid} référence un point d'arrêt (lineEnd = %{error_value}) qui n'est pas terminus d'une séquence d'arrêts"
+ detail_2_neptune_line_4: "La ligne %{source_objectid} référence une séquence d'arrêt (routeId = %{error_value}) inexistante"
+ detail_2_neptune_line_5: "La séquence d'arrêts (routeId = %{target_0_objectid}) n'est pas référencée par la ligne %{source_objectid}"
+ detail_2_neptune_line_6: "La ligne %{source_objectid} ne renseigne aucun des champs name, number ou publishedName"
+ detail_2_neptune_route_1: "La séquence d'arrêts %{source_objectid} référence une mission (journeyPatternId = %{error_value}) inexistante"
+ detail_2_neptune_route_2: "La séquence d'arrêts %{source_objectid} référence un tronçon (ptLinkId = %{error_value}) inexistant"
+ detail_2_neptune_route_3: "La séquence retour (waybackRouteId = %{error_value}) de la séquence d'arrêts %{source_objectid} n'existe pas"
+ detail_2_neptune_route_4: "Le tronçon (ptLinkId = %{error_value}) référencé par la séquence d'arrêt %{source_objectid} est partagé avec %{target_0_objectid}"
+ detail_2_neptune_route_5: "Le tronçon %{source_objectid} partage un %{reference_value} : %{error_value} avec un autre tronçon"
+ detail_2_neptune_route_6_1: "La séquence d'arrêts %{source_objectid} n'est pas une séquence linéaire, le chainage des tronçons forme un anneau"
+ detail_2_neptune_route_6_2: "La séquence d'arrêts %{source_objectid} n'est pas une séquence linéaire, le chainage des tronçons est rompu au tronçon %{target_0_objectid}"
+ detail_2_neptune_route_7: "La séquence d'arrêts %{source_objectid} ne référence pas la mission %{target_0_objectid} alors que cette mission référence la séquence d'arrêt"
+ detail_2_neptune_route_8: "La mission journeyPatternId = %{target_0_objectid} de la séquence d'arrêts %{source_objectid} utilise des points d'arrêts hors séquence"
+ detail_2_neptune_route_9: "Le point d'arrêt (stopPointId = %{target_0_objectid}) de la séquence d'arrêts %{source_objectid} n'est utilisé dans aucune mission"
+ detail_2_neptune_route_10: "La séquence retour (waybackRouteId = %{target_0_objectid}) ne référence pas la séquence d'arrêts %{source_objectid} comme retour"
+ detail_2_neptune_route_11: "Le sens (%{reference_value}) de la séquence d'arrêt %{source_objectid} n'est pas compatible avec celui (%{error_value}) de la séquence opposée %{target_0_objectid}"
+ detail_2_neptune_route_12: "Le départ dans la zone %{reference_value}) de la séquence d'arrêts %{source_objectid} n'est pas dans la même zone que l'arrivée (zone %{error_value} de la séquence retour %{target_0_objectid}"
+ detail_2_neptune_ptlink_1: "Le tronçon %{source_objectid} reférence un %{reference_value} = %{error_value} inexistant"
+ detail_2_neptune_journeypattern_1: "La mission %{source_objectid} référence une séquence d'arrêts (routeId = %{error_value}) inexistante"
+ detail_2_neptune_journeypattern_2: "La mission %{source_objectid} référence un point d'arrêt (stopPointId = %{error_value}) inexistant"
+ detail_2_neptune_journeypattern_3: "La mission %{source_objectid} référence une ligne (lineIdShortcut = %{error_value}) inexistante"
+ detail_2_neptune_stoppoint_1: "Le point d'arrêt %{source_objectid} référence une ligne (lineIdShortcut = %{error_value}) inexistante"
+ detail_2_neptune_stoppoint_2: "Le point d'arrêt %{source_objectid} référence un réseau (ptNetworkIdShortcut = %{error_value}) inexistant"
+ detail_2_neptune_stoppoint_3: "Le point d'arrêt %{source_objectid} référence un arrêt (containedIn = %{error_value}) inexistant"
+ detail_2_neptune_stoppoint_4: "Le point d'arrêt %{source_objectid} utilise un référentiel géographique (longLatType = %{error_value}) invalide"
+ detail_2_neptune_timetable_1: "Le calendrier (<Timetable>) %{source_objectid} ne référence aucune course existante"
+ detail_2_neptune_timetable_2: "La course %{source_objectid} n'est référencée dans aucun calendrier (<Timetable>)"
+ detail_2_neptune_timetable_3: "Le calendrier (<Timetable>) %{source_objectid} contient une période invalide"
+ detail_2_neptune_vehiclejourney_1: "La course %{source_objectid} référence une séquence d'arrêts (routeId = %{error_value}) inexistante"
+ detail_2_neptune_vehiclejourney_2: "La course %{source_objectid} référence une mission (journeyPatternId = %{error_value}) inexistante"
+ detail_2_neptune_vehiclejourney_3: "La course %{source_objectid} référence une ligne (lineIdShortcut = %{error_value}) inexistante"
+ detail_2_neptune_vehiclejourney_4: "La course %{source_objectid} référence un opérateur (operatorId = %{error_value}) inexistant"
+ detail_2_neptune_vehiclejourney_5: "La course %{source_objectid} référence une fréquence horaire (timeSlotId = %{error_value}) inexistante"
+ detail_2_neptune_vehiclejourney_6: "La course %{source_objectid} référence une mission %{error_value} incompatible de la séquence d'arrêts %{reference_value}"
+ detail_2_neptune_vehiclejourney_7: "La mission %{source_objectid} n'est référencée par aucune course"
+ detail_2_neptune_vehiclejourney_8: "La course %{source_objectid} doit référencer une mission si la séquence d'arrêt en possède plusieurs"
+ detail_2_neptune_vehiclejourneyatstop_1: "La course %{source_objectid} fournit un horaire sur un point d'arrêt (stopPointId = %{error_value}) inexistant"
+ detail_2_neptune_vehiclejourneyatstop_2: "Un horaire de la course %{source_objectid} référence une autre course : vehicleJourneyId = %{error_value}"
+ detail_2_neptune_vehiclejourneyatstop_3: "La course %{source_objectid} ne fournit pas les horaires des points d'arrêts selon l'ordre de la séquence d'arrêts %{error_value}"
+ detail_2_neptune_vehiclejourneyatstop_4: "La course %{source_objectid} ne fournit pas les horaires des points d'arrêts de sa mission %{error_value}"
+ detail_2_neptune_facility_1: "L'équipement %{source_objectid} est situé sur un arrêt inexistant (containedId = %{error_value})"
+ detail_2_neptune_facility_2: "L'équipement %{source_objectid} référence un arrêt (stopAreaId = %{error_value}) inexistant"
+ detail_2_neptune_facility_3: "L'équipement %{source_objectid} référence une ligne (lineId = %{error_value} inexistante"
+ detail_2_neptune_facility_4: "L'équipement %{source_objectid} référence une correspondance (connectionLinkId = %{error_value} inexistante"
+ detail_2_neptune_facility_5: "L'équipement %{source_objectid} référence un point d'arrêt (stopPointId = %{error_value} inexistant"
+ detail_2_neptune_facility_6: "L'équipement %{source_objectid} utilise un référentiel géographique (longLatType = %{error_value}) invalide"
+ ## GTFS
+ detail_2_gtfs_common_1: ""
+ detail_2_gtfs_common_2: ""
+ detail_2_gtfs_common_3: ""
+ detail_2_gtfs_agency_1: ""
+ detail_2_gtfs_agency_2: ""
+ detail_2_gtfs_stop_1: ""
+ detail_2_gtfs_stop_2: ""
+ detail_2_gtfs_stop_3: ""
+ detail_2_gtfs_stop_4: ""
+ detail_2_gtfs_stop_5: ""
+ detail_2_gtfs_stop_6: ""
+ detail_2_gtfs_route_1: ""
+ detail_2_gtfs_route_2: ""
+ detail_2_gtfs_route_3: ""
+ detail_2_gtfs_route_4: ""
+ detail_2_gtfs_route_5: ""
+ detail_2_gtfs_route_6: ""
+ detail_2_gtfs_route_7: "non défini"
+ detail_2_gtfs_route_8: ""
+ detail_2_gtfs_route_9: ""
+ detail_2_gtfs_route_10: ""
+ detail_2_gtfs_route_11: ""
+ detail_2_gtfs_route_12: ""
+ detail_2_gtfs_trip_1: ""
+ detail_2_gtfs_trip_2: ""
+ detail_2_gtfs_trip_3: ""
+ detail_2_gtfs_trip_4: ""
+ detail_2_gtfs_trip_5: ""
+ detail_2_gtfs_trip_6: ""
+ detail_2_gtfs_trip_7: ""
+ detail_2_gtfs_stoptime_1: ""
+ detail_2_gtfs_stoptime_2: ""
+ detail_2_gtfs_stoptime_3: ""
+ detail_2_gtfs_stoptime_4: ""
+ detail_2_gtfs_stoptime_5: ""
+ detail_2_gtfs_stoptime_6: ""
+ detail_2_gtfs_stoptime_7: ""
+ detail_2_gtfs_stoptime_8: ""
+ detail_2_gtfs_stoptime_9: ""
+ detail_2_gtfs_calendar_1: ""
+ detail_2_gtfs_calendar_2: ""
+ detail_2_gtfs_calendar_3: ""
+ detail_2_gtfs_calendar_4: ""
+ detail_2_gtfs_calendar_5: ""
+ detail_2_gtfs_calendar_6: ""
+ detail_2_gtfs_frequency_1: ""
+ detail_2_gtfs_frequency_2: ""
+ detail_2_gtfs_transfer_1: ""
+ detail_2_gtfs_transfer_2: ""
+
+ #### level 3
+ detail_3_stoparea_1: "L'arrêt %{source_label} (%{source_objectid}) n'est pas géolocalisé"
+ detail_3_stoparea_2: "L'arrêt %{source_label} (%{source_objectid}) est localisé trop près de l'arrêt %{target_0_label} (%{target_0_objectid}) : distance %{error_value} < %{reference_value}"
+ detail_3_stoparea_3: "Les arrêts %{source_label} (%{source_objectid} et %{target_0_objectid}) sont desservis par les mêmes lignes"
+ detail_3_stoparea_4: "L'arrêt %{source_label} (%{source_objectid}) est en dehors du périmètre de contrôle"
+ detail_3_stoparea_5: "L'arrêt %{source_label} (%{source_objectid}) est localisé trop loin de son parent %{target_0_label} (%{target_0_objectid}) : distance %{error_value} > %{reference_value}"
+ detail_3_accesspoint_1: "L'accès %{source_label} (%{source_objectid}) n'est pas géolocalisé"
+ detail_3_accesspoint_2: "L'accès %{source_label} (%{source_objectid}) est localisé trop près de l'accès %{target_0_label} (%{target_0_objectid}) : distance %{error_value} < %{reference_value}"
+ detail_3_accesspoint_3: "L'accès %{source_label} (%{source_objectid}) est localisé trop loin de son parent %{target_0_label} (%{target_0_objectid}) : distance %{error_value} > %{reference_value}"
+ detail_3_connectionlink_1: "Sur la correspondance %{source_label} (%{source_objectid}), la distance entre les arrêts %{target_0_label} (%{target_0_objectid}) et %{target_1_label} (%{target_1_objectid}) est trop grande : distance %{error_value} > %{reference_value}"
+ detail_3_connectionlink_2: "Sur la correspondance %{source_label} (%{source_objectid}), la distance entre les arrêts %{target_0_label} (%{target_0_objectid}) et %{target_1_label} (%{target_1_objectid}) : %{error_value} est supérieure à la longueur du lien : %{reference_value}"
+ detail_3_connectionlink_3_1: "Sur la correspondance %{source_label} (%{source_objectid}), la vitesse par défaut %{error_value} est supérieure à %{reference_value} km/h"
+ detail_3_connectionlink_3_2: "Sur la correspondance %{source_label} (%{source_objectid}), la vitesse pour un voyageur occasionnel %{error_value} est supérieure à %{reference_value} km/h"
+ detail_3_connectionlink_3_3: "Sur la correspondance %{source_label} (%{source_objectid}), la vitesse pour un voyageur habitué %{error_value} est supérieure à %{reference_value} km/h"
+ detail_3_connectionlink_3_4: "Sur la correspondance %{source_label} (%{source_objectid}), la vitesse pour un voyageur à mobilité réduite %{error_value} est supérieure à %{reference_value} km/h"
+ detail_3_accesslink_1: "Sur le lien d'accès %{source_label} (%{source_objectid}), la distance entre l'arrêt %{target_0_label} (%{target_0_objectid}) et l'accès %{target_1_label} (%{target_1_objectid}) est trop grande : distance %{error_value} > %{reference_value}"
+ detail_3_accesslink_2: "Sur le lien d'accès %{source_label} (%{source_objectid}), la distance entre l'arrêt %{target_0_label} (%{target_0_objectid}) et l'accès %{target_1_label} (%{target_1_objectid}) : %{error_value} est supérieure à la longueur du lien : %{reference_value}"
+ detail_3_accesslink_3_1: "Sur le lien d'accès %{source_label} (%{source_objectid}), la vitesse par défaut %{error_value} est supérieure à %{reference_value} km/h"
+ detail_3_accesslink_3_2: "Sur le lien d'accès %{source_label} (%{source_objectid}), la vitesse pour un voyageur occasionnel %{error_value} est supérieure à %{reference_value} km/h"
+ detail_3_accesslink_3_3: "Sur le lien d'accès %{source_label} (%{source_objectid}), la vitesse pour un voyageur habitué %{error_value} est supérieure à %{reference_value} km/h"
+ detail_3_accesslink_3_4: "Sur le lien d'accès %{source_label} (%{source_objectid}), la vitesse pour un voyageur à mobilité réduite %{error_value} est supérieure à %{reference_value} km/h"
+ detail_3_line_1: "La ligne %{source_label} (%{source_objectid}) a une ligne homonyme sur le même réseau %{target_0_label} (%{target_0_objectid})"
+ detail_3_line_2: "La ligne %{source_label} (%{source_objectid}) n'a pas de séquence d'arrêts"
+ detail_3_route_1: "Sur la séquence d'arrêt %{source_label} (%{source_objectid}), l'arrêt %{target_0_label} (%{target_0_objectid}) est desservi 2 fois consécutivement"
+ detail_3_route_2: "Les terminus de la séquence d'arrêt %{source_label} (%{source_objectid}) ne sont pas cohérent avec ceux de sa séquence opposée : l'une part de %{target_0_label} (%{target_0_objectid}) et l'autre arrive à %{target_1_label} (%{target_1_objectid})"
+ detail_3_route_3_1: "Sur la séquence d'arrêt %{source_label} (%{source_objectid}), entre les arrêts %{target_0_label} (%{target_0_objectid}) et %{target_1_label} (%{target_1_objectid}), distance %{error_value} < %{reference_value} "
+ detail_3_route_3_2: "Sur la séquence d'arrêt %{source_label} (%{source_objectid}), entre les arrêts %{target_0_label} (%{target_0_objectid}) et %{target_1_label} (%{target_1_objectid}), distance %{error_value} > %{reference_value} "
+ detail_3_route_4: "La séquence d'arrêt %{source_label} (%{source_objectid}) utilise la même liste ordonnée d'arrêts que la séquence d'arrêts %{target_0_label} (%{target_0_objectid})"
+ detail_3_route_5: "La séquence d'arrêt %{source_label} (%{source_objectid}) peut admettre la séquence %{target_0_label} (%{target_0_objectid}) comme séquence opposée"
+ detail_3_route_6: "La séquence d'arrêt %{source_label} (%{source_objectid}) doit avoir un minimum de 2 arrêts"
+ detail_3_route_7: "La séquence d'arrêt %{source_label} (%{source_objectid}) n'a pas de mission"
+ detail_3_route_8: "La séquence d'arrêt %{source_label} (%{source_objectid}) a %{error_value} arrêts non utilisés par des missions"
+ detail_3_route_9: "La séquence d'arrêt %{source_label} (%{source_objectid}) n'a pas de mission desservant l'ensemble de ses arrêts"
+ detail_3_journeypattern_1: "La mission %{source_label} (%{source_objectid}) utilise les mêmes arrêts que la mission %{target_0_label} (%{target_0_objectid}) - nombre d'arrêts = %{error_value}"
+ detail_3_vehiclejourney_1: "Arrêt %{target_0_label} (%{target_0_objectid}) : durée d'arrêt mesurée %{error_value} > %{reference_value}"
+ detail_3_vehiclejourney_2_1: "La course %{source_label} (%{source_objectid}) a des horaires décroissants entre les arrêts %{target_0_label} (%{target_0_objectid}) et %{target_1_label} (%{target_1_objectid})"
+ detail_3_vehiclejourney_2_2: "La course %{source_label} (%{source_objectid}) a une vitesse %{error_value} < %{reference_value} km/h entre les arrêts %{target_0_label} (%{target_0_objectid}) et %{target_1_label} (%{target_1_objectid})"
+ detail_3_vehiclejourney_2_3: "La course %{source_label} (%{source_objectid}) a une vitesse %{error_value} > %{reference_value} km/h entre les arrêts %{target_0_label} (%{target_0_objectid}) et %{target_1_label} (%{target_1_objectid})"
+ detail_3_vehiclejourney_3: "La course %{source_label} (%{source_objectid}) a une variation de progression entre les arrêts %{target_1_label} (%{target_1_objectid}) et %{target_2_label} (%{target_2_objectid}) %{error_value} > %{reference_value} avec la course %{target_0_label} (%{target_0_objectid})"
+ detail_3_vehiclejourney_4: "La course %{source_label} (%{source_objectid}) n'a pas de calendrier d'application"
+ detail_3_facility_1: "L'équipement %{source_label} (%{source_objectid}) n'est pas géolocalisé"
+ detail_3_facility_2: "L'équipement %{source_label} (%{source_objectid}) est localisé trop loin de son parent %{areaName} (%{areaId}) : distance %{error_value} > %{reference_value}"
+
+ detail_4_network_1_min_size: "L'attribut %{reference_value} du réseau %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value}) "
+ detail_4_network_1_max_size: "L'attribut %{reference_value} du réseau %{source_label} (%{source_objectid}) est trop grand (%{error_value})"
+ detail_4_network_1_pattern: "L'attribut %{reference_value} du réseau %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})"
+ detail_4_network_1_unique: "L'attribut %{reference_value} du réseau %{source_label} (%{source_objectid}) a une valeur partagée avec le réseau %{target_0_label} (%{target_0_objectid})"
+ detail_4_company_1_min_size: "L'attribut %{reference_value} du transporteur %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})"
+ detail_4_company_1_max_size: "L'attribut %{reference_value} du transporteur %{source_label} (%{source_objectid}) est trop grand (%{error_value})"
+ detail_4_company_1_pattern: "L'attribut %{reference_value} du transporteur %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})"
+ detail_4_company_1_unique: "L'attribut %{reference_value} du transporteur %{source_label} (%{source_objectid}) a une valeur partagée avec le transporteur %{target_0_label} (%{target_0_objectid})"
+ detail_4_groupofline_1_min_size: "L'attribut %{reference_value} du groupe de lignes %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})"
+ detail_4_groupofline_1_max_size: "L'attribut %{reference_value} du groupe de lignes %{source_label} (%{source_objectid}) est trop grand (%{error_value})"
+ detail_4_groupofline_1_pattern: "L'attribut %{reference_value} du groupe de lignes %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})"
+ detail_4_groupofline_1_unique: "L'attribut %{reference_value} du groupe de lignes %{source_label} (%{source_objectid}) a une valeur partagée avec le groupe de lignes %{target_0_label} (%{target_0_objectid})"
+ detail_4_stoparea_1_min_size: "L'attribut %{reference_value} de l'arrêt %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})"
+ detail_4_stoparea_1_max_size: "L'attribut %{reference_value} de l'arrêt %{source_label} (%{source_objectid}) est trop grand (%{error_value})"
+ detail_4_stoparea_1_pattern: "L'attribut %{reference_value} de l'arrêt %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})"
+ detail_4_stoparea_1_unique: "L'attribut %{reference_value} de l'arrêt %{source_label} (%{source_objectid}) a une valeur partagée avec l'arrêt %{target_0_label} (%{target_0_objectid})"
+ detail_4_stoparea_2: "L'arrêt physique %{source_label} (%{source_objectid}) n'a pas de parent"
+ detail_4_accesspoint_1_min_size: "L'attribut %{reference_value} du point d'accès %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})"
+ detail_4_accesspoint_1_max_size: "L'attribut %{reference_value} du point d'accès %{source_label} (%{source_objectid}) est trop grand (%{error_value})"
+ detail_4_accesspoint_1_pattern: "L'attribut %{reference_value} du point d'accès %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})"
+ detail_4_accesspoint_1_unique: "L'attribut %{reference_value} du point d'accès %{source_label} (%{source_objectid}) a une valeur partagée avec le point d'accès %{target_0_label} (%{target_0_objectid})"
+ detail_4_accesslink_1_min_size: "L'attribut %{reference_value} du lien d'accès %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})"
+ detail_4_accesslink_1_max_size: "L'attribut %{reference_value} du lien d'accès %{source_label} (%{source_objectid}) est trop grand (%{error_value})"
+ detail_4_accesslink_1_pattern: "L'attribut %{reference_value} du lien d'accès %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})"
+ detail_4_accesslink_1_unique: "L'attribut %{reference_value} du lien d'accès %{source_label} (%{source_objectid}) a une valeur partagée avec le lien d'accès %{target_0_label} (%{target_0_objectid})"
+ detail_4_connectionlink_1_min_size: "L'attribut %{reference_value} de la correspondance %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})"
+ detail_4_connectionlink_1_max_size: "L'attribut %{reference_value} de la correspondance %{source_label} (%{source_objectid}) est trop grand (%{error_value})"
+ detail_4_connectionlink_1_pattern: "L'attribut %{reference_value} de la correspondance %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})"
+ detail_4_connectionlink_1_unique: "L'attribut %{reference_value} de la correspondance %{source_label} (%{source_objectid}) a une valeur partagée avec la correspondance %{target_0_label} (%{target_0_objectid})"
+ detail_4_connectionlink_2: "Sur la correspondance %{source_label} (%{source_objectid}) au moins l'un des arrêts %{startName} (%{startId}) et %{endName} (%{endId}) n'est pas un arrêt physique"
+ detail_4_timetable_1_min_size: "L'attribut %{reference_value} du calendrier %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})"
+ detail_4_timetable_1_max_size: "L'attribut %{reference_value} du calendrier %{source_label} (%{source_objectid}) est trop grand (%{error_value})"
+ detail_4_timetable_1_pattern: "L'attribut %{reference_value} du calendrier %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})"
+ detail_4_timetable_1_unique: "L'attribut %{reference_value} du calendrier %{source_label} (%{source_objectid}) a une valeur partagée avec le calendrier %{target_0_label} (%{target_0_objectid})"
+ detail_4_line_1_min_size: "L'attribut %{reference_value} de la ligne %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})"
+ detail_4_line_1_max_size: "L'attribut %{reference_value} de la ligne %{source_label} (%{source_objectid}) est trop grand (%{error_value})"
+ detail_4_line_1_pattern: "L'attribut %{reference_value} de la ligne %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})"
+ detail_4_line_1_unique: "L'attribut %{reference_value} de la ligne %{source_label} (%{source_objectid}) a une valeur partagée avec la ligne %{target_0_label} (%{target_0_objectid})"
+ detail_4_line_2: "La ligne %{source_label} (%{source_objectid}) a un mode de transport interdit %{error_value}"
+ detail_4_line_3_1: "La ligne %{source_label} (%{source_objectid}) n'a pas de groupe de lignes"
+ detail_4_line_3_2: "La ligne %{source_label} (%{source_objectid}) a plusieurs groupes de lignes"
+ detail_4_line_4_1: "La ligne %{source_label} (%{source_objectid}) n'a pas de séquence d'arrêts"
+ detail_4_line_4_2: "La ligne %{source_label} (%{source_objectid}) a trop de séquences d'arrêts non associées (%{error_value})"
+ detail_4_route_1_min_size: "L'attribut %{reference_value} de la séquence d'arrêts %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})"
+ detail_4_route_1_max_size: "L'attribut %{reference_value} de la séquence d'arrêts %{source_label} (%{source_objectid}) est trop grand (%{error_value})"
+ detail_4_route_1_pattern: "L'attribut %{reference_value} de la séquence d'arrêts %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})"
+ detail_4_route_1_unique: "L'attribut %{reference_value} de la séquence d'arrêts %{source_label} (%{source_objectid}) a une valeur partagée avec la séquence d'arrêts %{target_0_label} (%{target_0_objectid})"
+ detail_4_journeypattern_1_min_size: "L'attribut %{reference_value} de la mission %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})"
+ detail_4_journeypattern_1_max_size: "L'attribut %{reference_value} de la mission %{source_label} (%{source_objectid}) est trop grand (%{error_value})"
+ detail_4_journeypattern_1_pattern: "L'attribut %{reference_value} de la mission %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})"
+ detail_4_journeypattern_1_unique: "L'attribut %{reference_value} de la mission %{source_label} (%{source_objectid}) a une valeur partagée avec la mission %{target_0_label} (%{target_0_objectid})"
+ detail_4_vehiclejourney_1_min_size: "L'attribut %{reference_value} de la course %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})"
+ detail_4_vehiclejourney_1_max_size: "L'attribut %{reference_value} de la course %{source_label} (%{source_objectid}) est trop grand (%{error_value})"
+ detail_4_vehiclejourney_1_pattern: "L'attribut %{reference_value} de la course %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})"
+ detail_4_vehiclejourney_1_unique: "L'attribut %{reference_value} de la course %{source_label} (%{source_objectid}) a une valeur partagée avec la course %{target_0_label} (%{target_0_objectid})"
+ detail_4_vehiclejourney_2: "La course %{source_label} (%{source_objectid}) a un mode de transport interdit %{error_value}"
+ activemodel:
+ models:
+ compliance_check_result:
+ zero: "Validation"
+ one: "Validation"
+ other: "Validation"
+ attributes:
+ compliance_check_result:
+ 1-NEPTUNE-XML-1: "Conformité à la syntaxe XML suivant les recommandations du W3C."
+ 1-NEPTUNE-XML-2: "Conformité au schéma défini par la XSD du profil TRIDENT/NEPTUNE."
+ 2-NEPTUNE-Common-1: "Unicité des éléments objectId des différents objets d'un lot de fichiers Neptune."
+ 2-NEPTUNE-Common-2: "Unicité des éléments regitrationNumber des différents objets d'un lot de fichiers Neptune."
+ 2-NEPTUNE-Network-1: "Correcte référence à des lignes <Line> dans version du réseau <PTNetwork>."
+ 2-NEPTUNE-Network-2: "Valeur autorisée pour le type de source <SourceType> dans version du réseau <PTNetwork>."
+ 2-NEPTUNE-GroupOfLine-1: "Correcte référence à des lignes <Line> dans groupe de lignes <GroupOfLine>."
+ 2-NEPTUNE-StopArea-1: "Correcte référence à des arrêts <StopArea> et/ou à des points d'arrêt sur parcours <StopPoint> dans les arrêts <StopArea>."
+ 2-NEPTUNE-StopArea-2: "Correcte référence à des arrêts <StopArea> dans les arrêts <StopArea> de type StopPlace."
+ 2-NEPTUNE-StopArea-3: "Correcte référence à des arrêts <StopArea> dans les arrêts <StopArea> de type CommercialStopPoint."
+ 2-NEPTUNE-StopArea-4: "Correcte référence à des points d'arrêt sur parcours <StopPoint> dans les arrêts <StopArea> de type BoardingPosition ou Quay."
+ 2-NEPTUNE-StopArea-5: "Correcte référence à une position géographique <AreaCentroid> dans les arrêts <StopArea> de tout type StopPlace, CommercialStopPoint, BoardingPosition et Quay."
+ 2-NEPTUNE-StopArea-6: "référenceréciproque d'une position géographique <AreaCentroid> dans les arrêts <StopArea> de tout type StopPlace, CommercialStopPoint, BoardingPosition et Quay."
+ 2-NEPTUNE-ITL-1: "Correcte référence à des arrêts <StopArea> dans les arrêts <StopArea> de type ITL."
+ 2-NEPTUNE-ITL-2: "Correcte référence à des arrêts <StopArea> de type ITL dans la classe d’objets <ITL>."
+ 2-NEPTUNE-ITL-3: "Correcte référence à des arrêts <StopArea> dans la classe d’objets <ITL>."
+ 2-NEPTUNE-ITL-4: "Vérification du type de référence à des arrêts <StopArea> type ITL dans la classe d’objets <ITL>."
+ 2-NEPTUNE-ITL-5: "Bonne référence à la ligne <Line> dans la classe d’objets <ITL>."
+ 2-NEPTUNE-AreaCentroid-1: "Correcte référence à des arrêts <StopArea> dans la classe d’objets <AreaCentroid>."
+ 2-NEPTUNE-AreaCentroid-2: "Vérification du modèle de projection de référence utilisé."
+ 2-NEPTUNE-ConnectionLink-1: "Correcte référence aux arrêts <StopArea> définissant des tronçons de correspondance <ConnectionLink>."
+ 2-NEPTUNE-AccessPoint-1: "Correcte référence à un arrêt <StopArea> dans les accès <AccessPoint>."
+ 2-NEPTUNE-AccessPoint-2: "Correcte référence à un arrêt <StopArea> dans les accès <AccessPoint>."
+ 2-NEPTUNE-AccessPoint-3: "Existence de liens d'accès <AccessLink> sur les accès <AccessPoint>."
+ 2-NEPTUNE-AccessPoint-4: "Existence de liens d'accès <AccessLink> sur les accès <AccessPoint> de type 'in'."
+ 2-NEPTUNE-AccessPoint-5: "Existence de liens d'accès <AccessLink> sur les accès <AccessPoint> sur les accès de type 'out'."
+ 2-NEPTUNE-AccessPoint-6: "Existence de liens d'accès <AccessLink> sur les accès <AccessPoint> sur les accès de type 'inout'."
+ 2-NEPTUNE-AccessPoint-7: "Vérification du modèle de projection de référence utilisé."
+ 2-NEPTUNE-AccessLink-1: "Correcte référence aux arrêts <StopArea> et accès <AccessPoint> définissant des liens d'accès <AccessLink>."
+ 2-NEPTUNE-AccessLink-2: "Correcte référence aux arrêts <StopArea> et accès <AccessPoint> définissant des liens d'accès <AccessLink>."
+ 2-NEPTUNE-Line-1: "Correcte référence au réseau dans l'objet ligne <Line>."
+ 2-NEPTUNE-Line-2: "Correcte référence à un point d'arrêt sur parcours <StopPoint> comme terminus de ligne <Line>."
+ 2-NEPTUNE-Line-3: "Correcte référence à un point d'arrêt sur parcours <StopPoint> comme terminus de ligne <Line>."
+ 2-NEPTUNE-Line-4: "Correcte référence aux séquences d'arrêts <ChouetteRoute> dans l'objet ligne <Line>."
+ 2-NEPTUNE-Line-5: "Correcte référence aux séquences d'arrêts <ChouetteRoute> dans l'objet ligne <Line>."
+ 2-NEPTUNE-Line-6: "Présence d'au moins une valeur parmi <name>,<number> ou <publishedName> dans l'objet ligne <Line>."
+ 2-NEPTUNE-Route-1: "Existence des missions <JourneyPattern> référencées par la séquence d'arrêt <ChouetteRoute>."
+ 2-NEPTUNE-Route-2: "Existence des tronçons commerciaux <PtLink> référencés par la séquence d'arrêt <ChouetteRoute>."
+ 2-NEPTUNE-Route-3: "Existence de la séquence opposée <ChouetteRoute> référencée par la séquence d'arrêt <ChouetteRoute>."
+ 2-NEPTUNE-Route-4: "Correcte référence à un tronçon commercial <PtLink> dans une séquence d'arrêts <ChouetteRoute>."
+ 2-NEPTUNE-Route-5: "Vérification que tous les points d'arrêts sur parcours sont rattachés à une séquence d'arrêts <ChouetteRoute> au départ d'un tronçon commercial <PtLink> et/ou à l'arrivée d'un autre tronçon commercial <PtLink> de la même séquence d'arrêts."
+ 2-NEPTUNE-Route-6: "Vérification du correct ordonnancement des points d'arrêts sur parcours <StopPoint> dans le chainage des tronçons <PtLink> d'une séquence d'arrêts <ChouetteRoute>."
+ 2-NEPTUNE-Route-7: "référence mutuelle des missions <JourneyPattern> et des séquences d'arrêts <ChouetteRoute>."
+ 2-NEPTUNE-Route-8: "Cohérence des références aux points d'arrêt des missions <JourneyPattern> et des séquences d'arrêts <ChouetteRoute>."
+ 2-NEPTUNE-Route-9: "Utilité des points d'arrêts sur parcours des séquences d'arrêts <ChouetteRoute>."
+ 2-NEPTUNE-Route-10: "référence d'une séquence d'arrêts <ChouetteRoute> à une séquence d'arrêts opposée."
+ 2-NEPTUNE-Route-11: "Cohérence des sens de la référence d'une séquence d'arrêts <ChouetteRoute> à une séquence d'arrêts opposée."
+ 2-NEPTUNE-Route-12: "Cohérence des terminus de la référence d'une séquence d'arrêts <ChouetteRoute> à une séquence d'arrêts opposée."
+ 2-NEPTUNE-PtLink-1: "Existence des arrêts <StopPoint> référencés par les tronçons commerciaux <PTLink>."
+ 2-NEPTUNE-JourneyPattern-1: "Existence de la séquence d'arrêt <ChouetteRoute> référencée par la mission <JourneyPattern>."
+ 2-NEPTUNE-JourneyPattern-2: "Existence des arrêts <StopPoint> référencés par la mission <JourneyPattern>."
+ 2-NEPTUNE-JourneyPattern-3: "Existence de la ligne <Line> référencée par la mission <JourneyPattern>."
+ 2-NEPTUNE-StopPoint-1: "Existence de la ligne <Line> référencée par l'arrêt <StopPoint>."
+ 2-NEPTUNE-StopPoint-2: "Existence du réseau <PTNetwork> référence par l'arrêt <StopPoint>."
+ 2-NEPTUNE-StopPoint-3: "Existence de l'arrêt <StopArea> référencé par l'arrêt <StopPoint>."
+ 2-NEPTUNE-StopPoint-4: "Vérification du modèle de projection de référence utilisé."
+ 2-NEPTUNE-Timetable-1: "Utilité des calendriers."
+ 2-NEPTUNE-Timetable-2: "Utilité des calendriers."
+ 2-NEPTUNE-Timetable-2: "Validité des dates de début et de fin des périodes des calendriers"
+ 2-NEPTUNE-VehicleJourney-1: "Existence de la séquence d'arrêt <ChouetteRoute> référencée par la course <VehicleJourney>."
+ 2-NEPTUNE-VehicleJourney-2: "Existence de la mission <JourneyPattern> référencée par la course <VehicleJourney>."
+ 2-NEPTUNE-VehicleJourney-3: "Existence de la ligne <Line> référencée par la course <VehicleJourney>."
+ 2-NEPTUNE-VehicleJourney-4: "Existence de l'opérateur <Company> référencé par la course <VehicleJourney>."
+ 2-NEPTUNE-VehicleJourney-5: "Existence de la tranche horaire <TimeSlot> référencée par la course <VehicleJourney>."
+ 2-NEPTUNE-VehicleJourney-6: "Cohérence entre la course, la mission et la séquence d'arrêts."
+ 2-NEPTUNE-VehicleJourney-7: "Utilité des missions"
+ 2-NEPTUNE-VehicleJourney-8: "Mission implicite"
+ 2-NEPTUNE-VehicleJourneyAtStop-1: "Existence de l'arrêt <StopPoint> référencé par l'horaire <VehicleJourneyAtStop>."
+ 2-NEPTUNE-VehicleJourneyAtStop-2: "Existence de la course <VehicleJourney> référenceé par l'horaire <VehicleJourneyAtStop>."
+ 2-NEPTUNE-VehicleJourneyAtStop-3: "adéquation des horaires de la course à la séquence d'arrêts."
+ 2-NEPTUNE-VehicleJourneyAtStop-4: "adéquation des horaires de la course à la mission."
+ 2-NEPTUNE-Facility-1: "Existence de l'arrêt <StopArea> référencé par l'équipement <Facility>."
+ 2-NEPTUNE-Facility-2: "Existence de l'arrêt <StopArea> référencé par l'équipement <Facility>."
+ 2-NEPTUNE-Facility-3: "Existence de la ligne <Line> référencée par l'équipement <Facility>."
+ 2-NEPTUNE-Facility-4: "Existence de la correspondance <ConnectionLink> référencée par l'équipement <Facility>."
+ 2-NEPTUNE-Facility-5: "Existence de l'arrêt <StopPoint> référencé par l'équipement <Facility>."
+ 2-NEPTUNE-Facility-6: "Vérification du modèle de projection de référence utilisé."
+
+ ## GTFS
+ 1-GTFS-CSV-1: "Vérification du format CSV"
+ 1-GTFS-CSV-2: "Vérification de la présence d'un entête"
+ 1-GTFS-CSV-3: "Vérification de la casse des noms des colonnes"
+ 1-GTFS-CSV-6: "Vérification de la non présence de balise HTML"
+ 1-GTFS-CSV-7: "Vérification de la non présence d'espace en début ou fin de colonne"
+ 1-GTFS-CSV-10: "Vérification de la syntaxe d'une ligne"
+ 1-GTFS-CSV-11: "Vérification de la syntaxe des entêtes"
+ 1-GTFS-CSV-12: "Vérification de la non présence de doublons dans les entêtes"
+ 1-GTFS-CSV-13: "Vérification de la syntaxe CSV GTFS du fichier"
+ 1-GTFS-CSV-14: "Vérification de la lecture du fichier"
+ 1-GTFS-Agency-1: "Vérification de la présence du fichier agency.txt"
+ 1-GTFS-Agency-2: "Vérification de la présence de la colonne agency_id"
+ 1-GTFS-Agency-3: "Vérification de l'unicité des valeurs de la colonne agency_id"
+ 1-GTFS-Agency-4: "Vérification de la présence des colonnes obligatoires"
+ 1-GTFS-Agency-5: "Vérification de la présence d'un contenu pour les colonnes obligatoires"
+ 1-GTFS-Agency-6: "Vérification du format de la colonne agency_timezone"
+ 1-GTFS-Agency-7: "Vérification du format de la colonne agency_url"
+ 1-GTFS-Agency-8: "Vérification du format de la colonne agency_lang"
+ 1-GTFS-Agency-9: "Vérification du format de la colonne agency_fare_url"
+ 1-GTFS-Agency-10: "Vérification de la présence de colonnes inconnues"
+ 1-GTFS-Agency-11: "Vérification de la présence d'au moins une entrée agency"
+ 1-GTFS-Stop-1: "Vérification de la présence du fichier stops.txt"
+ 1-GTFS-Stop-2: "Vérification de la présence des colonnes obligatoires"
+ 1-GTFS-Stop-3: "Vérification de la présence d'un contenu pour les colonnes obligatoires"
+ 1-GTFS-Stop-4: "Vérification de l'unicité des valeurs de la colonne stop_id"
+ 1-GTFS-Stop-5: "Vérification du format de la colonne stop_lat"
+ 1-GTFS-Stop-6: "Vérification du format de la colonne stop_lon"
+ 1-GTFS-Stop-7: "Vérification du format de la colonne stop_url"
+ 1-GTFS-Stop-8: "Vérification du format de la colonne location_type"
+ 1-GTFS-Stop-9: "Vérification du format de la colonne stop_timezone"
+ 1-GTFS-Stop-10: "Vérification du format de la colonne wheelchair_boarding"
+ 1-GTFS-Stop-11: "Vérification de la présence de colonnes inconnues"
+ 1-GTFS-Stop-12: "Vérification de la présence d'au moins une entrée stop"
+ 1-GTFS-Route-1: "Vérification de la présence du fichier routes.txt"
+ 1-GTFS-Route-2: "Vérification de la présence des colonnes obligatoires"
+ 1-GTFS-Route-3: "Vérification de la présence d'un contenu pour les colonnes obligatoires"
+ 1-GTFS-Route-4: "Vérification de la présence au minimum de route_short_name ou route_long_name"
+ 1-GTFS-Route-5: "Vérification de l'unicité des valeurs de la colonne route_id"
+ 1-GTFS-Route-6: "Vérification du format de la colonne route_type"
+ 1-GTFS-Route-7: "Vérification du format de la colonne route_url"
+ 1-GTFS-Route-8: "Vérification du format de la colonne route_color"
+ 1-GTFS-Route-9: "Vérification du format de la colonne route_text_color"
+ 1-GTFS-Route-10: "Vérification de la présence de colonnes inconnues"
+ 1-GTFS-Route-11: "Vérification de la présence d'au moins une entrée route"
+ 1-GTFS-Trip-1: "Vérification de la présence du fichier trips.txt"
+ 1-GTFS-Trip-2: "Vérification de la présence des colonnes obligatoires"
+ 1-GTFS-Trip-3: "Vérification de la présence d'un contenu pour les colonnes obligatoires"
+ 1-GTFS-Trip-4: "Vérification de l'unicité des valeurs de la colonne trip_id"
+ 1-GTFS-Trip-5: "Vérification du format de la colonne direction_id"
+ 1-GTFS-Trip-6: "Vérification du format de la colonne wheelchair_accessible"
+ 1-GTFS-Trip-7: "Vérification du format de la colonne bikes_allowed"
+ 1-GTFS-Trip-8: "Vérification de la présence de colonnes inconnues"
+ 1-GTFS-Trip-9: "Vérification de la présence d'au moins une entrée trip"
+ 1-GTFS-StopTime-1: "Vérification de la présence du fichier stoptimes.txt"
+ 1-GTFS-StopTime-2: "Vérification de la présence des colonnes obligatoires"
+ 1-GTFS-StopTime-3: "Vérification de la présence d'un contenu pour les colonnes obligatoires"
+ 1-GTFS-StopTime-4: "Vérification de la présence simultanée des valeurs arrival_time et departure_time"
+ 1-GTFS-StopTime-5: "Vérification de l'unicité du couple de valeurs des colonnes trip_id et stop_sequence"
+ 1-GTFS-StopTime-6: "Vérification du format de la colonne stop_sequence"
+ 1-GTFS-StopTime-7: "Vérification du format de la colonne arrival_time"
+ 1-GTFS-StopTime-8: "Vérification du format de la colonne departure_time"
+ 1-GTFS-StopTime-9: "Vérification du format de la colonne pickup_type"
+ 1-GTFS-StopTime-10: "Vérification du format de la colonne drop_off_type"
+ 1-GTFS-StopTime-11: "Vérification du format de la colonne shape_dist_travel"
+ 1-GTFS-StopTime-12: "Vérification du format de la colonne timepoint"
+ 1-GTFS-StopTime-13: "Vérification de la présence de colonnes inconnues"
+ 1-GTFS-StopTime-14: "Vérification de la présence d'au moins une entrée stoptime"
+ 1-GTFS-Calendar-1: "Vérification de la présence d'un des fichiers calendar.txt ou calendar_dates.txt"
+ 1-GTFS-Calendar-2: "Vérification de la présence des colonnes obligatoires"
+ 1-GTFS-Calendar-3: "Vérification de la présence d'un contenu pour les colonnes obligatoires"
+ 1-GTFS-Calendar-4: "Vérification de l'unicité des valeurs de la colonne service_id"
+ 1-GTFS-Calendar-5: "Vérification du format de la colonne monday"
+ 1-GTFS-Calendar-6: "Vérification du format de la colonne tuesday"
+ 1-GTFS-Calendar-7: "Vérification du format de la colonne wednesday"
+ 1-GTFS-Calendar-8: "Vérification du format de la colonne thursday"
+ 1-GTFS-Calendar-9: "Vérification du format de la colonne friday"
+ 1-GTFS-Calendar-10: "Vérification du format de la colonne saturday"
+ 1-GTFS-Calendar-11: "Vérification du format de la colonne sunday"
+ 1-GTFS-Calendar-12: "Vérification du format de la colonne start_date"
+ 1-GTFS-Calendar-13: "Vérification du format de la colonne end_date"
+ 1-GTFS-Calendar-14: "Vérification de la présence de colonnes inconnues"
+ 1-GTFS-Calendar-15: "Vérification de la présence d'au moins une entrée calendar"
+ 1-GTFS-CalendarDate-2: "Vérification de la présence des colonnes obligatoires"
+ 1-GTFS-CalendarDate-3: "Vérification de la présence d'un contenu pour les colonnes obligatoires"
+ 1-GTFS-CalendarDate-4: "Vérification de l'unicité du couple de valeurs des colonnes service_id et date"
+ 1-GTFS-CalendarDate-5: "Vérification du format de la colonne date"
+ 1-GTFS-CalendarDate-6: "Vérification du format de la colonne exception_type"
+ 1-GTFS-CalendarDate-7: "Vérification de la présence de colonnes inconnues"
+ 1-GTFS-Frequency-1: "Vérification de la présence des colonnes obligatoires"
+ 1-GTFS-Frequency-2: "Vérification de la présence d'un contenu pour les colonnes obligatoires"
+ 1-GTFS-Frequency-3: "Vérification du format de la colonne start_time"
+ 1-GTFS-Frequency-4: "Vérification du format de la colonne end_time"
+ 1-GTFS-Frequency-5: "Vérification du format de la colonne headway_secs"
+ 1-GTFS-Frequency-6: "Vérification du format de la colonne exact_times"
+ 1-GTFS-Frequency-7: "Vérification de la présence de colonnes inconnues"
+ 1-GTFS-Transfer-1: "Vérification de la présence des colonnes obligatoires"
+ 1-GTFS-Transfer-2: "Vérification de la présence d'un contenu pour les colonnes obligatoires"
+ 1-GTFS-Transfer-3: "Vérification du format de la colonne transfer_type"
+ 1-GTFS-Transfer-4: "Vérification de la présence des valeurs de la colonne min_transfer_time"
+ 1-GTFS-Transfer-5: "Vérification du format de la colonne min_transfer_time"
+ 1-GTFS-Transfer-6: "Vérification de la présence de colonnes inconnues"
+ 1-GTFS-Shape-1: "Vérification de la présence des colonnes obligatoires"
+ 1-GTFS-Shape-2: "Vérification de la présence d'un contenu pour les colonnes obligatoires"
+ 1-GTFS-Shape-3: "Vérification de l'unicité du couple de valeurs des colonnes shape_id et shape_pt_sequence"
+ 1-GTFS-Shape-4: "Vérification du format de la colonne shape_pt_lat"
+ 1-GTFS-Shape-5: "Vérification du format de la colonne shape_pt_lon"
+ 1-GTFS-Shape-6: "Vérification du format de la colonne shape_pt_sequence"
+ 1-GTFS-Shape-7: "Vérification du format de la colonne shape_dist_traveled"
+ 1-GTFS-Shape-8: "Vérification de la présence de colonnes inconnues"
+
+ 2-GTFS-Common-1: "Vérification de la taille des valeurs d'identifiant"
+ 2-GTFS-Common-2: "Vérification de la taille des valeurs des textes courts"
+ 2-GTFS-Common-3: "Vérification de la taille des valeurs des textes longs"
+ 2-GTFS-Agency-1: "Vérification de l'utilité des entrées agency"
+ 2-GTFS-Agency-2: "Vérification de la valeur de la colonne agency_id"
+ 2-GTFS-Stop-1: "Vérification de l'existence du stop référencé par parent_station"
+ 2-GTFS-Stop-2: "Vérification du type du parent_station"
+ 2-GTFS-Stop-3: "Vérification de la desserte du stop"
+ 2-GTFS-Stop-4: "Vérification de la non redondance des valeurs stop_name et stop_desc"
+ 2-GTFS-Stop-5: "Vérification de la pertinence de la valeur stop_url par rapport aux valeurs agency_url et route_url"
+ 2-GTFS-Stop-6: "Vérification de l'utilité de la colonne location_type"
+ 2-GTFS-Route-1: "Vérification de la non redondance des valeurs route_short_name et route_long_name"
+ 2-GTFS-Route-2: "Vérification de la présence des valeurs de agency_id"
+ 2-GTFS-Route-3: "Vérification de l'existence de l'agency référencée par agency_id"
+ 2-GTFS-Route-4: "Vérification de l'utilité des entrées route"
+ 2-GTFS-Route-5: "Vérification de l'unicité de désignation (route_short_name, route_long_name)"
+ 2-GTFS-Route-6: "Vérification de la longueur du champ route_short_name"
+ 2-GTFS-Route-7: "non défini"
+ 2-GTFS-Route-8: "Vérification de la non inclusion de route_short_name dans route_long_name"
+ 2-GTFS-Route-9: "Vérification du contraste des couleurs"
+ 2-GTFS-Route-10: "Vérification de la non redondance de la valeur route_desc par rapport aux valeurs route_short_name et route_long_name"
+ 2-GTFS-Route-11: "Vérification de la non présence d'une route inversant les valeurs route_short_name et route_long_name d'une autre"
+ 2-GTFS-Route-12: "Vérification de la pertinence de la valeur route_url par rapport aux valeurs agency_url"
+ 2-GTFS-Trip-1: "Vérification de la présence des valeurs de route_id"
+ 2-GTFS-Trip-2: "Vérification de la présence des valeurs de service_id"
+ 2-GTFS-Trip-3: "Vérification de la présence des valeurs de shape_id"
+ 2-GTFS-Trip-4: "Vérification de la non unicité des valeurs de block_id"
+ 2-GTFS-Trip-5: "Vérification de l'utilité des entrées trip"
+ 2-GTFS-Trip-6: "Vérification de la longueur des trips (minimum 2 horaires)"
+ 2-GTFS-Trip-7: "Vérification de la présence des valeurs de direction_id"
+ 2-GTFS-StopTime-1: "Vérification de la présence des valeurs de trip_id"
+ 2-GTFS-StopTime-2: "Vérification de la présence des valeurs de stop_id"
+ 2-GTFS-StopTime-3: "Vérification de la chronologie des horaires d'arrivé et départ"
+ 2-GTFS-StopTime-4: "Vérification de la présence des horaires d'arrivé et départ du premier stoptime d'un trip"
+ 2-GTFS-StopTime-5: "Vérification de la présence des horaires d'arrivé et départ du dernier stoptime d'un trip"
+ 2-GTFS-StopTime-6: "Vérification de la chronologie des horaires selon stop_sequence"
+ 2-GTFS-StopTime-7: "Vérification du non conflit des valeurs pick_type et drop_off_type"
+ 2-GTFS-StopTime-8: "Vérification de la croissance de la valeur shape_dist_travel selon stop_sequence"
+ 2-GTFS-StopTime-9: "Vérification du type du stop référencé par stop_id"
+ 2-GTFS-Calendar-1: "Vérification de la chronologie des plages horaires"
+ 2-GTFS-Calendar-2: "Vérification de la validité d'au moins un jour"
+ 2-GTFS-Calendar-3: "Vérification de la présence d'au moins un jour valide"
+ 2-GTFS-Calendar-4: "Vérification de l'utilité de la définition d'un jour exclu"
+ 2-GTFS-Calendar-5: "Vérification de la non obsolécence des calendriers"
+ 2-GTFS-Calendar-6: "Vérification de la non obsolécence future des calendriers"
+ 2-GTFS-Frequency-1: "Vérification de la chronologie des plages de fréquence"
+ 2-GTFS-Frequency-2: "Vérification du non chevauchement des plages d'un même trip"
+ 2-GTFS-Transfer-1: "Vérification de l'existance du stop référencé par from_stop_id"
+ 2-GTFS-Transfer-2: "Vérification de l'existance du stop référencé par to_stop_id"
+
+
+ 3-StopArea-1: "Vérification de la géolocalisation de tous les arrêts hors ITL"
+ 3-StopArea-2: "Vérification que 2 arrêts de noms différents en dehors d'un même regroupement d'arrêts ne sont pas trop proches"
+ 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-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"
+ 3-ConnectionLink-1: "Vérification de la proximité entre les deux arrêts d'une correspondance"
+ 3-ConnectionLink-2: "Vérification de la cohérence entre la distance fournie sur la correspondance et la distance géographique entre les deux arrêts de la correspondance"
+ 3-ConnectionLink-3: "Vérification de la vitesse de parcours entre les deux arrêts d'une correspondance"
+ 3-AccessLink-1: "Vérification de la proximité entre les deux extrémités d'un lien d'accès"
+ 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-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"
+ 3-Route-4: "Vérification de double définition de séquences"
+ 3-Route-5: "Vérification de séquences sans séquence opposée"
+ 3-Route-6: "Vérification de la présence d'arrêts dans la séquence"
+ 3-Route-7: "Vérification de la présence de missions"
+ 3-Route-8: "Vérification de l'utilisation des arrêts par les missions"
+ 3-Route-9: "Vérification de l’existence d’une mission passant par tous les arrêts de la séquence"
+ 3-JourneyPattern-1: "Vérification de double définition de missions"
+ 3-VehicleJourney-1: "Vérification de la chronologie des horaires de passage à un arrêt"
+ 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-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"
+ 4-Network-1: "Vérification de contraintes sur les attributs des réseaux"
+ 4-Company-1: "Vérification de contraintes sur les attributs des transporteurs"
+ 4-GroupOfLine-1: "Vérification de contraintes sur les attributs des groupes de lignes"
+ 4-StopArea-1: "Vérification de contraintes sur les attributs des arrêts"
+ 4-StopArea-2: "Vérification de l'existance d'un arrêt commercial pour les arrêts physiques"
+ 4-StopArea-3: "Vérification de la cohérence entre les noms de communes et leur code INSEE"
+ 4-AccessPoint-1: "Vérification de contraintes sur les attributs des accès"
+ 4-AccessLink-1: "Vérification de contraintes sur les attributs des liens d'accès"
+ 4-ConnectionLink-1: "Vérification de contraintes sur les attributs des correspondances"
+ 4-ConnectionLink-2: "Vérification des type d'arrêts en correspondance"
+ 4-Timetable-1: "Vérification de contraintes sur les attributs des calendiers"
+ 4-Line-1: "Vérification de contraintes sur les attributs des lignes"
+ 4-Line-2: "Vérification des modes de transport des lignes"
+ 4-Line-3: "Vérification des groupes de lignes d'une ligne"
+ 4-Line-4: "Vérification des séquences d'arrêts d'une ligne"
+ 4-Route-1: "Vérification de contraintes sur les attributs des séquences d'arrêt"
+ 4-JourneyPattern-1: "Vérification de contraintes sur les attributs des missions"
+ 4-VehicleJourney-1: "Vérification de contraintes sur les attributs des courses"
+ 4-VehicleJourney-2: "Vérification des modes de transport des courses"
+ severity: "Severity"
+ status: "Status"
+ rule_level: "Level"
+ rule_target: "Object"
+ rule_number: "Step"
+ rule_code: "Code"
+ violation_count: "errors"
+ violation_count_txt: "Number of errors"
+ objects: "Objects in violations"
+ detail: "Detail"
+ title: "Test title"
+ object: "Error object"
+ resource: "Resources of the error object"
+ url: "URL"
+ first_violations: "First violations"
diff --git a/config/locales/compliance_check_results.yml b/config/locales/compliance_check_results.fr.yml
index acbaa6826..8a4bafb97 100644
--- a/config/locales/compliance_check_results.yml
+++ b/config/locales/compliance_check_results.fr.yml
@@ -1,348 +1,3 @@
-en:
- compliance_check_results:
- errors: 'Errors'
- file:
- zip_name_prefix: "compliance_check_results"
- summary_errors_file_prefix: "summary_of_tests.csv"
- detailed_errors_file_prefix: "detail_of_errors.csv"
- index:
- line: "Li"
- column: "Col"
- compliance_check_result:
- severities:
- error: "Required"
- warning: "Optional"
- error_txt: "Required"
- warning_txt: "Optional"
- statuses:
- nok: "Error"
- uncheck: "Unavailable"
- ok: "Success"
- details:
- #### level 1
- ## NEPTUNE
- detail_1_neptune_xml_1: "%{source_label} : %{error_value}"
- detail_1_neptune_xml_2: "%{source_label} : %{error_value}"
- #### level 2
- ## NEPTUNE
- detail_2_neptune_common_1: "L'élément %{source_objectid} a des attributs qui diffèrent entre les différents fichiers qui le définissent"
- detail_2_neptune_common_2: "L'élément %{source_objectid} partage l'attribut RegistrationNumber = %{error_value} avec un autre objet de même type"
- detail_2_neptune_network_1: "La ligne %{source_objectid} est absente de la liste des lignes du réseau %{target_0_objectid}"
- detail_2_neptune_groupofline_1: "La ligne %{source_objectid} est absente de la liste des lignes du du groupe de lignes %{target_0_objectid}"
- detail_2_neptune_stoparea_1: "Le fils (contains = %{error_value}) de l'arrêt %{source_objectid} n'est pas de type StopArea ni StopPoint"
- detail_2_neptune_stoparea_2: "L'arrêt %{source_objectid} de type %{reference_value} ne peut contenir que des arrêts de type StopPlace ou CommercialStopPoint, or un des arrêts contenus (contains = %{target_0_objectid}) est de type %{error_value}"
- detail_2_neptune_stoparea_3: "L'arrêt %{source_objectid} de type %{reference_value} ne peut contenir que des arrêts de type BoardingPosition ou Quay, or un des arrêts contenus (contains = %{target_0_objectid}) est de type %{error_value}"
- detail_2_neptune_stoparea_4: "L'arrêt %{source_objectid} de type %{reference_value} ne peut contenir que des points d'arrêt de séquence, or un des arrêts contenus (contains = %{target_0_objectid}) est un StopArea arrêt de type %{error_value}"
- detail_2_neptune_stoparea_5: "L'arrêt %{source_objectid} référence une position géographique (centroidOfArea = %{error_value}) inexistante"
- detail_2_neptune_stoparea_6: "L'arrêt %{source_objectid} référence une position géographique (centroidOfArea = %{target_0_objectid}) qui ne le référence pas en retour (containedIn = %{error_value})"
- detail_2_neptune_itl_1: "Le fils (contains = %{target_0_objectid}) de type %{error_value} ne peut pas être contenu dans l'arrêt %{source_objectid} de type %{reference_value}"
- detail_2_neptune_itl_2: "L'arrêt de type ITL %{source_objectid} n'est pas utilisé"
- detail_2_neptune_itl_3: "L'arrêt areaId = %{error_value} référencé par l'ITL %{source_objectid} n'existe pas"
- detail_2_neptune_itl_4: "L'arrêt areaId = %{target_0_objectid} référencé par l'ITL %{source_objectid} devrait être de type ITL et non de type %{error_value}"
- detail_2_neptune_itl_5: "La référence lineIdShortCut = %{error_value} de l'ITL %{source_objectid} n'est pas cohérente avec la ligne %{target_0_objectid}"
- detail_2_neptune_areacentroid_1: "La position géographique <AreaCentroid> %{source_objectid} référence un arrêt (containedIn = %{error_value}) inexistant"
- detail_2_neptune_areacentroid_2: "La position géographique <AreaCentroid> %{source_objectid} utilise un référentiel géographique (longLatType = %{error_value}) invalide"
- detail_2_neptune_connectionlink_1: "La correspondance %{source_objectid} référence 2 arrêts inexistants"
- detail_2_neptune_accesspoint_1: "L'accès %{source_objectid} référence un arrêt parent (containedIn = %{error_value}) inexistant"
- detail_2_neptune_accesspoint_2: "L'accès %{source_objectid} référence un arrêt parent (containedIn = %{target_0_objectid}) de type invalide (ITL)"
- detail_2_neptune_accesspoint_3: "L'accès %{source_objectid} n'a pas de lien d'accès"
- detail_2_neptune_accesspoint_4: "L'accès %{source_objectid} de type In a des liens d'accès sortants"
- detail_2_neptune_accesspoint_5: "L'accès %{source_objectid} de type Out a des liens d'accès entrants"
- detail_2_neptune_accesspoint_6: "L'accès %{source_objectid} de type InOut n'a que des liens d'accès entrants ou sortants"
- detail_2_neptune_accesspoint_7: "L'accès %{source_objectid} utilise un référentiel géographique (longLatType = %{error_value}) invalide"
- detail_2_neptune_accesslink_1: "La liaison d'accès %{source_objectid} référence %{error_value} qui n'existe pas"
- detail_2_neptune_accesslink_2: "Sur la liaison d'accès %{source_objectid}, les références startOfLink = %{error_value} et endOfLink = %{reference_value} sont de même type"
- detail_2_neptune_line_1: "La ligne %{source_objectid} référence un réseau (ptNetworkIdShortcut = %{error_value} inexistant"
- detail_2_neptune_line_2: "La ligne %{source_objectid} référence un point d'arrêt <StopPoint> (lineEnd = %{error_value}) inexistant "
- detail_2_neptune_line_3: "La ligne %{source_objectid} référence un point d'arrêt (lineEnd = %{error_value}) qui n'est pas terminus d'une séquence d'arrêts"
- detail_2_neptune_line_4: "La ligne %{source_objectid} référence une séquence d'arrêt (routeId = %{error_value}) inexistante"
- detail_2_neptune_line_5: "La séquence d'arrêts (routeId = %{target_0_objectid}) n'est pas référencée par la ligne %{source_objectid}"
- detail_2_neptune_route_1: "La séquence d'arrêts %{source_objectid} référence une mission (journeyPatternId = %{error_value}) inexistante"
- detail_2_neptune_route_2: "La séquence d'arrêts %{source_objectid} référence un tronçon (ptLinkId = %{error_value}) inexistant"
- detail_2_neptune_route_3: "La séquence retour (waybackRouteId = %{error_value}) de la séquence d'arrêts %{source_objectid} n'existe pas"
- detail_2_neptune_route_4: "Le tronçon (ptLinkId = %{error_value}) référencé par la séquence d'arrêt %{source_objectid} est partagé avec %{target_0_objectid}"
- detail_2_neptune_route_5: "Le tronçon %{source_objectid} partage un %{reference_value} : %{error_value} avec un autre tronçon"
- detail_2_neptune_route_6_1: "La séquence d'arrêts %{source_objectid} n'est pas une séquence linéaire, le chainage des tronçons forme un anneau"
- detail_2_neptune_route_6_2: "La séquence d'arrêts %{source_objectid} n'est pas une séquence linéaire, le chainage des tronçons est rompu au tronçon %{target_0_objectid}"
- detail_2_neptune_route_7: "La séquence d'arrêts %{source_objectid} ne référence pas la mission %{target_0_objectid} alors que cette mission référence la séquence d'arrêt"
- detail_2_neptune_route_8: "La mission journeyPatternId = %{target_0_objectid} de la séquence d'arrêts %{source_objectid} utilise des points d'arrêts hors séquence"
- detail_2_neptune_route_9: "Le point d'arrêt (stopPointId = %{target_0_objectid}) de la séquence d'arrêts %{source_objectid} n'est utilisé dans aucune mission"
- detail_2_neptune_route_10: "La séquence retour (waybackRouteId = %{target_0_objectid}) ne référence pas la séquence d'arrêts %{source_objectid} comme retour"
- detail_2_neptune_route_11: "Le sens (%{reference_value}) de la séquence d'arrêt %{source_objectid} n'est pas compatible avec celui (%{error_value}) de la séquence opposée %{target_0_objectid}"
- detail_2_neptune_route_12: "Le départ dans la zone %{reference_value}) de la séquence d'arrêts %{source_objectid} n'est pas dans la même zone que l'arrivée (zone %{error_value} de la séquence retour %{target_0_objectid}"
- detail_2_neptune_ptlink_1: "Le tronçon %{source_objectid} reférence un %{reference_value} = %{error_value} inexistant"
- detail_2_neptune_journeypattern_1: "La mission %{source_objectid} référence une séquence d'arrêts (routeId = %{error_value}) inexistante"
- detail_2_neptune_journeypattern_2: "La mission %{source_objectid} référence un point d'arrêt (stopPointId = %{error_value}) inexistant"
- detail_2_neptune_journeypattern_3: "La mission %{source_objectid} référence une ligne (lineIdShortcut = %{error_value}) inexistante"
- detail_2_neptune_stoppoint_1: "Le point d'arrêt %{source_objectid} référence une ligne (lineIdShortcut = %{error_value}) inexistante"
- detail_2_neptune_stoppoint_2: "Le point d'arrêt %{source_objectid} référence un réseau (ptNetworkIdShortcut = %{error_value}) inexistant"
- detail_2_neptune_stoppoint_3: "Le point d'arrêt %{source_objectid} référence un arrêt (containedIn = %{error_value}) inexistant"
- detail_2_neptune_stoppoint_4: "Le point d'arrêt %{source_objectid} utilise un référentiel géographique (longLatType = %{error_value}) invalide"
- detail_2_neptune_timetable_1: "Le calendrier (<Timetable>) %{source_objectid} ne référence aucune course existante"
- detail_2_neptune_timetable_2: "La course %{source_objectid} n'est référencée dans aucun calendrier (<Timetable>)"
- detail_2_neptune_vehiclejourney_1: "La course %{source_objectid} référence une séquence d'arrêts (routeId = %{error_value}) inexistante"
- detail_2_neptune_vehiclejourney_2: "La course %{source_objectid} référence une mission (journeyPatternId = %{error_value}) inexistante"
- detail_2_neptune_vehiclejourney_3: "La course %{source_objectid} référence une ligne (lineIdShortcut = %{error_value}) inexistante"
- detail_2_neptune_vehiclejourney_4: "La course %{source_objectid} référence un opérateur (operatorId = %{error_value}) inexistant"
- detail_2_neptune_vehiclejourney_5: "La course %{source_objectid} référence une fréquence horaire (timeSlotId = %{error_value}) inexistante"
- detail_2_neptune_vehiclejourney_6: "La course %{source_objectid} référence une mission %{error_value} incompatible de la séquence d'arrêts %{reference_value}"
- detail_2_neptune_vehiclejourney_7: "La mission %{source_objectid} n'est référencée par aucune course"
- detail_2_neptune_vehiclejourneyatstop_1: "La course %{source_objectid} fournit un horaire sur un point d'arrêt (stopPointId = %{error_value}) inexistant"
- detail_2_neptune_vehiclejourneyatstop_2: "Un horaire de la course %{source_objectid} référence une autre course : vehicleJourneyId = %{error_value}"
- detail_2_neptune_vehiclejourneyatstop_3: "La course %{source_objectid} ne fournit pas les horaires des points d'arrêts selon l'ordre de la séquence d'arrêts %{error_value}"
- detail_2_neptune_vehiclejourneyatstop_4: "La course %{source_objectid} ne fournit pas les horaires des points d'arrêts de sa mission %{error_value}"
- detail_2_neptune_facility_1: "L'équipement %{source_objectid} est situé sur un arrêt inexistant (containedId = %{error_value})"
- detail_2_neptune_facility_2: "L'équipement %{source_objectid} référence un arrêt (stopAreaId = %{error_value}) inexistant"
- detail_2_neptune_facility_3: "L'équipement %{source_objectid} référence une ligne (lineId = %{error_value} inexistante"
- detail_2_neptune_facility_4: "L'équipement %{source_objectid} référence une correspondance (connectionLinkId = %{error_value} inexistante"
- detail_2_neptune_facility_5: "L'équipement %{source_objectid} référence un point d'arrêt (stopPointId = %{error_value} inexistant"
- detail_2_neptune_facility_6: "L'équipement %{source_objectid} utilise un référentiel géographique (longLatType = %{error_value}) invalide"
- #### level 3
- detail_3_stoparea_1: "L'arrêt %{source_label} (%{source_objectid}) n'est pas géolocalisé"
- detail_3_stoparea_2: "L'arrêt %{source_label} (%{source_objectid}) est localisé trop près de l'arrêt %{target_0_label} (%{target_0_objectid}) : distance %{error_value} < %{reference_value}"
- detail_3_stoparea_3: "Les arrêts %{source_label} (%{source_objectid} et %{target_0_objectid}) sont desservis par les mêmes lignes"
- detail_3_stoparea_4: "L'arrêt %{source_label} (%{source_objectid}) est en dehors du périmètre de contrôle"
- detail_3_stoparea_5: "L'arrêt %{source_label} (%{source_objectid}) est localisé trop loin de son parent %{target_0_label} (%{target_0_objectid}) : distance %{error_value} > %{reference_value}"
- detail_3_accesspoint_1: "L'accès %{source_label} (%{source_objectid}) n'est pas géolocalisé"
- detail_3_accesspoint_2: "L'accès %{source_label} (%{source_objectid}) est localisé trop près de l'accès %{target_0_label} (%{target_0_objectid}) : distance %{error_value} < %{reference_value}"
- detail_3_accesspoint_3: "L'accès %{source_label} (%{source_objectid}) est localisé trop loin de son parent %{target_0_label} (%{target_0_objectid}) : distance %{error_value} > %{reference_value}"
- detail_3_connectionlink_1: "Sur la correspondance %{source_label} (%{source_objectid}), la distance entre les arrêts %{target_0_label} (%{target_0_objectid}) et %{target_1_label} (%{target_1_objectid}) est trop grande : distance %{error_value} > %{reference_value}"
- detail_3_connectionlink_2: "Sur la correspondance %{source_label} (%{source_objectid}), la distance entre les arrêts %{target_0_label} (%{target_0_objectid}) et %{target_1_label} (%{target_1_objectid}) : %{error_value} est supérieure à la longueur du lien : %{reference_value}"
- detail_3_connectionlink_3_1: "Sur la correspondance %{source_label} (%{source_objectid}), la vitesse par défaut %{error_value} est supérieure à %{reference_value} km/h"
- detail_3_connectionlink_3_2: "Sur la correspondance %{source_label} (%{source_objectid}), la vitesse pour un voyageur occasionnel %{error_value} est supérieure à %{reference_value} km/h"
- detail_3_connectionlink_3_3: "Sur la correspondance %{source_label} (%{source_objectid}), la vitesse pour un voyageur habitué %{error_value} est supérieure à %{reference_value} km/h"
- detail_3_connectionlink_3_4: "Sur la correspondance %{source_label} (%{source_objectid}), la vitesse pour un voyageur à mobilité réduite %{error_value} est supérieure à %{reference_value} km/h"
- detail_3_accesslink_1: "Sur le lien d'accès %{source_label} (%{source_objectid}), la distance entre l'arrêt %{target_0_label} (%{target_0_objectid}) et l'accès %{target_1_label} (%{target_1_objectid}) est trop grande : distance %{error_value} > %{reference_value}"
- detail_3_accesslink_2: "Sur le lien d'accès %{source_label} (%{source_objectid}), la distance entre l'arrêt %{target_0_label} (%{target_0_objectid}) et l'accès %{target_1_label} (%{target_1_objectid}) : %{error_value} est supérieure à la longueur du lien : %{reference_value}"
- detail_3_accesslink_3_1: "Sur le lien d'accès %{source_label} (%{source_objectid}), la vitesse par défaut %{error_value} est supérieure à %{reference_value} km/h"
- detail_3_accesslink_3_2: "Sur le lien d'accès %{source_label} (%{source_objectid}), la vitesse pour un voyageur occasionnel %{error_value} est supérieure à %{reference_value} km/h"
- detail_3_accesslink_3_3: "Sur le lien d'accès %{source_label} (%{source_objectid}), la vitesse pour un voyageur habitué %{error_value} est supérieure à %{reference_value} km/h"
- detail_3_accesslink_3_4: "Sur le lien d'accès %{source_label} (%{source_objectid}), la vitesse pour un voyageur à mobilité réduite %{error_value} est supérieure à %{reference_value} km/h"
- detail_3_line_1: "La ligne %{source_label} (%{source_objectid}) a une ligne homonyme sur le même réseau %{target_0_label} (%{target_0_objectid})"
- detail_3_line_2: "La ligne %{source_label} (%{source_objectid}) n'a pas de séquence d'arrêts"
- detail_3_route_1: "Sur la séquence d'arrêt %{source_label} (%{source_objectid}), l'arrêt %{target_0_label} (%{target_0_objectid}) est desservi 2 fois consécutivement"
- detail_3_route_2: "Les terminus de la séquence d'arrêt %{source_label} (%{source_objectid}) ne sont pas cohérent avec ceux de sa séquence opposée : l'une part de %{target_0_label} (%{target_0_objectid}) et l'autre arrive à %{target_1_label} (%{target_1_objectid})"
- detail_3_route_3_1: "Sur la séquence d'arrêt %{source_label} (%{source_objectid}), entre les arrêts %{target_0_label} (%{target_0_objectid}) et %{target_1_label} (%{target_1_objectid}), distance %{error_value} < %{reference_value} "
- detail_3_route_3_2: "Sur la séquence d'arrêt %{source_label} (%{source_objectid}), entre les arrêts %{target_0_label} (%{target_0_objectid}) et %{target_1_label} (%{target_1_objectid}), distance %{error_value} > %{reference_value} "
- detail_3_route_4: "La séquence d'arrêt %{source_label} (%{source_objectid}) utilise la même liste ordonnée d'arrêts que la séquence d'arrêts %{target_0_label} (%{target_0_objectid})"
- detail_3_route_5: "La séquence d'arrêt %{source_label} (%{source_objectid}) peut admettre la séquence %{target_0_label} (%{target_0_objectid}) comme séquence opposée"
- detail_3_route_6: "La séquence d'arrêt %{source_label} (%{source_objectid}) doit avoir un minimum de 2 arrêts"
- detail_3_route_7: "La séquence d'arrêt %{source_label} (%{source_objectid}) n'a pas de mission"
- detail_3_route_8: "La séquence d'arrêt %{source_label} (%{source_objectid}) a %{error_value} arrêts non utilisés par des missions"
- detail_3_route_9: "La séquence d'arrêt %{source_label} (%{source_objectid}) n'a pas de mission desservant l'ensemble de ses arrêts"
- detail_3_journeypattern_1: "La mission %{source_label} (%{source_objectid}) utilise les mêmes arrêts que la mission %{target_0_label} (%{target_0_objectid}) - nombre d'arrêts = %{error_value}"
- detail_3_vehiclejourney_1: "Arrêt %{target_0_label} (%{target_0_objectid}) : durée d'arrêt mesurée %{error_value} > %{reference_value}"
- detail_3_vehiclejourney_2_1: "La course %{source_label} (%{source_objectid}) a des horaires décroissants entre les arrêts %{target_0_label} (%{target_0_objectid}) et %{target_1_label} (%{target_1_objectid})"
- detail_3_vehiclejourney_2_2: "La course %{source_label} (%{source_objectid}) a une vitesse %{error_value} < %{reference_value} km/h entre les arrêts %{target_0_label} (%{target_0_objectid}) et %{target_1_label} (%{target_1_objectid})"
- detail_3_vehiclejourney_2_3: "La course %{source_label} (%{source_objectid}) a une vitesse %{error_value} > %{reference_value} km/h entre les arrêts %{target_0_label} (%{target_0_objectid}) et %{target_1_label} (%{target_1_objectid})"
- detail_3_vehiclejourney_3: "La course %{source_label} (%{source_objectid}) a une variation de progression entre les arrêts %{target_1_label} (%{target_1_objectid}) et %{target_2_label} (%{target_2_objectid}) %{error_value} > %{reference_value} avec la course %{target_0_label} (%{target_0_objectid})"
- detail_3_vehiclejourney_4: "La course %{source_label} (%{source_objectid}) n'a pas de calendrier d'application"
- detail_3_facility_1: "L'équipement %{source_label} (%{source_objectid}) n'est pas géolocalisé"
- detail_3_facility_2: "L'équipement %{source_label} (%{source_objectid}) est localisé trop loin de son parent %{areaName} (%{areaId}) : distance %{error_value} > %{reference_value}"
-
- detail_4_network_1_min_size: "L'attribut %{reference_value} du réseau %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value}) "
- detail_4_network_1_max_size: "L'attribut %{reference_value} du réseau %{source_label} (%{source_objectid}) est trop grand (%{error_value})"
- detail_4_network_1_pattern: "L'attribut %{reference_value} du réseau %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})"
- detail_4_network_1_unique: "L'attribut %{reference_value} du réseau %{source_label} (%{source_objectid}) a une valeur partagée avec le réseau %{target_0_label} (%{target_0_objectid})"
- detail_4_company_1_min_size: "L'attribut %{reference_value} du transporteur %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})"
- detail_4_company_1_max_size: "L'attribut %{reference_value} du transporteur %{source_label} (%{source_objectid}) est trop grand (%{error_value})"
- detail_4_company_1_pattern: "L'attribut %{reference_value} du transporteur %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})"
- detail_4_company_1_unique: "L'attribut %{reference_value} du transporteur %{source_label} (%{source_objectid}) a une valeur partagée avec le transporteur %{target_0_label} (%{target_0_objectid})"
- detail_4_groupofline_1_min_size: "L'attribut %{reference_value} du groupe de lignes %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})"
- detail_4_groupofline_1_max_size: "L'attribut %{reference_value} du groupe de lignes %{source_label} (%{source_objectid}) est trop grand (%{error_value})"
- detail_4_groupofline_1_pattern: "L'attribut %{reference_value} du groupe de lignes %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})"
- detail_4_groupofline_1_unique: "L'attribut %{reference_value} du groupe de lignes %{source_label} (%{source_objectid}) a une valeur partagée avec le groupe de lignes %{target_0_label} (%{target_0_objectid})"
- detail_4_stoparea_1_min_size: "L'attribut %{reference_value} de l'arrêt %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})"
- detail_4_stoparea_1_max_size: "L'attribut %{reference_value} de l'arrêt %{source_label} (%{source_objectid}) est trop grand (%{error_value})"
- detail_4_stoparea_1_pattern: "L'attribut %{reference_value} de l'arrêt %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})"
- detail_4_stoparea_1_unique: "L'attribut %{reference_value} de l'arrêt %{source_label} (%{source_objectid}) a une valeur partagée avec l'arrêt %{target_0_label} (%{target_0_objectid})"
- detail_4_stoparea_2: "L'arrêt physique %{source_label} (%{source_objectid}) n'a pas de parent"
- detail_4_accesspoint_1_min_size: "L'attribut %{reference_value} du point d'accès %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})"
- detail_4_accesspoint_1_max_size: "L'attribut %{reference_value} du point d'accès %{source_label} (%{source_objectid}) est trop grand (%{error_value})"
- detail_4_accesspoint_1_pattern: "L'attribut %{reference_value} du point d'accès %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})"
- detail_4_accesspoint_1_unique: "L'attribut %{reference_value} du point d'accès %{source_label} (%{source_objectid}) a une valeur partagée avec le point d'accès %{target_0_label} (%{target_0_objectid})"
- detail_4_accesslink_1_min_size: "L'attribut %{reference_value} du lien d'accès %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})"
- detail_4_accesslink_1_max_size: "L'attribut %{reference_value} du lien d'accès %{source_label} (%{source_objectid}) est trop grand (%{error_value})"
- detail_4_accesslink_1_pattern: "L'attribut %{reference_value} du lien d'accès %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})"
- detail_4_accesslink_1_unique: "L'attribut %{reference_value} du lien d'accès %{source_label} (%{source_objectid}) a une valeur partagée avec le lien d'accès %{target_0_label} (%{target_0_objectid})"
- detail_4_connectionlink_1_min_size: "L'attribut %{reference_value} de la correspondance %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})"
- detail_4_connectionlink_1_max_size: "L'attribut %{reference_value} de la correspondance %{source_label} (%{source_objectid}) est trop grand (%{error_value})"
- detail_4_connectionlink_1_pattern: "L'attribut %{reference_value} de la correspondance %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})"
- detail_4_connectionlink_1_unique: "L'attribut %{reference_value} de la correspondance %{source_label} (%{source_objectid}) a une valeur partagée avec la correspondance %{target_0_label} (%{target_0_objectid})"
- detail_4_connectionlink_2: "Sur la correspondance %{source_label} (%{source_objectid}) au moins l'un des arrêts %{startName} (%{startId}) et %{endName} (%{endId}) n'est pas un arrêt physique"
- detail_4_timetable_1_min_size: "L'attribut %{reference_value} du calendrier %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})"
- detail_4_timetable_1_max_size: "L'attribut %{reference_value} du calendrier %{source_label} (%{source_objectid}) est trop grand (%{error_value})"
- detail_4_timetable_1_pattern: "L'attribut %{reference_value} du calendrier %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})"
- detail_4_timetable_1_unique: "L'attribut %{reference_value} du calendrier %{source_label} (%{source_objectid}) a une valeur partagée avec le calendrier %{target_0_label} (%{target_0_objectid})"
- detail_4_line_1_min_size: "L'attribut %{reference_value} de la ligne %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})"
- detail_4_line_1_max_size: "L'attribut %{reference_value} de la ligne %{source_label} (%{source_objectid}) est trop grand (%{error_value})"
- detail_4_line_1_pattern: "L'attribut %{reference_value} de la ligne %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})"
- detail_4_line_1_unique: "L'attribut %{reference_value} de la ligne %{source_label} (%{source_objectid}) a une valeur partagée avec la ligne %{target_0_label} (%{target_0_objectid})"
- detail_4_line_2: "La ligne %{source_label} (%{source_objectid}) a un mode de transport interdit %{error_value}"
- detail_4_line_3_1: "La ligne %{source_label} (%{source_objectid}) n'a pas de groupe de lignes"
- detail_4_line_3_2: "La ligne %{source_label} (%{source_objectid}) a plusieurs groupes de lignes"
- detail_4_line_4_1: "La ligne %{source_label} (%{source_objectid}) n'a pas de séquence d'arrêts"
- detail_4_line_4_2: "La ligne %{source_label} (%{source_objectid}) a trop de séquences d'arrêts non associées (%{error_value})"
- detail_4_route_1_min_size: "L'attribut %{reference_value} de la séquence d'arrêts %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})"
- detail_4_route_1_max_size: "L'attribut %{reference_value} de la séquence d'arrêts %{source_label} (%{source_objectid}) est trop grand (%{error_value})"
- detail_4_route_1_pattern: "L'attribut %{reference_value} de la séquence d'arrêts %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})"
- detail_4_route_1_unique: "L'attribut %{reference_value} de la séquence d'arrêts %{source_label} (%{source_objectid}) a une valeur partagée avec la séquence d'arrêts %{target_0_label} (%{target_0_objectid})"
- detail_4_journeypattern_1_min_size: "L'attribut %{reference_value} de la mission %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})"
- detail_4_journeypattern_1_max_size: "L'attribut %{reference_value} de la mission %{source_label} (%{source_objectid}) est trop grand (%{error_value})"
- detail_4_journeypattern_1_pattern: "L'attribut %{reference_value} de la mission %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})"
- detail_4_journeypattern_1_unique: "L'attribut %{reference_value} de la mission %{source_label} (%{source_objectid}) a une valeur partagée avec la mission %{target_0_label} (%{target_0_objectid})"
- detail_4_vehiclejourney_1_min_size: "L'attribut %{reference_value} de la course %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})"
- detail_4_vehiclejourney_1_max_size: "L'attribut %{reference_value} de la course %{source_label} (%{source_objectid}) est trop grand (%{error_value})"
- detail_4_vehiclejourney_1_pattern: "L'attribut %{reference_value} de la course %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})"
- detail_4_vehiclejourney_1_unique: "L'attribut %{reference_value} de la course %{source_label} (%{source_objectid}) a une valeur partagée avec la course %{target_0_label} (%{target_0_objectid})"
- detail_4_vehiclejourney_2: "La course %{source_label} (%{source_objectid}) a un mode de transport interdit %{error_value}"
- activemodel:
- models:
- compliance_check_result:
- zero: "Validation"
- one: "Validation"
- other: "Validation"
- attributes:
- compliance_check_result:
- 1-NEPTUNE-XML-1: "Conformité à la syntaxe XML suivant les recommandations du W3C."
- 1-NEPTUNE-XML-2: "Conformité au schéma défini par la XSD du profil TRIDENT/NEPTUNE."
- 2-NEPTUNE-Common-1: "Unicité des éléments objectId des différents objets d'un lot de fichiers Neptune."
- 2-NEPTUNE-Common-2: "Unicité des éléments regitrationNumber des différents objets d'un lot de fichiers Neptune."
- 2-NEPTUNE-Network-1: "Correcte référence à des lignes <Line> dans version du réseau <PTNetwork>."
- 2-NEPTUNE-GroupOfLine-1: "Correcte référence à des lignes <Line> dans groupe de lignes <GroupOfLine>."
- 2-NEPTUNE-StopArea-1: "Correcte référence à des arrêts <StopArea> et/ou à des points d'arrêt sur parcours <StopPoint> dans les arrêts <StopArea>."
- 2-NEPTUNE-StopArea-2: "Correcte référence à des arrêts <StopArea> dans les arrêts <StopArea> de type StopPlace."
- 2-NEPTUNE-StopArea-3: "Correcte référence à des arrêts <StopArea> dans les arrêts <StopArea> de type CommercialStopPoint."
- 2-NEPTUNE-StopArea-4: "Correcte référence à des points d'arrêt sur parcours <StopPoint> dans les arrêts <StopArea> de type BoardingPosition ou Quay."
- 2-NEPTUNE-StopArea-5: "Correcte référence à une position géographique <AreaCentroid> dans les arrêts <StopArea> de tout type StopPlace, CommercialStopPoint, BoardingPosition et Quay."
- 2-NEPTUNE-StopArea-6: "référenceréciproque d'une position géographique <AreaCentroid> dans les arrêts <StopArea> de tout type StopPlace, CommercialStopPoint, BoardingPosition et Quay."
- 2-NEPTUNE-ITL-1: "Correcte référence à des arrêts <StopArea> dans les arrêts <StopArea> de type ITL."
- 2-NEPTUNE-ITL-2: "Correcte référence à des arrêts <StopArea> de type ITL dans la classe d’objets <ITL>."
- 2-NEPTUNE-ITL-3: "Correcte référence à des arrêts <StopArea> dans la classe d’objets <ITL>."
- 2-NEPTUNE-ITL-4: "Vérification du type de référence à des arrêts <StopArea> type ITL dans la classe d’objets <ITL>."
- 2-NEPTUNE-ITL-5: "Bonne référence à la ligne <Line> dans la classe d’objets <ITL>."
- 2-NEPTUNE-AreaCentroid-1: "Correcte référence à des arrêts <StopArea> dans la classe d’objets <AreaCentroid>."
- 2-NEPTUNE-AreaCentroid-2: "Vérification du modèle de projection de référence utilisé."
- 2-NEPTUNE-ConnectionLink-1: "Correcte référence aux arrêts <StopArea> définissant des tronçons de correspondance <ConnectionLink>."
- 2-NEPTUNE-AccessPoint-1: "Correcte référence à un arrêt <StopArea> dans les accès <AccessPoint>."
- 2-NEPTUNE-AccessPoint-2: "Correcte référence à un arrêt <StopArea> dans les accès <AccessPoint>."
- 2-NEPTUNE-AccessPoint-3: "Existence de liens d'accès <AccessLink> sur les accès <AccessPoint>."
- 2-NEPTUNE-AccessPoint-4: "Existence de liens d'accès <AccessLink> sur les accès <AccessPoint> de type 'in'."
- 2-NEPTUNE-AccessPoint-5: "Existence de liens d'accès <AccessLink> sur les accès <AccessPoint> sur les accès de type 'out'."
- 2-NEPTUNE-AccessPoint-6: "Existence de liens d'accès <AccessLink> sur les accès <AccessPoint> sur les accès de type 'inout'."
- 2-NEPTUNE-AccessPoint-7: "Vérification du modèle de projection de référence utilisé."
- 2-NEPTUNE-AccessLink-1: "Correcte référence aux arrêts <StopArea> et accès <AccessPoint> définissant des liens d'accès <AccessLink>."
- 2-NEPTUNE-AccessLink-2: "Correcte référence aux arrêts <StopArea> et accès <AccessPoint> définissant des liens d'accès <AccessLink>."
- 2-NEPTUNE-Line-1: "Correcte référence au réseau dans l'objet ligne <Line>."
- 2-NEPTUNE-Line-2: "Correcte référence à un point d'arrêt sur parcours <StopPoint> comme terminus de ligne <Line>."
- 2-NEPTUNE-Line-3: "Correcte référence à un point d'arrêt sur parcours <StopPoint> comme terminus de ligne <Line>."
- 2-NEPTUNE-Line-4: "Correcte référence aux séquences d'arrêts <ChouetteRoute> dans l'objet ligne <Line>."
- 2-NEPTUNE-Line-5: "Correcte référence aux séquences d'arrêts <ChouetteRoute> dans l'objet ligne <Line>."
- 2-NEPTUNE-Route-1: "Existence des missions <JourneyPattern> référencées par la séquence d'arrêt <ChouetteRoute>."
- 2-NEPTUNE-Route-2: "Existence des tronçons commerciaux <PtLink> référencés par la séquence d'arrêt <ChouetteRoute>."
- 2-NEPTUNE-Route-3: "Existence de la séquence opposée <ChouetteRoute> référencée par la séquence d'arrêt <ChouetteRoute>."
- 2-NEPTUNE-Route-4: "Correcte référence à un tronçon commercial <PtLink> dans une séquence d'arrêts <ChouetteRoute>."
- 2-NEPTUNE-Route-5: "Vérification que tous les points d'arrêts sur parcours sont rattachés à une séquence d'arrêts <ChouetteRoute> au départ d'un tronçon commercial <PtLink> et/ou à l'arrivée d'un autre tronçon commercial <PtLink> de la même séquence d'arrêts."
- 2-NEPTUNE-Route-6: "Vérification du correct ordonnancement des points d'arrêts sur parcours <StopPoint> dans le chainage des tronçons <PtLink> d'une séquence d'arrêts <ChouetteRoute>."
- 2-NEPTUNE-Route-7: "référence mutuelle des missions <JourneyPattern> et des séquences d'arrêts <ChouetteRoute>."
- 2-NEPTUNE-Route-8: "Cohérence des références aux points d'arrêt des missions <JourneyPattern> et des séquences d'arrêts <ChouetteRoute>."
- 2-NEPTUNE-Route-9: "Utilité des points d'arrêts sur parcours des séquences d'arrêts <ChouetteRoute>."
- 2-NEPTUNE-Route-10: "référence d'une séquence d'arrêts <ChouetteRoute> à une séquence d'arrêts opposée."
- 2-NEPTUNE-Route-11: "Cohérence des sens de la référence d'une séquence d'arrêts <ChouetteRoute> à une séquence d'arrêts opposée."
- 2-NEPTUNE-Route-12: "Cohérence des terminus de la référence d'une séquence d'arrêts <ChouetteRoute> à une séquence d'arrêts opposée."
- 2-NEPTUNE-PtLink-1: "Existence des arrêts <StopPoint> référencés par les tronçons commerciaux <PTLink>."
- 2-NEPTUNE-JourneyPattern-1: "Existence de la séquence d'arrêt <ChouetteRoute> référencée par la mission <JourneyPattern>."
- 2-NEPTUNE-JourneyPattern-2: "Existence des arrêts <StopPoint> référencés par la mission <JourneyPattern>."
- 2-NEPTUNE-JourneyPattern-3: "Existence de la ligne <Line> référencée par la mission <JourneyPattern>."
- 2-NEPTUNE-StopPoint-1: "Existence de la ligne <Line> référencée par l'arrêt <StopPoint>."
- 2-NEPTUNE-StopPoint-2: "Existence du réseau <PTNetwork> référence par l'arrêt <StopPoint>."
- 2-NEPTUNE-StopPoint-3: "Existence de l'arrêt <StopArea> référencé par l'arrêt <StopPoint>."
- 2-NEPTUNE-StopPoint-4: "Vérification du modèle de projection de référence utilisé."
- 2-NEPTUNE-Timetable-1: "Utilité des calendriers."
- 2-NEPTUNE-Timetable-2: "Utilité des calendriers."
- 2-NEPTUNE-VehicleJourney-1: "Existence de la séquence d'arrêt <ChouetteRoute> référencée par la course <VehicleJourney>."
- 2-NEPTUNE-VehicleJourney-2: "Existence de la mission <JourneyPattern> référencée par la course <VehicleJourney>."
- 2-NEPTUNE-VehicleJourney-3: "Existence de la ligne <Line> référencée par la course <VehicleJourney>."
- 2-NEPTUNE-VehicleJourney-4: "Existence de l'opérateur <Company> référencé par la course <VehicleJourney>."
- 2-NEPTUNE-VehicleJourney-5: "Existence de la tranche horaire <TimeSlot> référencée par la course <VehicleJourney>."
- 2-NEPTUNE-VehicleJourney-6: "Cohérence entre la course, la mission et la séquence d'arrêts."
- 2-NEPTUNE-VehicleJourney-7: "Utilité des missions"
- 2-NEPTUNE-VehicleJourneyAtStop-1: "Existence de l'arrêt <StopPoint> référencé par l'horaire <VehicleJourneyAtStop>."
- 2-NEPTUNE-VehicleJourneyAtStop-2: "Existence de la course <VehicleJourney> référenceé par l'horaire <VehicleJourneyAtStop>."
- 2-NEPTUNE-VehicleJourneyAtStop-3: "adéquation des horaires de la course à la séquence d'arrêts."
- 2-NEPTUNE-VehicleJourneyAtStop-4: "adéquation des horaires de la course à la mission."
- 2-NEPTUNE-Facility-1: "Existence de l'arrêt <StopArea> référencé par l'équipement <Facility>."
- 2-NEPTUNE-Facility-2: "Existence de l'arrêt <StopArea> référencé par l'équipement <Facility>."
- 2-NEPTUNE-Facility-3: "Existence de la ligne <Line> référencée par l'équipement <Facility>."
- 2-NEPTUNE-Facility-4: "Existence de la correspondance <ConnectionLink> référencée par l'équipement <Facility>."
- 2-NEPTUNE-Facility-5: "Existence de l'arrêt <StopPoint> référencé par l'équipement <Facility>."
- 2-NEPTUNE-Facility-6: "Vérification du modèle de projection de référence utilisé."
- 3-StopArea-1: "Vérification de la géolocalisation de tous les arrêts hors ITL"
- 3-StopArea-2: "Vérification que 2 arrêts de noms différents en dehors d'un même regroupement d'arrêts ne sont pas trop proches"
- 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-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"
- 3-ConnectionLink-1: "Vérification de la proximité entre les deux arrêts d'une correspondance"
- 3-ConnectionLink-2: "Vérification de la cohérence entre la distance fournie sur la correspondance et la distance géographique entre les deux arrêts de la correspondance"
- 3-ConnectionLink-3: "Vérification de la vitesse de parcours entre les deux arrêts d'une correspondance"
- 3-AccessLink-1: "Vérification de la proximité entre les deux extrémités d'un lien d'accès"
- 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-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"
- 3-Route-4: "Vérification de double définition de séquences"
- 3-Route-5: "Vérification de séquences sans séquence opposée"
- 3-Route-6: "Vérification de la présence d'arrêts dans la séquence"
- 3-Route-7: "Vérification de la présence de missions"
- 3-Route-8: "Vérification de l'utilisation des arrêts par les missions"
- 3-Route-9: "Vérification de l’existence d’une mission passant par tous les arrêts de la séquence"
- 3-JourneyPattern-1: "Vérification de double définition de missions"
- 3-VehicleJourney-1: "Vérification de la chronologie des horaires de passage à un arrêt"
- 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-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"
- 4-Network-1: "Vérification de contraintes sur les attributs des réseaux"
- 4-Company-1: "Vérification de contraintes sur les attributs des transporteurs"
- 4-GroupOfLine-1: "Vérification de contraintes sur les attributs des groupes de lignes"
- 4-StopArea-1: "Vérification de contraintes sur les attributs des arrêts"
- 4-StopArea-2: "Vérification de l'existance d'un arrêt commercial pour les arrêts physiques"
- 4-StopArea-3: "Vérification de la cohérence entre les noms de communes et leur code INSEE"
- 4-AccessPoint-1: "Vérification de contraintes sur les attributs des accès"
- 4-AccessLink-1: "Vérification de contraintes sur les attributs des liens d'accès"
- 4-ConnectionLink-1: "Vérification de contraintes sur les attributs des correspondances"
- 4-ConnectionLink-2: "Vérification des type d'arrêts en correspondance"
- 4-Timetable-1: "Vérification de contraintes sur les attributs des calendiers"
- 4-Line-1: "Vérification de contraintes sur les attributs des lignes"
- 4-Line-2: "Vérification des modes de transport des lignes"
- 4-Line-3: "Vérification des groupes de lignes d'une ligne"
- 4-Line-4: "Vérification des séquences d'arrêts d'une ligne"
- 4-Route-1: "Vérification de contraintes sur les attributs des séquences d'arrêt"
- 4-JourneyPattern-1: "Vérification de contraintes sur les attributs des missions"
- 4-VehicleJourney-1: "Vérification de contraintes sur les attributs des courses"
- 4-VehicleJourney-2: "Vérification des modes de transport des courses"
- severity: "Severity"
- status: "Status"
- rule_level: "Level"
- rule_target: "Object"
- rule_number: "Step"
- rule_code: "Code"
- violation_count: "errors"
- violation_count_txt: "Number of errors"
- objects: "Objects in violations"
- detail: "Detail"
- title: "Test title"
- object: "Error object"
- resource: "Resources of the error object"
- url: "URL"
- first_violations: "First violations"
fr:
compliance_check_results:
errors: 'Erreurs'
@@ -368,11 +23,49 @@ fr:
## NEPTUNE
detail_1_neptune_xml_1: "%{source_label} : %{error_value}"
detail_1_neptune_xml_2: "%{source_label} : %{error_value}"
+
+ ## GTFS
+ detail_1_gtfs_csv_1: "le fichier %{filename} est inexploitable"
+ detail_1-GTFS-CSV-2: "le fichier %{filename} est inexploitable"
+ detail_1-GTFS-CSV-3: "le fichier %{filename} contient un enête vide"
+ detail_1-GTFS-CSV-4: "le fichier %{filename} contient des entêtes en double"
+ detail_1-GTFS-CSV-5: "la ligne du fichier %{filename} ne respecet pas la syntaxe CSV"
+ detail_1-GTFS-CSV-6: "le fichier %{filename} contient des balises HTML"
+ detail_1-GTFS-CSV-7: "la valeur '%{error_value}' contient des espaces aux extrémités"
+
+ detail_1_gtfs_common_1: "le fichier %{filename} est obligatoire"
+ detail_1_gtfs_common_2: "l'un des deux fichiers calendar.txt ou calendar_dates.txt est obligatoire"
+ detail_1_gtfs_common_3: "le fichier %{filename} optionnel n'est pas présent"
+ detail_1_gtfs_common_4: "le fichier %{filename} n'est pas traité"
+
+ detail_1_gtfs_common_5: "le fichier %{filename} obligatoire doit définir au moins une entrée"
+ detail_1_gtfs_common_6: "l'un des deux fichiers calendar.txt ou calendar_dates.txt doit définir au moins une entrée"
+ detail_1_gtfs_common_7: "le fichier %{filename} optionnel ne contient aucune entrée"
+
+ detail_1_gtfs_common_8: "la valeur %{error_value} est définie plusieurs fois pour la colonne "
+ detail_1_gtfs_common_9: "la colonne est obligatoire"
+ detail_1_gtfs_common_10: "la colonne agency_id devrait être présente dans le fichier %{filename}"
+ detail_1_gtfs_common_11: "la colonne %{error_value} n'est pas exploitée dans le fichier %{filename}"
+
+ detail_1_gtfs_common_12: "Contrôle de la présence des données obligatoires"
+ # 1-GTFS-Common-4-2: "Contrôle de l'affectation d'au moins un jour à un calendrier"
+ detail_1_gtfs_common_13: "Contrôle de la présence de la colonne agency_id si plusieurs agences sont définies"
+ detail_1_gtfs_common_14: "Contrôle de la présence de la colonne agency_id même si une seule agence est définie"
+ #1-GTFS-Common-4-5: "Contrôle de la présence du binôme horaires départ et arrivées"
+ detail_1_gtfs_common_15: "Contrôle de la présence d'une donnée sur valeur d'une autre"
+ #1-GTFS-Common-4-7: "Contrôle de la valeur d'une donnée sur valeur d'une autre"
+
+ detail_1_gtfs_common_16: "Contrôle du type des données"
+
+ detail_1_gtfs_route_1: "les colonnes ne sont pas définies"
+ detail_1_gtfs_route_2: "Contrôle de la présence de données dans route_long_name ou route_short_name"
+
#### level 2
## NEPTUNE
detail_2_neptune_common_1: "L'élément %{source_objectid} a des attributs qui diffèrent entre les différents fichiers qui le définissent"
detail_2_neptune_common_2: "L'élément %{source_objectid} partage l'attribut RegistrationNumber = %{error_value} avec un autre objet de même type"
detail_2_neptune_network_1: "La ligne %{source_objectid} est absente de la liste des lignes du réseau %{target_0_objectid}"
+ detail_2_neptune_network_2: "Le réseau %{source_objectid} a un type de source non validee : %{error_value}, remplacé par %{reference_value}"
detail_2_neptune_groupofline_1: "La ligne %{source_objectid} est absente de la liste des lignes du du groupe de lignes %{target_0_objectid}"
detail_2_neptune_stoparea_1: "Le fils (contains = %{error_value}) de l'arrêt %{source_objectid} n'est pas de type StopArea ni StopPoint"
detail_2_neptune_stoparea_2: "L'arrêt %{source_objectid} de type %{reference_value} ne peut contenir que des arrêts de type StopPlace ou CommercialStopPoint, or un des arrêts contenus (contains = %{target_0_objectid}) est de type %{error_value}"
@@ -402,6 +95,7 @@ fr:
detail_2_neptune_line_3: "La ligne %{source_objectid} référence un point d'arrêt (lineEnd = %{error_value}) qui n'est pas terminus d'une séquence d'arrêts"
detail_2_neptune_line_4: "La ligne %{source_objectid} référence une séquence d'arrêt (routeId = %{error_value}) inexistante"
detail_2_neptune_line_5: "La séquence d'arrêts (routeId = %{target_0_objectid}) n'est pas référencée par la ligne %{source_objectid}"
+ detail_2_neptune_line_6: "La ligne %{source_objectid} ne renseigne aucun des champs name, number ou publishedName"
detail_2_neptune_route_1: "La séquence d'arrêts %{source_objectid} référence une mission (journeyPatternId = %{error_value}) inexistante"
detail_2_neptune_route_2: "La séquence d'arrêts %{source_objectid} référence un tronçon (ptLinkId = %{error_value}) inexistant"
detail_2_neptune_route_3: "La séquence retour (waybackRouteId = %{error_value}) de la séquence d'arrêts %{source_objectid} n'existe pas"
@@ -425,6 +119,7 @@ fr:
detail_2_neptune_stoppoint_4: "Le point d'arrêt %{source_objectid} utilise un référentiel géographique (longLatType = %{error_value}) invalide"
detail_2_neptune_timetable_1: "Le calendrier (<Timetable>) %{source_objectid} ne référence aucune course existante"
detail_2_neptune_timetable_2: "La course %{source_objectid} n'est référencée dans aucun calendrier (<Timetable>)"
+ detail_2_neptune_timetable_3: "Le calendrier (<Timetable>) %{source_objectid} contient une période invalide"
detail_2_neptune_vehiclejourney_1: "La course %{source_objectid} référence une séquence d'arrêts (routeId = %{error_value}) inexistante"
detail_2_neptune_vehiclejourney_2: "La course %{source_objectid} référence une mission (journeyPatternId = %{error_value}) inexistante"
detail_2_neptune_vehiclejourney_3: "La course %{source_objectid} référence une ligne (lineIdShortcut = %{error_value}) inexistante"
@@ -432,6 +127,7 @@ fr:
detail_2_neptune_vehiclejourney_5: "La course %{source_objectid} référence une fréquence horaire (timeSlotId = %{error_value}) inexistante"
detail_2_neptune_vehiclejourney_6: "La course %{source_objectid} référence une mission %{error_value} incompatible de la séquence d'arrêts %{reference_value}"
detail_2_neptune_vehiclejourney_7: "La mission %{source_objectid} n'est référencée par aucune course"
+ detail_2_neptune_vehiclejourney_8: "La course %{source_objectid} doit référencer une mission si la séquence d'arrêt en possède plusieurs"
detail_2_neptune_vehiclejourneyatstop_1: "La course %{source_objectid} fournit un horaire sur un point d'arrêt (stopPointId = %{error_value}) inexistant"
detail_2_neptune_vehiclejourneyatstop_2: "Un horaire de la course %{source_objectid} référence une autre course : vehicleJourneyId = %{error_value}"
detail_2_neptune_vehiclejourneyatstop_3: "La course %{source_objectid} ne fournit pas les horaires des points d'arrêts selon l'ordre de la séquence d'arrêts %{error_value}"
@@ -442,6 +138,57 @@ fr:
detail_2_neptune_facility_4: "L'équipement %{source_objectid} référence une correspondance (connectionLinkId = %{error_value} inexistante"
detail_2_neptune_facility_5: "L'équipement %{source_objectid} référence un point d'arrêt (stopPointId = %{error_value} inexistant"
detail_2_neptune_facility_6: "L'équipement %{source_objectid} utilise un référentiel géographique (longLatType = %{error_value}) invalide"
+ ## GTFS
+ detail_2_gtfs_common_1: ""
+ detail_2_gtfs_common_2: ""
+ detail_2_gtfs_common_3: ""
+ detail_2_gtfs_agency_1: ""
+ detail_2_gtfs_agency_2: ""
+ detail_2_gtfs_stop_1: ""
+ detail_2_gtfs_stop_2: ""
+ detail_2_gtfs_stop_3: ""
+ detail_2_gtfs_stop_4: ""
+ detail_2_gtfs_stop_5: ""
+ detail_2_gtfs_stop_6: ""
+ detail_2_gtfs_route_1: ""
+ detail_2_gtfs_route_2: ""
+ detail_2_gtfs_route_3: ""
+ detail_2_gtfs_route_4: ""
+ detail_2_gtfs_route_5: ""
+ detail_2_gtfs_route_6: ""
+ detail_2_gtfs_route_7: "non défini"
+ detail_2_gtfs_route_8: ""
+ detail_2_gtfs_route_9: ""
+ detail_2_gtfs_route_10: ""
+ detail_2_gtfs_route_11: ""
+ detail_2_gtfs_route_12: ""
+ detail_2_gtfs_trip_1: ""
+ detail_2_gtfs_trip_2: ""
+ detail_2_gtfs_trip_3: ""
+ detail_2_gtfs_trip_4: ""
+ detail_2_gtfs_trip_5: ""
+ detail_2_gtfs_trip_6: ""
+ detail_2_gtfs_trip_7: ""
+ detail_2_gtfs_stoptime_1: ""
+ detail_2_gtfs_stoptime_2: ""
+ detail_2_gtfs_stoptime_3: ""
+ detail_2_gtfs_stoptime_4: ""
+ detail_2_gtfs_stoptime_5: ""
+ detail_2_gtfs_stoptime_6: ""
+ detail_2_gtfs_stoptime_7: ""
+ detail_2_gtfs_stoptime_8: ""
+ detail_2_gtfs_stoptime_9: ""
+ detail_2_gtfs_calendar_1: ""
+ detail_2_gtfs_calendar_2: ""
+ detail_2_gtfs_calendar_3: ""
+ detail_2_gtfs_calendar_4: ""
+ detail_2_gtfs_calendar_5: ""
+ detail_2_gtfs_calendar_6: ""
+ detail_2_gtfs_frequency_1: ""
+ detail_2_gtfs_frequency_2: ""
+ detail_2_gtfs_transfer_1: ""
+ detail_2_gtfs_transfer_2: ""
+
#### level 3
detail_3_stoparea_1: "L'arrêt %{source_label} (%{source_objectid}) n'est pas géolocalisé"
detail_3_stoparea_2: "L'arrêt %{source_label} (%{source_objectid}) est localisé trop près de l'arrêt %{target_0_label} (%{target_0_objectid}) : distance %{error_value} < %{reference_value}"
@@ -549,11 +296,13 @@ fr:
other: "Validations"
attributes:
compliance_check_result:
+ ## Neptune
1-NEPTUNE-XML-1: "Conformité à la syntaxe XML suivant les recommandations du W3C."
1-NEPTUNE-XML-2: "Conformité au schéma défini par la XSD du profil TRIDENT/NEPTUNE."
2-NEPTUNE-Common-1: "Unicité des éléments objectId des différents objets d'un lot de fichiers Neptune."
2-NEPTUNE-Common-2: "Unicité des éléments regitrationNumber des différents objets d'un lot de fichiers Neptune."
2-NEPTUNE-Network-1: "Correcte référence à des lignes <Line> dans version du réseau <PTNetwork>."
+ 2-NEPTUNE-Network-2: "Valeur autorisée pour le type de source <SourceType> dans version du réseau <PTNetwork>."
2-NEPTUNE-GroupOfLine-1: "Correcte référence à des lignes <Line> dans groupe de lignes <GroupOfLine>."
2-NEPTUNE-StopArea-1: "Correcte référence à des arrêts <StopArea> et/ou à des points d'arrêt sur parcours <StopPoint> dans les arrêts <StopArea>."
2-NEPTUNE-StopArea-2: "Correcte référence à des arrêts <StopArea> dans les arrêts <StopArea> de type StopPlace."
@@ -583,6 +332,7 @@ fr:
2-NEPTUNE-Line-3: "Correcte référence à un point d'arrêt sur parcours <StopPoint> comme terminus de ligne <Line>."
2-NEPTUNE-Line-4: "Correcte référence aux séquences d'arrêts <ChouetteRoute> dans l'objet ligne <Line>."
2-NEPTUNE-Line-5: "Correcte référence aux séquences d'arrêts <ChouetteRoute> dans l'objet ligne <Line>."
+ 2-NEPTUNE-Line-6: "Présence d'au moins une valeur parmi <name>,<number> ou <publishedName> dans l'objet ligne <Line>."
2-NEPTUNE-Route-1: "Existence des missions <JourneyPattern> référencées par la séquence d'arrêt <ChouetteRoute>."
2-NEPTUNE-Route-2: "Existence des tronçons commerciaux <PtLink> référencés par la séquence d'arrêt <ChouetteRoute>."
2-NEPTUNE-Route-3: "Existence de la séquence opposée <ChouetteRoute> référencée par la séquence d'arrêt <ChouetteRoute>."
@@ -605,6 +355,7 @@ fr:
2-NEPTUNE-StopPoint-4: "Vérification du modèle de projection de référence utilisé."
2-NEPTUNE-Timetable-1: "Utilité des calendriers."
2-NEPTUNE-Timetable-2: "Utilité des calendriers."
+ 2-NEPTUNE-Timetable-2: "Validité des dates de début et de fin des périodes des calendriers"
2-NEPTUNE-VehicleJourney-1: "Existence de la séquence d'arrêt <ChouetteRoute> référencée par la course <VehicleJourney>."
2-NEPTUNE-VehicleJourney-2: "Existence de la mission <JourneyPattern> référencée par la course <VehicleJourney>."
2-NEPTUNE-VehicleJourney-3: "Existence de la ligne <Line> référencée par la course <VehicleJourney>."
@@ -612,6 +363,7 @@ fr:
2-NEPTUNE-VehicleJourney-5: "Existence de la tranche horaire <TimeSlot> référencée par la course <VehicleJourney>."
2-NEPTUNE-VehicleJourney-6: "Cohérence entre la course, la mission et la séquence d'arrêts."
2-NEPTUNE-VehicleJourney-7: "Utilité des missions"
+ 2-NEPTUNE-VehicleJourney-8: "Mission implicite"
2-NEPTUNE-VehicleJourneyAtStop-1: "Existence de l'arrêt <StopPoint> référencé par l'horaire <VehicleJourneyAtStop>."
2-NEPTUNE-VehicleJourneyAtStop-2: "Existence de la course <VehicleJourney> référenceé par l'horaire <VehicleJourneyAtStop>."
2-NEPTUNE-VehicleJourneyAtStop-3: "adéquation des horaires de la course à la séquence d'arrêts."
@@ -622,6 +374,95 @@ fr:
2-NEPTUNE-Facility-4: "Existence de la correspondance <ConnectionLink> référencée par l'équipement <Facility>."
2-NEPTUNE-Facility-5: "Existence de l'arrêt <StopPoint> référencé par l'équipement <Facility>."
2-NEPTUNE-Facility-6: "Vérification du modèle de projection de référence utilisé."
+
+ ## GTFS
+ 1-GTFS-CSV-1: "Vérification de la lecture du fichier"
+ 1-GTFS-CSV-2: "Vérification de la syntaxe d'une ligne"
+ 1-GTFS-CSV-3: "Vérification de la syntaxe des entêtes"
+ 1-GTFS-CSV-4: "Vérification de la non présence de doublons dans les entêtes"
+ 1-GTFS-CSV-5: "Vérification de la syntaxe CSV GTFS du fichier"
+ 1-GTFS-CSV-6: "Vérification de la non présence de balise HTML"
+ 1-GTFS-CSV-7: "Vérification de la non présence d'espace en début ou fin de colonne"
+
+ 1-GTFS-Common-1: "Contrôle de la présence des fichiers obligatoires"
+ 1-GTFS-Common-2: "Contrôle de la présence des fichiers calendar ou calendar_dates"
+ 1-GTFS-Common-3: "Contrôle de la présence des fichiers optionnels"
+ 1-GTFS-Common-4: "Contrôle de la présence des fichiers non traités"
+
+ 1-GTFS-Common-5: "Contrôle de la présence de données dans les fichiers obligatoires"
+ 1-GTFS-Common-6: "Contrôle de la présence de données dans les fichiers calendar ou calendar_dates"
+ 1-GTFS-Common-7: "Contrôle de la présence de données dans les fichiers optionnels"
+
+ 1-GTFS-Common-8: "Contrôle de l'unicité des identifiants"
+ 1-GTFS-Common-9: "Contrôle de la présence des colonnes obligatoires"
+ 1-GTFS-Route-1: "Contrôle de la présence des colonnes obligatoires conditionnelles"
+ 1-GTFS-Common-10: "Contrôle de la présence des colonnes qui devraient être obligatoires "
+ 1-GTFS-Common-11: "Contrôle de la présence de colonnes non traités"
+
+ 1-GTFS-Common-12: "Contrôle de la présence des données obligatoires"
+ # 1-GTFS-Common-4-2: "Contrôle de l'affectation d'au moins un jour à un calendrier"
+ 1-GTFS-Common-13: "Contrôle de la présence de la colonne agency_id si plusieurs agences sont définies"
+ 1-GTFS-Common-14: "Contrôle de la présence de la colonne agency_id même si une seule agence est définie"
+ #1-GTFS-Common-4-5: "Contrôle de la présence du binôme horaires départ et arrivées"
+ 1-GTFS-Common-15: "Contrôle de la présence d'une donnée sur valeur d'une autre"
+ #1-GTFS-Common-4-7: "Contrôle de la valeur d'une donnée sur valeur d'une autre"
+
+ 1-GTFS-Common-16: "Contrôle du type des données"
+
+ 1-GTFS-Route-1: "Contrôle de la présence des colonnes obligatoires conditionnelles"
+ 1-GTFS-Route-2: "Contrôle de la présence de données dans route_long_name ou route_short_name"
+
+ 2-GTFS-Common-1: "Vérification de la taille des valeurs d'identifiant"
+ 2-GTFS-Common-2: "Vérification de la taille des valeurs des textes courts"
+ 2-GTFS-Common-3: "Vérification de la taille des valeurs des textes longs"
+ 2-GTFS-Agency-1: "Vérification de l'utilité des entrées agency"
+ 2-GTFS-Agency-2: "Vérification de la valeur de la colonne agency_id"
+ 2-GTFS-Stop-1: "Vérification de l'existence du stop référencé par parent_station"
+ 2-GTFS-Stop-2: "Vérification du type du parent_station"
+ 2-GTFS-Stop-3: "Vérification de la desserte du stop"
+ 2-GTFS-Stop-4: "Vérification de la non redondance des valeurs stop_name et stop_desc"
+ 2-GTFS-Stop-5: "Vérification de la pertinence de la valeur stop_url par rapport aux valeurs agency_url et route_url"
+ 2-GTFS-Stop-6: "Vérification de l'utilité de la colonne location_type"
+ 2-GTFS-Route-1: "Vérification de la non redondance des valeurs route_short_name et route_long_name"
+ 2-GTFS-Route-2: "Vérification de la présence des valeurs de agency_id"
+ 2-GTFS-Route-3: "Vérification de l'existence de l'agency référencée par agency_id"
+ 2-GTFS-Route-4: "Vérification de l'utilité des entrées route"
+ 2-GTFS-Route-5: "Vérification de l'unicité de désignation (route_short_name, route_long_name)"
+ 2-GTFS-Route-6: "Vérification de la longueur du champ route_short_name"
+ 2-GTFS-Route-7: "non défini"
+ 2-GTFS-Route-8: "Vérification de la non inclusion de route_short_name dans route_long_name"
+ 2-GTFS-Route-9: "Vérification du contraste des couleurs"
+ 2-GTFS-Route-10: "Vérification de la non redondance de la valeur route_desc par rapport aux valeurs route_short_name et route_long_name"
+ 2-GTFS-Route-11: "Vérification de la non présence d'une route inversant les valeurs route_short_name et route_long_name d'une autre"
+ 2-GTFS-Route-12: "Vérification de la pertinence de la valeur route_url par rapport aux valeurs agency_url"
+ 2-GTFS-Trip-1: "Vérification de la présence des valeurs de route_id"
+ 2-GTFS-Trip-2: "Vérification de la présence des valeurs de service_id"
+ 2-GTFS-Trip-3: "Vérification de la présence des valeurs de shape_id"
+ 2-GTFS-Trip-4: "Vérification de la non unicité des valeurs de block_id"
+ 2-GTFS-Trip-5: "Vérification de l'utilité des entrées trip"
+ 2-GTFS-Trip-6: "Vérification de la longueur des trips (minimum 2 horaires)"
+ 2-GTFS-Trip-7: "Vérification de la présence des valeurs de direction_id"
+ 2-GTFS-StopTime-1: "Vérification de la présence des valeurs de trip_id"
+ 2-GTFS-StopTime-2: "Vérification de la présence des valeurs de stop_id"
+ 2-GTFS-StopTime-3: "Vérification de la chronologie des horaires d'arrivé et départ"
+ 2-GTFS-StopTime-4: "Vérification de la présence des horaires d'arrivé et départ du premier stoptime d'un trip"
+ 2-GTFS-StopTime-5: "Vérification de la présence des horaires d'arrivé et départ du dernier stoptime d'un trip"
+ 2-GTFS-StopTime-6: "Vérification de la chronologie des horaires selon stop_sequence"
+ 2-GTFS-StopTime-7: "Vérification du non conflit des valeurs pick_type et drop_off_type"
+ 2-GTFS-StopTime-8: "Vérification de la croissance de la valeur shape_dist_travel selon stop_sequence"
+ 2-GTFS-StopTime-9: "Vérification du type du stop référencé par stop_id"
+ 2-GTFS-Calendar-1: "Vérification de la chronologie des plages horaires"
+ 2-GTFS-Calendar-2: "Vérification de la validité d'au moins un jour"
+ 2-GTFS-Calendar-3: "Vérification de la présence d'au moins un jour valide"
+ 2-GTFS-Calendar-4: "Vérification de l'utilité de la définition d'un jour exclu"
+ 2-GTFS-Calendar-5: "Vérification de la non obsolécence des calendriers"
+ 2-GTFS-Calendar-6: "Vérification de la non obsolécence future des calendriers"
+ 2-GTFS-Frequency-1: "Vérification de la chronologie des plages de fréquence"
+ 2-GTFS-Frequency-2: "Vérification du non chevauchement des plages d'un même trip"
+ 2-GTFS-Transfer-1: "Vérification de l'existance du stop référencé par from_stop_id"
+ 2-GTFS-Transfer-2: "Vérification de l'existance du stop référencé par to_stop_id"
+
+ ## COMMON
3-StopArea-1: "Vérification de la géolocalisation de tous les arrêts hors ITL"
3-StopArea-2: "Vérification que 2 arrêts de noms différents en dehors d'un même regroupement d'arrêts ne sont pas trop proches"
3-StopArea-3: "Vérification de l'unicité des arrêts"
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 4ebdcc94c..019e6dc0b 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -1,6 +1,7 @@
en:
"true": "Yes"
"false": "No"
+ "unknown": "Unknown"
time:
formats:
hour: "%Hh%M"
diff --git a/config/locales/fr.yml b/config/locales/fr.yml
index 6522fa211..696ae21a6 100644
--- a/config/locales/fr.yml
+++ b/config/locales/fr.yml
@@ -1,6 +1,7 @@
fr:
"true": "Oui"
"false": "Non"
+ "unknown": "Non précisé"
time:
formats:
hour: "%Hh%M"
diff --git a/config/locales/group_of_lines.yml b/config/locales/group_of_lines.yml
index d84c62682..d92cc3410 100644
--- a/config/locales/group_of_lines.yml
+++ b/config/locales/group_of_lines.yml
@@ -36,27 +36,27 @@ en:
formtastic:
titles:
group_of_line:
- name: "Only alphanumerical or underscore characters."
+ name: ""
registration_number: "Positif integer."
objectid: "[prefix]:GroupOfLine:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character"
neptune:
group_of_line:
- name: "Only alphanumerical or underscore characters."
+ name: ""
registration_number: "Positif integer."
objectid: "[prefix]:GroupOfLine:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character"
netex:
group_of_line:
- name: "Only alphanumerical or underscore characters."
+ name: ""
registration_number: "Positif integer."
objectid: "[prefix]:GroupOfLine:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character"
gtfs:
group_of_line:
- name: "Only alphanumerical or underscore characters."
+ name: ""
registration_number: "Positif integer."
objectid: "[prefix]:GroupOfLine:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character"
hub:
group_of_lines:
- name: "Only alphanumerical or underscore characters. Maximum length = 75."
+ name: "maximum 75 characters"
registration_number: "Positif integer, unique key, of no more than 8 digits."
objectid: "[prefix]:GroupOfLine:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character. Maximum length of the unique key = 6."
@@ -98,27 +98,27 @@ fr:
formtastic:
titles:
group_of_line:
- name: "Caractères autorisés : alphanumériques et 'souligné'."
+ name: ""
registration_number: "Entier positif."
objectid: "[prefixe]:GroupOfLine:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'"
neptune:
group_of_line:
- name: "Caractères autorisés : alphanumériques et 'souligné'."
+ name: ""
registration_number: "Entier positif."
objectid: "[prefixe]:GroupOfLine:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'"
netex:
group_of_line:
- name: "Caractères autorisés : alphanumériques et 'souligné'."
+ name: ""
registration_number: "Entier positif."
objectid: "[prefixe]:GroupOfLine:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'"
gtfs:
group_of_line:
- name: "Caractères autorisés : alphanumériques et 'souligné'."
+ name: ""
registration_number: "Entier positif."
objectid: "[prefixe]:GroupOfLine:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'"
hub:
group_of_lines:
- name: "Caractères autorisés : alphanumériques et 'souligné'. Longueur maximale = 75."
+ name: "maximum 75 caractères"
registration_number: "Entier positif, clé unique, d'un maximum de 8 chiffres."
objectid: "[prefixe]:GroupOfLine:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'. Longueur maximale de la clé unique = 6."
diff --git a/config/locales/journey_patterns.yml b/config/locales/journey_patterns.yml
index 8d76778ef..6afe48666 100644
--- a/config/locales/journey_patterns.yml
+++ b/config/locales/journey_patterns.yml
@@ -42,27 +42,27 @@ en:
formtastic:
titles:
journey_pattern:
- name: "Only alphanumerical or underscore characters."
+ name: ""
registration_number: "Positif integer."
objectid: "[prefix]:JourneyPattern:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character"
neptune:
journey_pattern:
- name: "Only alphanumerical or underscore characters."
+ name: ""
registration_number: "Positif integer."
objectid: "[prefix]:JourneyPattern:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character"
netex:
journey_pattern:
- name: "Only alphanumerical or underscore characters."
+ name: ""
registration_number: "Positif integer."
objectid: "[prefix]:JourneyPattern:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character"
gtfs:
journey_pattern:
- name: "Only alphanumerical or underscore characters."
+ name: ""
registration_number: "Positif integer."
objectid: "[prefix]:JourneyPattern:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character"
hub:
journey_pattern:
- name: "Only alphanumerical or underscore characters. Maximum length = 75."
+ name: "Maximum length = 75."
registration_number: "Positif integer, unique key, of no more than 8 digits."
objectid: "[prefix]:JourneyPattern:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character. Maximum length of the unique key = 30."
@@ -110,26 +110,26 @@ fr:
formtastic:
titles:
journey_pattern:
- name: "Caractères autorisés : alphanumériques et 'souligné'."
+ name: ""
registration_number: "Entier positif."
objectid: "[prefixe]:JourneyPattern:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'"
neptune:
journey_pattern:
- name: "Caractères autorisés : alphanumériques et 'souligné'."
+ name: ""
registration_number: "Entier positif."
objectid: "[prefixe]:JourneyPattern:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'"
netex:
journey_pattern:
- name: "Caractères autorisés : alphanumériques et 'souligné'."
+ name: ""
registration_number: "Entier positif."
objectid: "[prefixe]:JourneyPattern:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'"
gtfs:
journey_pattern:
- name: "Caractères autorisés : alphanumériques et 'souligné'."
+ name: ""
registration_number: "Entier positif."
objectid: "[prefixe]:JourneyPattern:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'"
hub:
journey_pattern:
- name: "Caractères autorisés : alphanumériques et 'souligné'. Longueur maximale = 75."
+ name: "Longueur maximale = 75."
registration_number: "Entier positif, clé unique, d'un maximum de 8 chiffres."
objectid: "[prefixe]:JourneyPattern:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'. Longueur maximale de la clé unique = 30."
diff --git a/config/locales/lines.yml b/config/locales/lines.yml
deleted file mode 100644
index 331c09d1c..000000000
--- a/config/locales/lines.yml
+++ /dev/null
@@ -1,233 +0,0 @@
-en:
- lines:
- actions:
- new: "Add a new line"
- edit: "Edit this line"
- destroy: "Remove this line"
- destroy_confirm: "Are you sure you want destroy this line?"
- destroy_selection_confirm: "Are you sure you want destroy those lines?"
- import: "Import lines"
- export_kml: "Export KML line"
- export__kml_all: "Export KML lines"
- export_hub: "Export HUB line"
- export__hub_all: "Export HUB lines"
- new:
- title: "Add a new line"
- edit:
- title: "Update line %{line}"
- show:
- title: "Line %{line}"
- itineraries: "Line's route list"
- group_of_lines: "Groups of lines"
- index:
- title: "Lines"
- name_or_number: "Search by name or number"
- no_networks: "No networks"
- no_companies: "No companies"
- no_group_of_lines: "No group of lines"
- all_networks: "All networks"
- all_companies: "All companies"
- all_group_of_lines: "All group of lines"
- multi_selection: "Multiple selection"
- multi_selection_enable: "Enable multiple selection"
- multi_selection_disable: "Disable multiple selection"
- delete_selected: "Delete lines"
- export_selected: "Export lines"
- select_all: "Select all"
- deselect_all: "Deselect all"
- unset: "undefined"
- advanced_search: "Advanced Search"
- color: "Colors"
- form:
- group_of_lines: "Associated groups of lines"
- no_group_of_line: "No group of line"
- several_group_of_lines: "%{count} groups of lines"
- activerecord:
- models:
- line:
- zero: "line"
- one: "line"
- other: "lines"
- attributes:
- line:
- network: "Network"
- company: "Company"
- registration_number: "Registration number"
- name: "Name"
- published_name: "Published name"
- number: "Number"
- transport_mode: "Transport mode"
- url: "Web page"
- color: "Line color"
- text_color: "Text color"
- mobility_restricted_suitability: "PRM accessibility"
- flexible_service: "On demond transportation"
- unspecified_mrs: "Not specified"
- accessible: "Accessible"
- not_accessible: "Not accessible"
- unspecified_fs: "Not specified"
- on_demaond_fs: "On demond service"
- regular_fs: "Regular service"
- number_of_vj: "Total number of vehicle journeys"
- number_of_fs_vj: "Number of on demond vehicle journeys"
- number_of_mrs_vj: "Number of accessible vehicle journeys"
- number_of_non_fs_vj: "Number of non on demond vehicle journeys"
- number_of_non_mrs_vj: "Number of non accessible vehicle journeys"
- number_of_null_fs_vj: "Number of unspecified on demond vehicle journeys"
- number_of_null_mrs_vj: "Number of unspecified accessible vehicle journeys"
- default_fs_msg: "These vehicle journeys are considered as regular"
- group_of_line: "Group of lines"
- comment: "Comments"
- objectid: "Neptune identifier"
- object_version: "Version"
- creation_time: "Created on"
- creator_id: "Created by"
- footnotes: "Footnotes"
- formtastic:
- titles:
- line:
- name: "Only alphanumerical or underscore characters."
- registration_number: "only alphanumerical or underscore characters"
- objectid: "[prefix]:Line:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character"
- number: ""
- neptune:
- line:
- name: "Only alphanumerical or underscore characters."
- registration_number: "only alphanumerical or underscore characters"
- objectid: "[prefix]:Line:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character"
- number: ""
- netex:
- line:
- name: "Only alphanumerical or underscore characters."
- registration_number: "only alphanumerical or underscore characters"
- objectid: "[prefix]:Line:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character"
- number: ""
- gtfs:
- line:
- name: "Only alphanumerical or underscore characters."
- registration_number: "only alphanumerical or underscore characters"
- objectid: "[prefix]:Line:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character"
- number: ""
- hub:
- line:
- name: "Only alphanumerical or underscore characters. Maximum length = 75."
- registration_number: "Positif integer, unique key, of no more than 8 digits."
- objectid: "[prefix]:Line:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character. Maximum length of the unique key = 14."
- number: "Only alphanumerical or underscore characters. Maximum length = 6."
-
-fr:
- lines:
- actions:
- new: "Ajouter une ligne"
- edit: "Modifier cette ligne"
- destroy: "Supprimer cette ligne"
- destroy_confirm: "Etes vous sûr de supprimer cette ligne ?"
- destroy_selection_confirm: "Etes vous sûr de supprimer cette sélection de lignes ?"
- import: "Importer des lignes"
- export_kml: "Export KML de la ligne"
- export_kml_all: "Export KML des lignes"
- export_hub: "Export HUB de la ligne"
- export_hub_all: "Export HUB des lignes"
- new:
- title: "Ajouter une ligne"
- edit:
- title: "Modifier la ligne %{line}"
- show:
- title: "Ligne %{line}"
- itineraries: "Liste des séquences d'arrêts de la ligne"
- group_of_lines: "Groupes de lignes"
- index:
- name_or_number: "Recherche par nom ou indice"
- title: "Lignes"
- no_networks: "Aucun réseaux"
- no_companies: "Aucun transporteurs"
- no_group_of_lines: "Aucun groupes de ligne"
- all_networks: "Tous les réseaux"
- all_companies: "Tous les transporteurs"
- all_group_of_lines: "Tous les groupes de ligne"
- multi_selection: "Sélection multiple"
- multi_selection_enable: "Activer la sélection multiple"
- multi_selection_disable: "Désactiver la sélection multiple"
- delete_selected: "Supprimer les lignes"
- export_selected: "Exporter les lignes"
- select_all: "Tout sélectionner"
- deselect_all: "Tout désélectionner"
- unset: "non défini"
- advanced_search: "Recherche avancée"
- color: "Couleurs"
- form:
- group_of_lines: "Groupes de lignes associés"
- no_group_of_line: "Aucun groupe de lignes"
- several_group_of_lines: "%{count} groupes of lignes"
- activerecord:
- models:
- line:
- zero: "ligne"
- one: "ligne"
- other: "lignes"
- attributes:
- line:
- network: "Réseau"
- company: "Transporteur"
- registration_number: "Numéro d'enregistrement"
- name: "Nom"
- published_name: "Nom public"
- number: "Indice"
- transport_mode: "Mode de transport"
- url: "Page web associée"
- color: "Couleur du tracé"
- text_color: "Couleur du texte"
- mobility_restricted_suitability: "Accessibilité PMR"
- flexible_service: "Transport à la demande"
- unspecified_mrs: "Non spécifié"
- accessible: "Accessible"
- not_accessible: "Non accessible"
- unspecified_fs: "Non spécifié"
- on_demaond_fs: "Service à la demande"
- regular_fs: "Service régulier"
- number_of_vj: "Nombre total de courses"
- number_of_fs_vj: "Nombre de courses à la demande"
- number_of_mrs_vj: "Nombre de courses accessibles"
- number_of_non_fs_vj: "Nombre de courses régulières"
- number_of_non_mrs_vj: "Nombre de courses non accessibles"
- number_of_null_fs_vj: "Nombre de courses sans spécification de type de service"
- number_of_null_mrs_vj: "Nombre de courses sans spécification d'accessibilité"
- default_fs_msg: "Ces courses sont considérées régulières"
- group_of_line: "Groupe de lignes"
- comment: "Commentaire"
- objectid: "Identifiant Neptune"
- object_version: "Version"
- creation_time: "Créé le"
- creator_id: "Créé par"
- footnotes: "Notes de bas de page"
- formtastic:
- titles:
- line:
- name: "Caractères autorisés : alphanumériques et 'souligné'."
- registration_number: "caractères autorisés : alphanumériques et 'souligné'"
- objectid: "[prefixe]:Line:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'"
- number: ""
- neptune:
- line:
- name: "Caractères autorisés : alphanumériques et 'souligné'."
- registration_number: "caractères autorisés : alphanumériques et 'souligné'"
- objectid: "[prefixe]:Line:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'"
- number: ""
- netex:
- line:
- name: "Caractères autorisés : alphanumériques et 'souligné'."
- registration_number: "caractères autorisés : alphanumériques et 'souligné'"
- objectid: "[prefixe]:Line:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'"
- number: ""
- gtfs:
- line:
- name: "Caractères autorisés : alphanumériques et 'souligné'."
- registration_number: "caractères autorisés : alphanumériques et 'souligné'"
- objectid: "[prefixe]:Line:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'"
- number: ""
- hub:
- line:
- name: "Caractères autorisés : alphanumériques et 'souligné'. Longueur maximale = 75."
- registration_number: "Entier positif, clé unique, d'un maximum de 8 chiffres."
- objectid: "[prefixe]:Line:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'. Longueur maximale de la clé unique = 14."
- number: "Caractères autorisés : alphanumériques et 'souligné'. Longueur maximale = 6."
diff --git a/config/locales/lines_en.yml b/config/locales/lines_en.yml
new file mode 100644
index 000000000..baaad6bbf
--- /dev/null
+++ b/config/locales/lines_en.yml
@@ -0,0 +1,118 @@
+en:
+ lines:
+ actions:
+ new: "Add a new line"
+ edit: "Edit this line"
+ destroy: "Remove this line"
+ destroy_confirm: "Are you sure you want destroy this line?"
+ destroy_selection_confirm: "Are you sure you want destroy those lines?"
+ import: "Import lines"
+ export_kml: "Export KML line"
+ export__kml_all: "Export KML lines"
+ export_hub: "Export HUB line"
+ export__hub_all: "Export HUB lines"
+ new:
+ title: "Add a new line"
+ edit:
+ title: "Update line %{line}"
+ show:
+ title: "Line %{line}"
+ itineraries: "Line's route list"
+ group_of_lines: "Groups of lines"
+ index:
+ title: "Lines"
+ name_or_number: "Search by name or number"
+ no_networks: "No networks"
+ no_companies: "No companies"
+ no_group_of_lines: "No group of lines"
+ all_networks: "All networks"
+ all_companies: "All companies"
+ all_group_of_lines: "All group of lines"
+ multi_selection: "Multiple selection"
+ multi_selection_enable: "Enable multiple selection"
+ multi_selection_disable: "Disable multiple selection"
+ delete_selected: "Delete lines"
+ export_selected: "Export lines"
+ select_all: "Select all"
+ deselect_all: "Deselect all"
+ unset: "undefined"
+ advanced_search: "Advanced Search"
+ color: "Colors"
+ form:
+ group_of_lines: "Associated groups of lines"
+ no_group_of_line: "No group of line"
+ several_group_of_lines: "%{count} groups of lines"
+ activerecord:
+ models:
+ line:
+ zero: "line"
+ one: "line"
+ other: "lines"
+ attributes:
+ line:
+ network: "Network"
+ company: "Company"
+ registration_number: "Registration number"
+ name: "Name"
+ published_name: "Published name"
+ number: "Number"
+ transport_mode: "Transport mode"
+ url: "Web page"
+ color: "Line color"
+ text_color: "Text color"
+ mobility_restricted_suitability: "PRM accessibility"
+ flexible_service: "On demond transportation"
+ unspecified_mrs: "Not specified"
+ accessible: "Accessible"
+ not_accessible: "Not accessible"
+ unspecified_fs: "Not specified"
+ on_demaond_fs: "On demond service"
+ regular_fs: "Regular service"
+ number_of_vj: "Total number of vehicle journeys"
+ number_of_fs_vj: "Number of on demond vehicle journeys"
+ number_of_mrs_vj: "Number of accessible vehicle journeys"
+ number_of_non_fs_vj: "Number of non on demond vehicle journeys"
+ number_of_non_mrs_vj: "Number of non accessible vehicle journeys"
+ number_of_null_fs_vj: "Number of unspecified on demond vehicle journeys"
+ number_of_null_mrs_vj: "Number of unspecified accessible vehicle journeys"
+ default_fs_msg: "These vehicle journeys are considered as regular"
+ group_of_line: "Group of lines"
+ comment: "Comments"
+ objectid: "Neptune identifier"
+ object_version: "Version"
+ creation_time: "Created on"
+ creator_id: "Created by"
+ footnotes: "Footnotes"
+ stable_id: External permanent idenifier"
+ formtastic:
+ titles:
+ line:
+ name: ""
+ registration_number: "only alphanumerical or underscore characters"
+ objectid: "[prefix]:Line:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character"
+ number: ""
+ neptune:
+ line:
+ name: ""
+ registration_number: "only alphanumerical or underscore characters"
+ objectid: "[prefix]:Line:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character"
+ number: ""
+ netex:
+ line:
+ name: ""
+ registration_number: "only alphanumerical or underscore characters"
+ objectid: "[prefix]:Line:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character"
+ number: ""
+ gtfs:
+ line:
+ name: ""
+ registration_number: "only alphanumerical or underscore characters"
+ objectid: "[prefix]:Line:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character"
+ number: ""
+ hub:
+ line:
+ name: "maximum 75 characters"
+ registration_number: "Positif integer, unique key, of no more than 8 digits."
+ objectid: "[prefix]:Line:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character. Maximum length of the unique key = 14."
+ number: "Only alphanumerical or underscore characters. Maximum length = 6."
+
diff --git a/config/locales/lines_fr.yml b/config/locales/lines_fr.yml
new file mode 100644
index 000000000..3661f6856
--- /dev/null
+++ b/config/locales/lines_fr.yml
@@ -0,0 +1,117 @@
+fr:
+ lines:
+ actions:
+ new: "Ajouter une ligne"
+ edit: "Modifier cette ligne"
+ destroy: "Supprimer cette ligne"
+ destroy_confirm: "Etes vous sûr de supprimer cette ligne ?"
+ destroy_selection_confirm: "Etes vous sûr de supprimer cette sélection de lignes ?"
+ import: "Importer des lignes"
+ export_kml: "Export KML de la ligne"
+ export_kml_all: "Export KML des lignes"
+ export_hub: "Export HUB de la ligne"
+ export_hub_all: "Export HUB des lignes"
+ new:
+ title: "Ajouter une ligne"
+ edit:
+ title: "Modifier la ligne %{line}"
+ show:
+ title: "Ligne %{line}"
+ itineraries: "Liste des séquences d'arrêts de la ligne"
+ group_of_lines: "Groupes de lignes"
+ index:
+ name_or_number: "Recherche par nom ou indice"
+ title: "Lignes"
+ no_networks: "Aucun réseaux"
+ no_companies: "Aucun transporteurs"
+ no_group_of_lines: "Aucun groupes de ligne"
+ all_networks: "Tous les réseaux"
+ all_companies: "Tous les transporteurs"
+ all_group_of_lines: "Tous les groupes de ligne"
+ multi_selection: "Sélection multiple"
+ multi_selection_enable: "Activer la sélection multiple"
+ multi_selection_disable: "Désactiver la sélection multiple"
+ delete_selected: "Supprimer les lignes"
+ export_selected: "Exporter les lignes"
+ select_all: "Tout sélectionner"
+ deselect_all: "Tout désélectionner"
+ unset: "non défini"
+ advanced_search: "Recherche avancée"
+ color: "Couleurs"
+ form:
+ group_of_lines: "Groupes de lignes associés"
+ no_group_of_line: "Aucun groupe de lignes"
+ several_group_of_lines: "%{count} groupes of lignes"
+ activerecord:
+ models:
+ line:
+ zero: "ligne"
+ one: "ligne"
+ other: "lignes"
+ attributes:
+ line:
+ network: "Réseau"
+ company: "Transporteur"
+ registration_number: "Numéro d'enregistrement"
+ name: "Nom"
+ published_name: "Nom public"
+ number: "Indice"
+ transport_mode: "Mode de transport"
+ url: "Page web associée"
+ color: "Couleur du tracé"
+ text_color: "Couleur du texte"
+ mobility_restricted_suitability: "Accessibilité PMR"
+ flexible_service: "Transport à la demande"
+ unspecified_mrs: "Non spécifié"
+ accessible: "Accessible"
+ not_accessible: "Non accessible"
+ unspecified_fs: "Non spécifié"
+ on_demaond_fs: "Service à la demande"
+ regular_fs: "Service régulier"
+ number_of_vj: "Nombre total de courses"
+ number_of_fs_vj: "Nombre de courses à la demande"
+ number_of_mrs_vj: "Nombre de courses accessibles"
+ number_of_non_fs_vj: "Nombre de courses régulières"
+ number_of_non_mrs_vj: "Nombre de courses non accessibles"
+ number_of_null_fs_vj: "Nombre de courses sans spécification de type de service"
+ number_of_null_mrs_vj: "Nombre de courses sans spécification d'accessibilité"
+ default_fs_msg: "Ces courses sont considérées régulières"
+ group_of_line: "Groupe de lignes"
+ comment: "Commentaire"
+ objectid: "Identifiant Neptune"
+ object_version: "Version"
+ creation_time: "Créé le"
+ creator_id: "Créé par"
+ footnotes: "Notes de bas de page"
+ stable_id: "Identifiant externe pérenne"
+ formtastic:
+ titles:
+ line:
+ name: ""
+ registration_number: "caractères autorisés : alphanumériques et 'souligné'"
+ objectid: "[prefixe]:Line:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'"
+ number: ""
+ neptune:
+ line:
+ name: ""
+ registration_number: "caractères autorisés : alphanumériques et 'souligné'"
+ objectid: "[prefixe]:Line:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'"
+ number: ""
+ netex:
+ line:
+ name: ""
+ registration_number: "caractères autorisés : alphanumériques et 'souligné'"
+ objectid: "[prefixe]:Line:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'"
+ number: ""
+ gtfs:
+ line:
+ name: ""
+ registration_number: "caractères autorisés : alphanumériques et 'souligné'"
+ objectid: "[prefixe]:Line:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'"
+ number: ""
+ hub:
+ line:
+ name: "maximum 75 caractères"
+ registration_number: "Entier positif, clé unique, d'un maximum de 8 chiffres."
+ objectid: "[prefixe]:Line:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'. Longueur maximale de la clé unique = 14."
+ number: "Caractères autorisés : alphanumériques et 'souligné'. Longueur maximale = 6."
diff --git a/config/locales/networks.yml b/config/locales/networks.yml
index 127d2b920..c6c3eb401 100644
--- a/config/locales/networks.yml
+++ b/config/locales/networks.yml
@@ -27,7 +27,7 @@ en:
comment: "Comments"
version_date: "Date of this network's version"
description: "Description"
- source_type: "Source type"
+ source_type_name: "Source type"
source_name: "Source name"
source_identifier: "Source identifier"
objectid: "Neptune identifier"
@@ -37,29 +37,29 @@ en:
formtastic:
titles:
network:
- name: "Only alphanumerical or underscore characters."
+ name: ""
registration_number: "only alphanumerical or underscore characters"
- objectid: "[prefix]:GroupOfLine:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character"
+ objectid: "[prefix]:PTNetwork:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character"
neptune:
network:
- name: "Only alphanumerical or underscore characters."
+ name: ""
registration_number: "only alphanumerical or underscore characters"
- objectid: "[prefix]:GroupOfLine:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character"
+ objectid: "[prefix]:PTNetwork:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character"
netex:
network:
- name: "Only alphanumerical or underscore characters."
+ name: ""
registration_number: "only alphanumerical or underscore characters"
- objectid: "[prefix]:GroupOfLine:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character"
+ objectid: "[prefix]:PTNetwork:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character"
gtfs:
network:
- name: "Only alphanumerical or underscore characters."
+ name: ""
registration_number: "only alphanumerical or underscore characters"
- objectid: "[prefix]:GroupOfLine:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character"
+ objectid: "[prefix]:PTNetwork:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character"
hub:
network:
- name: "Only alphanumerical or underscore characters. Maximum length = 75."
+ name: "maximum 75 characters"
registration_number: "Positif integer, unique key, of no more than 8 digits."
- objectid: "[prefix]:GroupOfLine:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character. Maximum length of the unique key = 3."
+ objectid: "[prefix]:PTNetwork:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character. Maximum length of the unique key = 3."
fr:
networks:
@@ -90,7 +90,7 @@ fr:
comment: "Commentaire"
version_date: "Date de version"
description: "Description"
- source_type: "Type de système origine"
+ source_type_name: "Type de système origine"
source_name: "Nom du système origine"
source_identifier: "Identifiant du système origine"
objectid: "Identifiant Neptune"
@@ -100,27 +100,27 @@ fr:
formtastic:
titles:
network:
- name: "Caractères autorisés : alphanumériques et 'souligné'."
+ name: ""
registration_number: "caractères autorisés : alphanumériques et 'souligné'"
- objectid: "[prefixe]:GroupOfLine:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'"
+ objectid: "[prefixe]:PTNetwork:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'"
neptune:
network:
- name: "Caractères autorisés : alphanumériques et 'souligné'."
+ name: ""
registration_number: "caractères autorisés : alphanumériques et 'souligné'"
- objectid: "[prefixe]:GroupOfLine:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'"
+ objectid: "[prefixe]:PTNetwork:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'"
netex:
network:
- name: "Caractères autorisés : alphanumériques et 'souligné'."
+ name: ""
registration_number: "caractères autorisés : alphanumériques et 'souligné'"
- objectid: "[prefixe]:GroupOfLine:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'"
+ objectid: "[prefixe]:PTNetwork:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'"
gtfs:
network:
- name: "Caractères autorisés : alphanumériques et 'souligné'."
+ name: ""
registration_number: "caractères autorisés : alphanumériques et 'souligné'"
- objectid: "[prefixe]:GroupOfLine:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'"
+ objectid: "[prefixe]:PTNetwork:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'"
hub:
network:
- name: "Caractères autorisés : alphanumériques et 'souligné'. Longueur maximale = 75."
+ name: "maximum 75 caractères"
registration_number: "Entier positif, clé unique, d'un maximum de 8 chiffres."
- objectid: "[prefixe]:GroupOfLine:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'. Longueur maximale de la clé unique = 3."
+ objectid: "[prefixe]:PTNetwork:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'. Longueur maximale de la clé unique = 3."
diff --git a/config/locales/source_types.yml b/config/locales/source_types.yml
new file mode 100644
index 000000000..8e419c9bd
--- /dev/null
+++ b/config/locales/source_types.yml
@@ -0,0 +1,27 @@
+en:
+ source_types:
+ name: "Source type"
+ label:
+ public_and_private_utilities: "public and private utilities"
+ road_authorities: "road authorities"
+ transit_operator: "transit operator"
+ public_transport: "public transport"
+ passenger_transport_coordinating_authority: "passenger transport coordinating authority"
+ travel_information_service_provider: "travel information service provider"
+ travel_agency: "travel_agency"
+ individual_subject_of_travel_itinerary: "individual subject of travel itinerary"
+ other_information: "other information"
+
+fr:
+ source_types:
+ name: "Type de source"
+ label:
+ public_and_private_utilities: "Service public ou privé"
+ road_authorities: "Autorité routière"
+ transit_operator: "Exploitant de transport public"
+ public_transport: "Transport public"
+ passenger_transport_coordinating_authority: "Autorité organisatrice de transport public"
+ travel_information_service_provider: "Opérateur de voyage (voyagiste/tour operator ...)"
+ travel_agency: "Agence de voyage"
+ individual_subject_of_travel_itinerary: "Voyageur individuel"
+ other_information: "Autre source d'information"
diff --git a/config/locales/stop_areas.yml b/config/locales/stop_areas.yml
index 227a3dbb6..36d18d70d 100644
--- a/config/locales/stop_areas.yml
+++ b/config/locales/stop_areas.yml
@@ -111,7 +111,7 @@ en:
formtastic:
titles:
stop_area:
- name: "Only alphanumerical or underscore characters."
+ name: ""
registration_number: "only alphanumerical or underscore characters"
objectid: "[prefix]:StopArea:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character"
nearest_topic_name: ""
@@ -122,7 +122,7 @@ en:
projection_xy: "x,y in secondary referential, dot for decimal separator"
neptune:
stop_area:
- name: "Only alphanumerical or underscore characters."
+ name: ""
registration_number: "only alphanumerical or underscore characters"
objectid: "[prefix]:StopArea:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character"
nearest_topic_name: ""
@@ -133,7 +133,7 @@ en:
projection_xy: "x,y in secondary referential, dot for decimal separator"
netex:
stop_area:
- name: "Only alphanumerical or underscore characters."
+ name: ""
registration_number: "only alphanumerical or underscore characters"
objectid: "[prefix]:StopArea:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character"
nearest_topic_name: ""
@@ -144,7 +144,7 @@ en:
projection_xy: "x,y in secondary referential, dot for decimal separator"
gtfs:
stop_area:
- name: "Only alphanumerical or underscore characters."
+ name: ""
registration_number: "only alphanumerical or underscore characters"
objectid: "[prefix]:StopArea:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character"
nearest_topic_name: ""
@@ -155,13 +155,13 @@ en:
projection_xy: "x,y in secondary referential, dot for decimal separator"
hub:
stop_area:
- name: "Only alphanumerical or underscore characters. Maximum length = 75."
+ name: "Maximum length = 255."
registration_number: "Positif integer, unique key, of no more than 8 digits. Mandatory for physical stops."
objectid: "[prefix]:StopArea:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character. Maximum length of the unique key = 12."
- nearest_topic_name: "Only alphanumerical or underscore characters. Maximum length = 255 for logical stops and 60 for physical stops."
- city_name: "Only alphanumerical or underscore characters. Mandatory for physical stops. Maximum length = 75."
+ nearest_topic_name: "Maximum length = 255 for logical stops and 60 for physical stops."
+ city_name: "Mandatory for physical stops. Maximum length = 75."
zip_code: "Positif integer 5 digits. Mandatory for physical stops."
- comment: "Only alphanumerical or underscore characters. Maximum length = 255."
+ comment: "Maximum length = 255."
coordinates: "Coordinates are mandatory."
projection_xy: "x,y in secondary referential, dot for decimal separator"
@@ -280,7 +280,7 @@ fr:
formtastic:
titles:
stop_area:
- name: "Caractères autorisés : alphanumériques et 'souligné'."
+ name: ""
registration_number: "caractères autorisés : alphanumériques et 'souligné'"
objectid: "[prefixe]:StopArea:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'"
nearest_topic_name: ""
@@ -291,7 +291,7 @@ fr:
projection_xy: "x,y dans le référentiel secondaire, le séparateur de décimales est 'point'"
neptune:
stop_area:
- name: "Caractères autorisés : alphanumériques et 'souligné'."
+ name: ""
registration_number: "caractères autorisés : alphanumériques et 'souligné'"
objectid: "[prefixe]:StopArea:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'"
nearest_topic_name: ""
@@ -302,7 +302,7 @@ fr:
projection_xy: "x,y dans le référentiel secondaire, le séparateur de décimales est 'point'"
netex:
stop_area:
- name: "Caractères autorisés : alphanumériques et 'souligné'."
+ name: ""
registration_number: "caractères autorisés : alphanumériques et 'souligné'"
objectid: "[prefixe]:StopArea:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'"
nearest_topic_name: ""
@@ -313,7 +313,7 @@ fr:
projection_xy: "x,y dans le référentiel secondaire, le séparateur de décimales est 'point'"
gtfs:
stop_area:
- name: "Caractères autorisés : alphanumériques et 'souligné'."
+ name: ""
registration_number: "caractères autorisés : alphanumériques et 'souligné'"
objectid: "[prefixe]:StopArea:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'"
nearest_topic_name: ""
@@ -324,13 +324,13 @@ fr:
projection_xy: "x,y dans le référentiel secondaire, le séparateur de décimales est 'point'"
hub:
stop_area:
- name: "Caractères autorisés : alphanumériques et 'souligné'. Longueur maximale = 75."
+ name: "Longueur maximale = 75."
registration_number: "Entier positif, clé unique, d'un maximum de 8 chiffres. Obligatoire pour les arrêts physiques."
objectid: "[prefixe]:StopArea:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'. Longueur maximale de la clé unique = 12."
- nearest_topic_name: "Caractères autorisés : alphanumériques et 'souligné'. Longueur maximale = 255 pour les arrêts logiques et 60 pour les arrêts physiques."
- city_name: "Caractères autorisés : alphanumériques et 'souligné'. Obligatoire pour les arrêts physiques. Longueur maximale = 80."
+ nearest_topic_name: "Longueur maximale = 255 pour les arrêts logiques et 60 pour les arrêts physiques."
+ city_name: "Obligatoire pour les arrêts physiques. Longueur maximale = 80."
zip_code: "Entier positif de 8 chiffres. Obligatoire pour les arrêts physiques."
- comment: "Caractères autorisés : alphanumériques et 'souligné'. Longueur maximale = 255."
+ comment: "Longueur maximale = 255."
coordinates: "Les coordonnées sont obligatoires."
projection_xy: "x,y dans le référentiel secondaire, le séparateur de décimales est 'point'"
diff --git a/config/locales/time_tables.yml b/config/locales/time_tables.yml
index b0d469297..b9eb3babf 100644
--- a/config/locales/time_tables.yml
+++ b/config/locales/time_tables.yml
@@ -84,23 +84,23 @@ en:
formtastic:
titles:
time_table:
- comment: "Only alphanumerical or underscore characters."
+ comment: ""
objectid: "[prefix]:Timetable:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character"
neptune:
time_table:
- comment: "Only alphanumerical or underscore characters."
+ comment: ""
objectid: "[prefix]:Timetable:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character"
netex:
time_table:
- comment: "Only alphanumerical or underscore characters."
+ comment: ""
objectid: "[prefix]:Timetable:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character"
gtfs:
time_table:
- comment: "Only alphanumerical or underscore characters."
+ comment: ""
objectid: "[prefix]:Timetable:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character"
hub:
time_table:
- comment: "Only alphanumerical or underscore characters. Maximum length = 75."
+ comment: "Maximum length = 75."
objectid: "[prefix]:Timetable:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character. Maximum length of the unique key = 6."
placeholders:
time_table:
@@ -196,23 +196,23 @@ fr:
formtastic:
titles:
time_table:
- comment: "Caractères autorisés : alphanumériques et 'souligné'."
+ comment: ""
objectid: "[prefixe]:Timetable:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'"
neptune:
time_table:
- comment: "Caractères autorisés : alphanumériques et 'souligné'."
+ comment: ""
objectid: "[prefixe]:Timetable:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'"
netex:
time_table:
- comment: "Caractères autorisés : alphanumériques et 'souligné'."
+ comment: ""
objectid: "[prefixe]:Timetable:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'"
gtfs:
time_table:
- comment: "Caractères autorisés : alphanumériques et 'souligné'."
+ comment: ""
objectid: "[prefixe]:Timetable:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'"
hub:
time_table:
- comment: "Caractères autorisés : alphanumériques et 'souligné'. Longueur maximale = 75."
+ comment: "Longueur maximale = 75."
objectid: "[prefixe]:Timetable:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'. Longueur maximale de la clé unique = 6."
placeholders:
time_table:
diff --git a/config/locales/vehicle_journeys.yml b/config/locales/vehicle_journeys.yml
index 9b872b222..3b18447f4 100644
--- a/config/locales/vehicle_journeys.yml
+++ b/config/locales/vehicle_journeys.yml
@@ -78,7 +78,7 @@ en:
accessible: "Accessible"
not_accessible: "Not accessible"
unspecified_fs: "Not specified"
- on_demaond_fs: "On demond service"
+ on_demand_fs: "On demand service"
regular_fs: "Regular service"
published_journey_name: "Published Name"
published_journey_identifier: "Published Identifier"
@@ -192,7 +192,7 @@ fr:
accessible: "Accessible"
not_accessible: "Non accessible"
unspecified_fs: "Non spécifié"
- on_demaond_fs: "Service à la demande"
+ on_demand_fs: "Service à la demande"
regular_fs: "Service régulier"
published_journey_name: "Nom public"
published_journey_identifier: "Identifiant public"
diff --git a/db/migrate/20150922095511_add_stable_id_to_line.ninoxe_engine.rb b/db/migrate/20150922095511_add_stable_id_to_line.ninoxe_engine.rb
new file mode 100644
index 000000000..847a15668
--- /dev/null
+++ b/db/migrate/20150922095511_add_stable_id_to_line.ninoxe_engine.rb
@@ -0,0 +1,8 @@
+# This migration comes from ninoxe_engine (originally 20150922093109)
+class AddStableIdToLine < ActiveRecord::Migration
+ def change
+ change_table :lines do |t|
+ t.string :stable_id
+ end
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 97bf1836e..b68c3190a 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -11,7 +11,7 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema.define(version: 20150526081746) do
+ActiveRecord::Schema.define(version: 20150922095511) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -93,7 +93,7 @@ ActiveRecord::Schema.define(version: 20150526081746) do
end
add_index "companies", ["objectid"], name: "companies_objectid_key", unique: true, using: :btree
- add_index "companies", ["registration_number"], name: "companies_registration_number_key", unique: true, using: :btree
+ add_index "companies", ["registration_number"], name: "companies_registration_number_key", using: :btree
create_table "connection_links", force: true do |t|
t.integer "departure_id", limit: 8
@@ -237,10 +237,11 @@ ActiveRecord::Schema.define(version: 20150526081746) do
t.string "url"
t.string "color", limit: 6
t.string "text_color", limit: 6
+ t.string "stable_id"
end
add_index "lines", ["objectid"], name: "lines_objectid_key", unique: true, using: :btree
- add_index "lines", ["registration_number"], name: "lines_registration_number_key", unique: true, using: :btree
+ add_index "lines", ["registration_number"], name: "lines_registration_number_key", using: :btree
create_table "networks", force: true do |t|
t.string "objectid", null: false
@@ -258,7 +259,7 @@ ActiveRecord::Schema.define(version: 20150526081746) do
end
add_index "networks", ["objectid"], name: "networks_objectid_key", unique: true, using: :btree
- add_index "networks", ["registration_number"], name: "networks_registration_number_key", unique: true, using: :btree
+ add_index "networks", ["registration_number"], name: "networks_registration_number_key", using: :btree
create_table "organisations", force: true do |t|
t.string "name"
diff --git a/lib/ninoxe_extension/hub/company_restrictions.rb b/lib/ninoxe_extension/hub/company_restrictions.rb
index 190b63cd2..6cb12f0b6 100644
--- a/lib/ninoxe_extension/hub/company_restrictions.rb
+++ b/lib/ninoxe_extension/hub/company_restrictions.rb
@@ -9,7 +9,8 @@ module NinoxeExtension::Hub
# HUB-7
g.validate :specific_objectid
# HUB-8
- g.validates_format_of :name, :with => %r{\A[\w]{1,75}\z}
+ #g.validates_format_of :name, :with => %r{\A[\w ]{1,75}\z}
+ g.validates_length_of :name, :minimum => 1, :maximum => 75
# HUB-9
g.validates_format_of :registration_number, :with => %r{\A[\d]{1,8}\z}
g.validates_uniqueness_of :registration_number
diff --git a/lib/ninoxe_extension/hub/connection_link_restrictions.rb b/lib/ninoxe_extension/hub/connection_link_restrictions.rb
index bf433379b..600222455 100644
--- a/lib/ninoxe_extension/hub/connection_link_restrictions.rb
+++ b/lib/ninoxe_extension/hub/connection_link_restrictions.rb
@@ -6,9 +6,9 @@ module NinoxeExtension::Hub
included do
include ObjectidRestrictions
- with_options if: :hub_restricted? do |jp|
+ with_options if: :hub_restricted? do |cl|
# HUB-34
- jp.validates :link_distance, :numericality => { :max => 10000.0 }
+ cl.validates :link_distance, :numericality => { :max => 10000.0 }
end
end
end
diff --git a/lib/ninoxe_extension/hub/group_of_line_restrictions.rb b/lib/ninoxe_extension/hub/group_of_line_restrictions.rb
index d5de71ce0..f8370faf1 100644
--- a/lib/ninoxe_extension/hub/group_of_line_restrictions.rb
+++ b/lib/ninoxe_extension/hub/group_of_line_restrictions.rb
@@ -10,7 +10,8 @@ module NinoxeExtension::Hub
# HUB-11
g.validate :specific_objectid
# HUB-12
- g.validates_format_of :name, :with => %r{\A[\w]{1,75}\z}
+ #g.validates_format_of :name, :with => %r{\A[\w ]{1,75}\z}
+ g.validates_length_of :name, :minimum => 1, :maximum => 75
# HUB-13
g.validates_format_of :registration_number, :with => %r{\A[\d]{1,8}\z}
g.validates_uniqueness_of :registration_number
diff --git a/lib/ninoxe_extension/hub/journey_pattern_restrictions.rb b/lib/ninoxe_extension/hub/journey_pattern_restrictions.rb
index 448be9665..d4e881d1f 100644
--- a/lib/ninoxe_extension/hub/journey_pattern_restrictions.rb
+++ b/lib/ninoxe_extension/hub/journey_pattern_restrictions.rb
@@ -12,7 +12,8 @@ module NinoxeExtension::Hub
# HUB-40
jp.validates :registration_number, :numericality => { :less_than => 10 ** 8 }
# HUB-41
- jp.validates_format_of :name, :with => %r{\A[\w]{0,75}\z}
+ #jp.validates_format_of :name, :with => %r{\A[\w ]{0,75}\z}
+ jp.validates_length_of :name, :maximum => 75, :allow_blank => true, :allow_nil => true
end
end
def specific_objectid
diff --git a/lib/ninoxe_extension/hub/line_restrictions.rb b/lib/ninoxe_extension/hub/line_restrictions.rb
index 616d1fd52..9d8f22112 100644
--- a/lib/ninoxe_extension/hub/line_restrictions.rb
+++ b/lib/ninoxe_extension/hub/line_restrictions.rb
@@ -14,7 +14,8 @@ module NinoxeExtension::Hub
# HUB-16
l.validates_format_of :number, :with => %r{\A[\w]{1,6}\z}
# HUB-17
- l.validates_format_of :name, :with => %r{\A[\w]{0,75}\z}
+ #l.validates_format_of :name, :with => %r{\A[\w ]{0,75}\z}
+ l.validates_length_of :name, :maximum => 75
# HUB-21
l.validates :registration_number, :numericality => { :less_than => 10 ** 8 }
# HUB-22
diff --git a/lib/ninoxe_extension/hub/network_restrictions.rb b/lib/ninoxe_extension/hub/network_restrictions.rb
index 7966736ec..b18a6c033 100644
--- a/lib/ninoxe_extension/hub/network_restrictions.rb
+++ b/lib/ninoxe_extension/hub/network_restrictions.rb
@@ -5,14 +5,15 @@ module NinoxeExtension::Hub
included do
include ObjectidRestrictions
- with_options if: :hub_restricted? do |g|
+ with_options if: :hub_restricted? do |n|
# HUB-3
- g.validate :specific_objectid
+ n.validate :specific_objectid
# HUB-4
- g.validates_format_of :name, :with => %r{\A[\w]{1,75}\z}
+ #n.validates_format_of :name, :with => %r{\A[\w ]{1,75}\z}
+ n.validates_length_of :name, :minimum => 1, :maximum => 75
# HUB-5
- g.validates_format_of :registration_number, :with => %r{\A[\d]{1,8}\z}
- g.validates_uniqueness_of :registration_number
+ n.validates_format_of :registration_number, :with => %r{\A[\d]{1,8}\z}
+ n.validates_uniqueness_of :registration_number
end
end
def specific_objectid
diff --git a/lib/ninoxe_extension/hub/objectid_restrictions.rb b/lib/ninoxe_extension/hub/objectid_restrictions.rb
index a84e1428f..1fcdb94cb 100644
--- a/lib/ninoxe_extension/hub/objectid_restrictions.rb
+++ b/lib/ninoxe_extension/hub/objectid_restrictions.rb
@@ -22,7 +22,7 @@ module NinoxeExtension::Hub::ObjectidRestrictions
return unless hub_restricted?
return true unless third_part_objectid
- likes = Chouette::Line.where( "objectid LIKE ?", "%:#{self.third_part_objectid}" )
+ likes = self.class.where( "objectid LIKE ?", "%:#{self.third_part_objectid}" )
likes.size.zero? || ( likes.size==1 && likes.first.id==self.id)
end
end
diff --git a/lib/ninoxe_extension/hub/stop_area_restrictions.rb b/lib/ninoxe_extension/hub/stop_area_restrictions.rb
index 8701c291c..676dac05e 100644
--- a/lib/ninoxe_extension/hub/stop_area_restrictions.rb
+++ b/lib/ninoxe_extension/hub/stop_area_restrictions.rb
@@ -10,10 +10,10 @@ module NinoxeExtension::Hub
self.area_type=="CommercialStopPoint"
end
def physical_hub_restricted?
- hub_restricted? && commercial?
+ hub_restricted? && physical?
end
def commercial_hub_restricted?
- hub_restricted? && physical?
+ hub_restricted? && commercial?
end
def commercial_and_physical_hub_restricted?
physical_hub_restricted? || commercial_hub_restricted?
@@ -27,28 +27,34 @@ module NinoxeExtension::Hub
with_options if: :commercial_and_physical_hub_restricted? do |sa|
- # HUB-23
+ # HUB-23
sa.validate :specific_objectid
- sa.validates_format_of :name, :with => %r{\A[\w]{1,75}\z}
+ #sa.validates_format_of :name, :with => %r{\A[\w ]{1,75}\z}
+ sa.validates_length_of :name, :minimum => 1, :maximum => 75
end
+
with_options if: :commercial_hub_restricted? do |sa|
# HUB-24
- validates_format_of :nearest_topic_name, :with => %r{\A[\w]{0,255}\z}
+ #sa.validates_format_of :nearest_topic_name, :with => %r{\A[\w ]{0,255}\z}
+ sa.validates_length_of :nearest_topic_name, :maximum => 255, :allow_blank => true, :allow_nil => true
end
with_options if: :physical_hub_restricted? do |sa|
# HUB-25
- sa.validates_format_of :nearest_topic_name, :with => %r{\A[\w]{0,60}\z}
+ #sa.validates_format_of :nearest_topic_name, :with => %r{\A[\w ]{0,60}\z}
+ sa.validates_length_of :nearest_topic_name, :maximum => 60, :allow_blank => true, :allow_nil => true
# HUB-28
sa.validates_presence_of :longitude
sa.validates_presence_of :latitude
# HUB-29
- sa.validates_format_of :city_name, :with => %r{\A[\w]{1,80}\z}
+ #sa.validates_format_of :city_name, :with => %r{\A[\w ]{1,80}\z}
+ sa.validates_length_of :city_name, :minimum => 1, :maximum => 80
+
# HUB-30
sa.validates_format_of :zip_code, :with => %r{\A[\d]{5}\z}
# HUB-31
- sa.validates_format_of :comment, :with => %r{\A[\w]{0,255}\z}
- # HUB-32
+ # sa.validates_format_of :comment, :with => %r{\A[\w ]{0,255}\z}
+ sa.validates_length_of :comment, :maximum => 255, :allow_blank => true, :allow_nil => true
sa.validates_format_of :registration_number, :with => %r{\A[\w]{1,8}\z}, :allow_blank => true, :allow_nil => true
end
end
diff --git a/lib/ninoxe_extension/hub/time_table_restrictions.rb b/lib/ninoxe_extension/hub/time_table_restrictions.rb
index 591810f42..36e6846ae 100644
--- a/lib/ninoxe_extension/hub/time_table_restrictions.rb
+++ b/lib/ninoxe_extension/hub/time_table_restrictions.rb
@@ -6,11 +6,12 @@ module NinoxeExtension::Hub
included do
include ObjectidRestrictions
- with_options if: :hub_restricted? do |jp|
+ with_options if: :hub_restricted? do |tt|
# HUB-44
- jp.validate :specific_objectid
+ tt.validate :specific_objectid
# HUB-45
- jp.validates_format_of :comment, :with => %r{\A[\w]{0,75}\z}
+ #tt.validates_format_of :comment, :with => %r{\A[\w ]{0,75}\z}
+ tt.validates_length_of :comment, :maximum => 75, :allow_blank => true, :allow_nil => true
end
end
def specific_objectid
diff --git a/lib/ninoxe_extension/hub/vehicle_journey_restrictions.rb b/lib/ninoxe_extension/hub/vehicle_journey_restrictions.rb
index 151123a43..b1a493207 100644
--- a/lib/ninoxe_extension/hub/vehicle_journey_restrictions.rb
+++ b/lib/ninoxe_extension/hub/vehicle_journey_restrictions.rb
@@ -7,8 +7,8 @@ module NinoxeExtension::Hub
include ObjectidRestrictions
# HUB-42
- with_options if: :hub_restricted? do |jp|
- jp.validate :specific_objectid
+ with_options if: :hub_restricted? do |vj|
+ vj.validate :specific_objectid
end
end
def specific_objectid