diff options
25 files changed, 471 insertions, 106 deletions
diff --git a/app/controllers/registrations_controller.rb b/app/controllers/registrations_controller.rb index b02d3217a..f563fbb03 100644 --- a/app/controllers/registrations_controller.rb +++ b/app/controllers/registrations_controller.rb @@ -6,7 +6,7 @@ def accept_user_creation if !Rails.application.config.accept_user_creation - redirect_to root_path + redirect_to unauthenticated_root_path return false else return true diff --git a/app/helpers/routes_helper.rb b/app/helpers/routes_helper.rb index bbb611506..b3d79262e 100644 --- a/app/helpers/routes_helper.rb +++ b/app/helpers/routes_helper.rb @@ -14,4 +14,3 @@ module RoutesHelper end end - diff --git a/app/helpers/rule_parameter_sets_helper.rb b/app/helpers/rule_parameter_sets_helper.rb new file mode 100644 index 000000000..8485b63ca --- /dev/null +++ b/app/helpers/rule_parameter_sets_helper.rb @@ -0,0 +1,18 @@ +module RuleParameterSetsHelper + + def unique( value) + return t("true") if value == "1" + t "false" + end + + def pattern(value) + return t("rule_parameter_sets.labels.free_char") if value == "0" + return t("rule_parameter_sets.labels.num_char") if value == "1" + return t("rule_parameter_sets.labels.alpha_char") if value == "2" + return t("rule_parameter_sets.labels.upper_char") if value == "3" + return t("rule_parameter_sets.labels.lower_char") if value == "4" + end + +end + + diff --git a/app/helpers/users_helper.rb b/app/helpers/users_helper.rb index 0dfc1552f..ea5f41fb7 100644 --- a/app/helpers/users_helper.rb +++ b/app/helpers/users_helper.rb @@ -4,25 +4,13 @@ module UsersHelper image_tag user_image(user), :alt => "", :class => "preview", :width => size, :height => size end - def gravatar_hash(user) - Digest::MD5.hexdigest( user.email) - end - def gravatar_url( user) - "http://www.gravatar.com/avatar/#{gravatar_hash(user)}?d=404" - end - def user_image(user) - begin - gravatar_resource = RestClient.get( gravatar_url( user)){|response, request, result| response } - rescue - # Happens if network is not available - return 'icons/user.png' - end - if gravatar_resource.code == 404 - # Happens if user has not registered to gravatar - 'icons/user.png' - else - gravatar_url( user) - end + def user_default_avatar + return "#{authenticated_root_url}#{image_path('icons/user.png')}" if Rails.application.config.relative_url_root.blank? + + relative_url_root = Rails.application.config.relative_url_root.gsub( /\//, '') + "#{authenticated_root_url}#{image_path('icons/user.png')}". + sub( Regexp.new("/#{relative_url_root}/#{relative_url_root}/"), "/#{relative_url_root}/"). + sub( Regexp.new("/#{relative_url_root}//#{relative_url_root}/"), "/#{relative_url_root}/") end end diff --git a/app/models/rule_parameter_set.rb b/app/models/rule_parameter_set.rb index 0c7a98300..01c2e48a6 100644 --- a/app/models/rule_parameter_set.rb +++ b/app/models/rule_parameter_set.rb @@ -16,8 +16,43 @@ class RuleParameterSet < ActiveRecord::Base inter_connection_link_distance_max walk_default_speed_max walk_occasional_traveller_speed_max walk_frequent_traveller_speed_max walk_mobility_restricted_traveller_speed_max inter_access_link_distance_max inter_stop_duration_max facility_stop_area_distance_max - vehicle_journey_number_max vehicle_journey_number_min check_allowed_transport_modes) + check_allowed_transport_modes check_lines_in_groups check_line_routes + check_stop_parent check_connection_link_on_physical) end + + def self.validable_objects + [Chouette::Network,Chouette::Company,Chouette::GroupOfLine, + Chouette::StopArea,Chouette::AccessPoint,Chouette::AccessLink,Chouette::ConnectionLink, + Chouette::TimeTable,Chouette::Line,Chouette::Route, + Chouette::JourneyPattern,Chouette::VehicleJourney] + end + + def self.validable_object_names + ["network","company","group_of_line", + "stop_area","access_point","access_link","connection_link", + "time_table","line","route", + "journey_pattern","vehicle_journey"] + end + + def self.validable_columns + {"network" => ['objectid','name','registration_number'], + "company" => ['objectid','name','registration_number'], + "group_of_line" => ['objectid','name','registration_number'], + "stop_area" => ['objectid','name','registration_number','city_name','country_code','zip_code'], + "access_point" => ['objectid','name','city_name','country_code','zip_code'], + "access_link" => ['objectid','name','link_distance','default_duration'], + "connection_link" => ['objectid','name','link_distance','default_duration'], + "time_table" => ['objectid','comment','version'], + "line" => ['objectid','name','registration_number','number','published_name'], + "route" => ['objectid','name','number','published_name'], + "journey_pattern" => ['objectid','name','registration_number','published_name'], + "vehicle_journey" => ['objectid','published_journey_name','published_journey_identifier','number'] } + end + + def self.column_attribute_prefixes + %w( unique pattern min_size max_size ) + end + def self.all_modes Chouette::TransportMode.all.map { |m| m.to_s} end @@ -28,6 +63,14 @@ class RuleParameterSet < ActiveRecord::Base mode_attribute_prefixes.include?( $1) && self.class.all_modes.include?( $2) end + + def self.column_attribute?( method_name ) + pattern = /(\w+)_column_(\w+)_object_(\w+)/ + return false unless method_name.match( pattern) + return false unless validable_object_names.include?($3) + column_attribute_prefixes.include?( $1) && validable_columns[$3].include?( $2) + end + def self.mode_of_mode_attribute( method_name ) method_name.match( /(\w+)_mode_(\w+)/) $2 @@ -37,6 +80,20 @@ class RuleParameterSet < ActiveRecord::Base $1 end + def self.object_of_column_attribute( method_name ) + method_name.match( /(\w+)_column_(\w+)_object_(\w+)/) + $3 + end + def self.column_of_column_attribute( method_name ) + method_name.match( /(\w+)_column_(\w+)_object_(\w+)/) + $2 + end + def self.attribute_of_column_attribute( method_name ) + method_name.match( /(\w+)_column_(\w+)_object_(\w+)/) + $1 + end + + def self.mode_parameter(name) name = name.to_s attr_accessible name @@ -52,6 +109,37 @@ class RuleParameterSet < ActiveRecord::Base ((self.parameters ||= {})["mode_#{mode}"] ||= {})[attribute_name] = prefix end end + + def self.column_parameter(obj,column,prefix) + name = "#{prefix}_column_#{column}_object_#{obj}" + attr_accessible name + define_method(name) do + attribute_name, column, obj = prefix, column, obj + self.parameters and self.parameters[obj] and + self.parameters[obj][column] and self.parameters[obj][column][attribute_name] + end + + define_method("#{name}=") do |key| + attribute_name, column, obj = prefix, column, obj + (((self.parameters ||= {})[obj] ||= {})[column]||= {})[attribute_name] = key + end + + end + + def self.object_parameter(clazz) + name = clazz.table_name.singularize + attr_accessible name + + parameter "check_#{clazz.table_name.singularize}" + validable_columns[name].each do |column| + column_attribute_prefixes.each do |prefix| + column_parameter name,column,prefix + end + + end + + end + def self.parameter(name) name = name.to_s attr_accessible name @@ -77,7 +165,11 @@ class RuleParameterSet < ActiveRecord::Base :inter_access_link_distance_max => 300, :inter_stop_duration_max => 40, :facility_stop_area_distance_max => 300, - :check_allowed_transport_modes => false + :check_allowed_transport_modes => false, + :check_lines_in_groups => false, + :check_line_routes => false, + :check_stop_parent => false, + :check_connection_link_on_physical => false } if mode && self.mode_default_params[ mode.to_sym] base.merge!( self.mode_default_params[ mode.to_sym]) @@ -231,21 +323,41 @@ class RuleParameterSet < ActiveRecord::Base def allowed(mode) return true unless self.check_allowed_transport_modes - puts "#{mode} = "+self.send("allowed_transport_mode_#{mode}").to_s + # puts "#{mode} = "+self.send("allowed_transport_mode_#{mode}").to_s return self.send("allowed_transport_mode_#{mode}") == "1" end + + def selected(object) + # puts "#{mode} = "+self.send("allowed_transport_mode_#{mode}").to_s + return self.send("check_#{object}") == "1" + end + + def selected_column(object,column) + # puts "#{mode} = "+self.send("allowed_transport_mode_#{mode}").to_s + return self.send("unique_column_#{column}_object_#{object}") == "1" || + self.send("pattern_column_#{column}_object_#{object}") != "0" || + !self.send("min_size_column_#{column}_object_#{object}").empty? || + !self.send("max_size_column_#{column}_object_#{object}").empty? + end + all_modes.each do |mode| mode_attribute_prefixes.each do |prefix| mode_parameter "#{prefix}_mode_#{mode}".to_sym end end - + general_attributes.each do |attribute| parameter attribute.to_sym unless attribute == "stop_areas_area" || attribute == "check_allowed_transport_modes" validates attribute.to_sym, :numericality => true, :allow_nil => true, :allow_blank => true end end + + + validable_objects.each do |obj| + object_parameter obj + end + end diff --git a/app/views/devise/mailer/invitation_instructions.fr.html.erb b/app/views/devise/mailer/invitation_instructions.fr.html.erb index 7ef4e6c99..c932763f2 100644 --- a/app/views/devise/mailer/invitation_instructions.fr.html.erb +++ b/app/views/devise/mailer/invitation_instructions.fr.html.erb @@ -1,6 +1,6 @@ <p>Bonjour <%= @resource.email %>,</p> -<p>Ce message est une invitation pour accéder à <%= link_to nil, root_url %>, vous pouvez l'accepter en cliquant sur le lien suivant :</p> +<p>Ce message est une invitation pour accéder à <%= link_to nil, unauthenticated_root_url %>, vous pouvez l'accepter en cliquant sur le lien suivant :</p> <p><%= link_to "Accepter l'invitation", accept_invitation_url(@resource, :invitation_token => @resource.invitation_token) %></p> diff --git a/app/views/devise/passwords/edit.html.erb b/app/views/devise/passwords/edit.html.erb index e0cad44a2..0c5ba77cf 100644 --- a/app/views/devise/passwords/edit.html.erb +++ b/app/views/devise/passwords/edit.html.erb @@ -8,8 +8,8 @@ <%= f.input :password, :as => :password %> <%= f.input :password_confirmation, :as => :password %> - <div class="submit"> - <%= link_to t("cancel"), root_path, :class => "btn btn-default" %> + <div class="col-md-offset-2"> + <%= link_to t("cancel"), unauthenticated_root_path, :class => "btn btn-default" %> <%= f.button :submit, :value => t("devise.passwords.edit.commit"), :class => "btn-info" %> </div> <% end %> diff --git a/app/views/devise/passwords/new.html.erb b/app/views/devise/passwords/new.html.erb index 8f5ec0f10..498e24c4c 100644 --- a/app/views/devise/passwords/new.html.erb +++ b/app/views/devise/passwords/new.html.erb @@ -5,8 +5,8 @@ <%= simple_form_for(resource, :as => resource_name, :url => password_path(resource_name)) do |form| %> <%= form.input :email, :as => :email, placeholder: 'user@domain.com' %> - <div class="submit"> - <%= link_to t("cancel"), root_path, :class => "btn btn-default" %> + <div class="col-md-offset-2"> + <%= link_to t("cancel"), unauthenticated_root_path, :class => "btn btn-default" %> <%= form.button :submit, :value => t("devise.passwords.new.commit"), :class => "btn-info" %> </div> <% end %> diff --git a/app/views/layouts/_user_links.erb b/app/views/layouts/_user_links.erb index 404f52172..bd9196b3f 100644 --- a/app/views/layouts/_user_links.erb +++ b/app/views/layouts/_user_links.erb @@ -1,5 +1,5 @@ <ul class="user"> - <li class="home"><%= link_to t('layouts.home'), root_path %></li> + <li class="home"><%= link_to t('layouts.home'), authenticated_root_path %></li> <% if user_signed_in? %> <li> | </li> diff --git a/app/views/layouts/mailer.html.erb b/app/views/layouts/mailer.html.erb index 387221103..ac00bdfea 100644 --- a/app/views/layouts/mailer.html.erb +++ b/app/views/layouts/mailer.html.erb @@ -18,7 +18,7 @@ </div> <div style="color: #333333; text-align:center; font-size: 10px;"> - Envoyé par <%= link_to root_url, "Chouette" %> + Envoyé par <%= link_to "Chouette", unauthenticated_root_url %> </div> </body> </html> diff --git a/app/views/rule_parameter_sets/_column_fields.html.erb b/app/views/rule_parameter_sets/_column_fields.html.erb new file mode 100644 index 000000000..abb2af4a8 --- /dev/null +++ b/app/views/rule_parameter_sets/_column_fields.html.erb @@ -0,0 +1,11 @@ + <td></td> + <td><%= t("activerecord.attributes.#{obj.table_name.singularize}.#{column}") %></td> + <% suffix = "column_#{column}_object_#{obj.table_name.singularize}"%> + <td> <%= f.check_box "unique_#{suffix}".to_sym, :class => "special" %></td> + <% if obj.columns_hash[column].type == :string %> + <td><%= f.select "pattern_#{suffix}".to_sym, options_for_select([[t("rule_parameter_sets.labels.free_char"), "0"], [t("rule_parameter_sets.labels.num_char"), "1"], [t("rule_parameter_sets.labels.alpha_char"), "2"], [t("rule_parameter_sets.labels.upper_char"), "3"], [t("rule_parameter_sets.labels.lower_char"), "4"]]) %></td> + <% else %> + <td><%= t "rule_parameter_sets.labels.num_char" %></td> + <% end %> + <td><%= f.number_field "min_size_#{suffix}".to_sym, :class => "special" %></td> + <td><%= f.number_field "max_size_#{suffix}".to_sym, :class => "special" %></td> diff --git a/app/views/rule_parameter_sets/_form.html.erb b/app/views/rule_parameter_sets/_form.html.erb index 90d6850fb..905e7f691 100644 --- a/app/views/rule_parameter_sets/_form.html.erb +++ b/app/views/rule_parameter_sets/_form.html.erb @@ -17,9 +17,15 @@ <%= form.input :vehicle_journey_number_min, :as => :number %> <%= form.input :vehicle_journey_number_max, :as => :number %> + + <%= form.input :check_lines_in_groups, :as => :boolean %> + <%= form.input :check_line_routes, :as => :boolean %> + <%= form.input :check_stop_parent, :as => :boolean %> + <%= form.input :check_connection_link_on_physical, :as => :boolean %> <%= form.input :check_allowed_transport_modes, :as => :boolean %> <table class="table table-striped table-condensed"> + <thead> <tr> <th><%= t("transport_modes.name") %></th> <% RuleParameterSet.mode_attribute_prefixes.each do |prefix| %> @@ -31,12 +37,39 @@ <% end %> <% end %> </tr> + </thead> + <tbody> <% Chouette::Line.transport_modes.map(&:to_s).each do |mode| %> <tr> <%= render :partial => "mode_fields", :locals => { :f => form, :mode => mode} %> </tr> <% end %> + </tbody> + </table> + + <%= t("rule_parameter_sets.labels.columns_restrictions") %> + <table class="table table-bordered table-condensed"> + <% RuleParameterSet.validable_objects.each do |obj| %> + <thead> + <tr> + <th> <%= form.check_box "check_#{obj.table_name.singularize}".to_sym, :class => "special" %> <%= t("activerecord.models.#{obj.table_name.singularize}.one") %></th> + <th><%= RuleParameterSet.human_attribute_name("attribute") %></th> + <th><%= RuleParameterSet.human_attribute_name("unique") %></th> + <th><%= RuleParameterSet.human_attribute_name("string_type") %></th> + <th><%= RuleParameterSet.human_attribute_name("min_size") %></th> + <th><%= RuleParameterSet.human_attribute_name("max_size") %></th> + </tr> + </thead> + <tbody> + <% RuleParameterSet.validable_columns[obj.table_name.singularize].each do |col| %> + <tr class="<%= "columns_for_#{obj.table_name}" %>"> + <%= render :partial => "column_fields", :locals => { :f => form, :obj => obj, :column => col} %> + </tr> + <% end %> + </tbody> + <% end %> </table> + <% end %> <%= form.actions do %> diff --git a/app/views/rule_parameter_sets/show.html.erb b/app/views/rule_parameter_sets/show.html.erb index 66e002b94..810730e50 100644 --- a/app/views/rule_parameter_sets/show.html.erb +++ b/app/views/rule_parameter_sets/show.html.erb @@ -68,26 +68,33 @@ <label><%= t(".inter_stop_duration_max") %>: </label> <%= @rule_parameter_set.inter_stop_duration_max %> </p> - <% if @rule_parameter_set.vehicle_journey_number_min.present? && @rule_parameter_set.vehicle_journey_number_max.present? %> - <div class="attributes_group" > - <span class="title"><%= t(".vehicle_journey_number_bounds") %></span> - <div class="columns"> - <div class="two_columns"> - <label><%= t(".min_value") %> : </label> - <span class="value"><%= @rule_parameter_set.vehicle_journey_number_min %></span> - </div> - <div class="two_columns"> - <label><%= t(".max_value") %> : </label> - <span class="value"><%= @rule_parameter_set.vehicle_journey_number_max %></span> - </div> - </div> - </div> - <% end %> + + <p> + <label><%= RuleParameterSet.human_attribute_name("check_lines_in_groups") %>: </label> + <%= @rule_parameter_set.check_lines_in_groups ? t("true") : t("false") %> + </p> + + <p> + <label><%= RuleParameterSet.human_attribute_name("check_line_routes") %>: </label> + <%= @rule_parameter_set.check_line_routes ? t("true") : t("false") %> + </p> + + <p> + <label><%= RuleParameterSet.human_attribute_name("check_stop_parent") %>: </label> + <%= @rule_parameter_set.check_stop_parent ? t("true") : t("false") %> + </p> + <p> + <label><%= RuleParameterSet.human_attribute_name("check_connection_link_on_physical") %>: </label> + <%= @rule_parameter_set.check_allowed_transport_modes ? t("true") : t("false") %> + </p> + + </p> <label><%= RuleParameterSet.human_attribute_name("check_allowed_transport_modes") %>: </label> <%= @rule_parameter_set.check_allowed_transport_modes ? t("true") : t("false") %> </p> + <div class="rule_parameter_by_mode"> <label><%= t(".rule_parameter_by_mode") %> <%= t(".modes_allowed") if @rule_parameter_set.check_allowed_transport_modes %> @@ -116,6 +123,40 @@ <% end %> </table> </div> + <div class="rule_parameter_by_object"> + <label><%= t("rule_parameter_sets.labels.columns_restrictions") %> </label> + <table class="table table-bordered table-condensed"> + <% RuleParameterSet.validable_objects.each do |obj| %> + <% if @rule_parameter_set.selected(obj.table_name.singularize) %> + <thead> + <tr> + <th> <%= t("activerecord.models.#{obj.table_name.singularize}.one") %></th> + <th><%= RuleParameterSet.human_attribute_name("attribute") %></th> + <th><%= RuleParameterSet.human_attribute_name("unique") %></th> + <th><%= RuleParameterSet.human_attribute_name("string_type") %></th> + <th><%= RuleParameterSet.human_attribute_name("min_size") %></th> + <th><%= RuleParameterSet.human_attribute_name("max_size") %></th> + </tr> + </thead> + <tbody> + <% RuleParameterSet.validable_columns[obj.table_name.singularize].each do |col| %> + <% if @rule_parameter_set.selected_column(obj.table_name.singularize,col)%> + <tr> + <td></td> + <td><%= t("activerecord.attributes.#{obj.table_name.singularize}.#{col}") %></td> + <% suffix = "column_#{col}_object_#{obj.table_name.singularize}"%> + <td><%= unique(@rule_parameter_set.send "unique_#{suffix}".to_sym) %></td> + <td><%= pattern(@rule_parameter_set.send "pattern_#{suffix}".to_sym) %></td> + <td><%= @rule_parameter_set.send "min_size_#{suffix}".to_sym %></td> + <td><%= @rule_parameter_set.send "max_size_#{suffix}".to_sym %></td> + </tr> + <% end %> + <% end %> + </tbody> + <% end %> + <% end %> + </table> + </div> </div> </div> diff --git a/config/deploy/production.rb b/config/deploy/production.rb index 3baa258d0..c24f29894 100644 --- a/config/deploy/production.rb +++ b/config/deploy/production.rb @@ -1,3 +1,3 @@ server "chouette.marseille.cityway.fr", :app, :web, :db, :primary => true set :branch, "V2_5" -set :gui_cmd, "2.5.1"
\ No newline at end of file +set :gui_cmd, "2.5.1" diff --git a/config/deploy/unstable.rb b/config/deploy/unstable.rb index e8fe08e75..b5e60b53d 100644 --- a/config/deploy/unstable.rb +++ b/config/deploy/unstable.rb @@ -1,3 +1,3 @@ server "chouette-p.aix.cityway.fr", :app, :web, :db, :primary => true -set :branch, "V2_5" -set :gui_cmd, "2.5.1"
\ No newline at end of file +set :branch, "V2_5_1" +set :gui_cmd, "2.5.1" diff --git a/config/environments/development.rb b/config/environments/development.rb index 0d33ac03c..3d7819639 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -69,10 +69,11 @@ ChouetteIhm::Application.configure do # Configure the e-mail address which will be shown in Devise::Maile config.mailer_sender = "appli@chouette.mobi" - ActionMailer::Base.smtp_settings = { - :address => "smtp.samle.com", - :domain => "sample.com" - } + config.action_mailer.delivery_method = :sendmail + # change to true to allow email to be sent during development + config.action_mailer.perform_deliveries = true + config.action_mailer.raise_delivery_errors = true + config.action_mailer.default :charset => "utf-8" # api key to geoportail IGN (development key 3 month validity) # config.geoportail_api_key = "f1t6wihbh98njlbaf5cuzxy4" diff --git a/config/locales/access_links.yml b/config/locales/access_links.yml index 0a0aeedbb..1f72e5285 100644 --- a/config/locales/access_links.yml +++ b/config/locales/access_links.yml @@ -63,9 +63,9 @@ fr: activerecord: models: access_link: - zero: "lien" - one: "lien" - other: "liens" + zero: "lien d'accès" + one: "lien d'accès" + other: "liens d'accès" attributes: access_link: access_point: "Accès" diff --git a/config/locales/compliance_check_results.yml b/config/locales/compliance_check_results.yml index 9684c49a7..178fb4f13 100644 --- a/config/locales/compliance_check_results.yml +++ b/config/locales/compliance_check_results.yml @@ -141,7 +141,65 @@ en: detail_3_vehiclejourney_6: "La course %{objectId} a un mode de transport interdit %{transportMode}" detail_3_facility_1: "L'équipement %{name} (%{objectId}) n'est pas géolocalisé" detail_3_facility_2: "L'équipement %{name} (%{objectId}) est localisé trop loin de son parent %{areaName} (%{areaId}) : distance %{distance} > %{distanceLimit}" - activerecord: + + detail_4_network_1_min_size: "L'attribut %{column} du réseau %{objectId} (%{value}) n'est pas renseigné ou plus petit que %(minimum)" + detail_4_network_1_max_size: "L'attribut %{column} du réseau %{objectId} (%{value}) est plus grand que %(maximum)" + detail_4_network_1_pattern: "L'attribut %{column} du réseau %{objectId} (%{value}) n'est pas au bon format " + detail_4_network_1_unique: "L'attribut %{column} du réseau %{objectId} a une valeur partagée avec le réseau %{alternateId}" + detail_4_company_1_min_size: "L'attribut %{column} du transporteur %{objectId} (%{value}) n'est pas renseigné ou plus petit que %(minimum)" + detail_4_company_1_max_size: "L'attribut %{column} du transporteur %{objectId} (%{value}) est plus grand que %(maximum)" + detail_4_company_1_pattern: "L'attribut %{column} du transporteur %{objectId} (%{value}) n'est pas au bon format " + detail_4_company_1_unique: "L'attribut %{column} du transporteur %{objectId} a une valeur partagée avec le transporteur %{alternateId}" + detail_4_groupofline_1_min_size: "L'attribut %{column} du groupe de lignes %{objectId} (%{value}) n'est pas renseigné ou plus petit que %(minimum)" + detail_4_groupofline_1_max_size: "L'attribut %{column} du groupe de lignes %{objectId} (%{value}) est plus grand que %(maximum)" + detail_4_groupofline_1_pattern: "L'attribut %{column} du groupe de lignes %{objectId} (%{value}) n'est pas au bon format " + detail_4_groupofline_1_unique: "L'attribut %{column} du groupe de lignes %{objectId} a une valeur partagée avec le groupe de lignes %{alternateId}" + detail_4_stoparea_1_min_size: "L'attribut %{column} de l'arrêt %{objectId} (%{value}) n'est pas renseigné ou plus petit que %(minimum)" + detail_4_stoparea_1_max_size: "L'attribut %{column} de l'arrêt %{objectId} (%{value}) est plus grand que %(maximum)" + detail_4_stoparea_1_pattern: "L'attribut %{column} de l'arrêt %{objectId} (%{value}) n'est pas au bon format " + detail_4_stoparea_1_unique: "L'attribut %{column} de l'arrêt %{objectId} a une valeur partagée avec l'arrêt %{alternateId}" + detail_4_stoparea_2: "L'arrêt physique %{name} (%{objectId}) n'a pas de parent" + detail_4_accesspoint_1_min_size: "L'attribut %{column} du point d'accès %{objectId} (%{value}) n'est pas renseigné ou plus petit que %(minimum)" + detail_4_accesspoint_1_max_size: "L'attribut %{column} du point d'accès %{objectId} (%{value}) est plus grand que %(maximum)" + detail_4_accesspoint_1_pattern: "L'attribut %{column} du point d'accès %{objectId} (%{value}) n'est pas au bon format " + detail_4_accesspoint_1_unique: "L'attribut %{column} du point d'accès %{objectId} a une valeur partagée avec le point d'accès %{alternateId}" + detail_4_accesslink_1_min_size: "L'attribut %{column} du lien d'accès %{objectId} (%{value}) n'est pas renseigné ou plus petit que %(minimum)" + detail_4_accesslink_1_max_size: "L'attribut %{column} du lien d'accès %{objectId} (%{value}) est plus grand que %(maximum)" + detail_4_accesslink_1_pattern: "L'attribut %{column} du lien d'accès %{objectId} (%{value}) n'est pas au bon format " + detail_4_accesslink_1_unique: "L'attribut %{column} du lien d'accès %{objectId} a une valeur partagée avec le lien d'accès %{alternateId}" + detail_4_connectionlink_1_min_size: "L'attribut %{column} de la correspondance %{objectId} (%{value}) n'est pas renseigné ou plus petit que %(minimum)" + detail_4_connectionlink_1_max_size: "L'attribut %{column} de la correspondance %{objectId} (%{value}) est plus grand que %(maximum)" + detail_4_connectionlink_1_pattern: "L'attribut %{column} de la correspondance %{objectId} (%{value}) n'est pas au bon format " + detail_4_connectionlink_1_unique: "L'attribut %{column} de la correspondance %{objectId} a une valeur partagée avec la correspondance %{alternateId}" + detail_4_connectionlink_2: "Sur la correspondance %{name} (%{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 %{column} du calendrier %{objectId} (%{value}) n'est pas renseigné ou plus petit que %(minimum)" + detail_4_timetable_1_max_size: "L'attribut %{column} du calendrier %{objectId} (%{value}) est plus grand que %(maximum)" + detail_4_timetable_1_pattern: "L'attribut %{column} du calendrier %{objectId} (%{value}) n'est pas au bon format " + detail_4_timetable_1_unique: "L'attribut %{column} du calendrier %{objectId} a une valeur partagée avec le calendrier %{alternateId}" + detail_4_line_1_min_size: "L'attribut %{column} de la ligne %{objectId} (%{value}) n'est pas renseigné ou plus petit que %(minimum)" + detail_4_line_1_max_size: "L'attribut %{column} de la ligne %{objectId} (%{value}) est plus grand que %(maximum)" + detail_4_line_1_pattern: "L'attribut %{column} de la ligne %{objectId} (%{value}) n'est pas au bon format " + detail_4_line_1_unique: "L'attribut %{column} de la ligne %{objectId} a une valeur partagée avec la ligne %{alternateId}" + detail_4_line_2: "La ligne %{number} : %{name} ( %{objectId}) a un mode de transport interdit %{transportMode}" + detail_4_line_3_1: "La ligne %{number} : %{name} ( %{objectId}) n'a pas de groupe de lignes" + detail_4_line_3_2: "La ligne %{number} : %{name} ( %{objectId}) a plusieurs groupes de lignes" + detail_4_line_4_1: "La ligne %{number} : %{name} ( %{objectId}) n'a pas de séquence d'arrêts" + detail_4_line_4_2: "La ligne %{number} : %{name} ( %{objectId}) a trop de séquences d'arrêts non associées (%{routeCount})" + detail_4_route_1_min_size: "L'attribut %{column} de la séquence d'arrêts %{objectId} (%{value}) n'est pas renseigné ou plus petit que %(minimum)" + detail_4_route_1_max_size: "L'attribut %{column} de la séquence d'arrêts %{objectId} (%{value}) est plus grand que %(maximum)" + detail_4_route_1_pattern: "L'attribut %{column} de la séquence d'arrêts %{objectId} (%{value}) n'est pas au bon format " + detail_4_route_1_unique: "L'attribut %{column} de la séquence d'arrêts %{objectId} a une valeur partagée avec la séquence d'arrêts %{alternateId}" + detail_4_journeypattern_1_min_size: "L'attribut %{column} de la mission %{objectId} (%{value}) n'est pas renseigné ou plus petit que %(minimum)" + detail_4_journeypattern_1_max_size: "L'attribut %{column} de la mission %{objectId} (%{value}) est plus grand que %(maximum)" + detail_4_journeypattern_1_pattern: "L'attribut %{column} de la mission %{objectId} (%{value}) n'est pas au bon format " + detail_4_journeypattern_1_unique: "L'attribut %{column} de la mission %{objectId} a une valeur partagée avec la mission %{alternateId}" + detail_4_vehiclejourney_1_min_size: "L'attribut %{column} de la course %{objectId} (%{value}) n'est pas renseigné ou plus petit que %(minimum)" + detail_4_vehiclejourney_1_max_size: "L'attribut %{column} de la course %{objectId} (%{value}) est plus grand que %(maximum)" + detail_4_vehiclejourney_1_pattern: "L'attribut %{column} de la course %{objectId} (%{value}) n'est pas au bon format " + detail_4_vehiclejourney_1_unique: "L'attribut %{column} de la course %{objectId} a une valeur partagée avec la course %{alternateId}" + detail_4_vehiclejourney_2: "La course %{objectId} a un mode de transport interdit %{transportMode}" + + activerecord: models: compliance_check_result: zero: "Validation" @@ -227,7 +285,6 @@ en: 3-StopArea-3: "Vérification de l'unicité des arrêts" 3-StopArea-4: "Vérification de la géolocalisation des arrêts" 3-StopArea-5: "Vérification de la position relative des arrêts et de leur parent" - 3-StopArea-6: "Vérification de l'information de commune des arrêts" 3-AccessPoint-1: "Vérification de la géolocalisation de tous les accès" 3-AccessPoint-2: "Vérification que deux accès de nom différents ne sont pas trop proches" 3-AccessPoint-3: "Vérification de la proximité entre les accès et leur arrêt de rattachement" @@ -239,7 +296,6 @@ en: 3-AccessLink-3: "Vérification de la vitesse de parcours entre les deux extrémités d'un lien d'accès" 3-Line-1: "Vérification de la non homonymie des lignes" 3-Line-2: "Vérification de la présence de séquences d'arrêts sur la ligne" - 3-Line-3: "Vérification des modes de transport" 3-Route-1: "Vérification de la succession des arrêts de la séquence" 3-Route-2: "Vérification de la séquence inverse" 3-Route-3: "Vérification de la distance entre deux arrêts successifs de la séquence" @@ -254,10 +310,26 @@ en: 3-VehicleJourney-2: "Vérification de la vitesse de transfert entre deux arrêts" 3-VehicleJourney-3: "Vérification de la cohérence des courses successives desservant deux mêmes arrêts" 3-VehicleJourney-4: "Vérification de l'affectation des courses à un calendrier" - 3-VehicleJourney-5: "Vérification des numéros de course" - 3-VehicleJourney-6: "Vérification des modes de transport" 3-Facility-1: "Vérification de la géolocalisation de tous les accès" 3-Facility-2: "Vérification de la proximité entre les équipements et leur arrêt de rattachement" + 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-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" @@ -373,7 +445,6 @@ fr: detail_3_stoparea_3: "Les arrêts %{name} (%{objectId} et %{areaId}) sont desservis par les mêmes lignes" detail_3_stoparea_4: "L'arrêt %{name} (%{objectId}) est en dehors du périmètre de contrôle" detail_3_stoparea_5: "L'arrêt %{name} (%{objectId}) est localisé trop loin de son parent %{parentName} (%{parentId}) : distance %{distance} > %{distanceLimit}" - detail_3_stoparea_6: "L'arrêt %{name} (%{objectId}) n'a pas de code commune" detail_3_accesspoint_1: "L'accès %{name} (%{objectId}) de l'arrêt %{areaName} (%{areaId}) n'est pas géolocalisé" detail_3_accesspoint_2: "L'accès %{name} (%{objectId}) est localisé trop près de l'accès %{accessName} (%{accessId}) : distance %{distance} < %{distanceLimit}" detail_3_accesspoint_3: "L'accès %{name} (%{objectId}) est localisé trop loin de son parent %{parentName} (%{parentId}) : distance %{distance} > %{distanceLimit}" @@ -391,7 +462,6 @@ fr: detail_3_accesslink_3_4: "Sur le lien d'accès %{name} (%{objectId}), la vitesse pour un voyageur à mobilité réduite %{speed} est supérieure à %{speedLimit} km/h" detail_3_line_1: "La ligne %{number} : %{name} ( %{objectId}) a une ligne homonyme sur le même réseau %{networkName} (%{networkId})" detail_3_line_2: "La ligne %{number} : %{name} ( %{objectId}) n'a pas de séquence d'arrêts" - detail_3_line_3: "La ligne %{number} : %{name} ( %{objectId}) a un mode de transport interdit %{transportMode}" detail_3_route_1: "Sur la séquence d'arrêt %{objectId}, l'arrêt %{areaName} (%{areaId}) est desservi 2 fois consécutivement" detail_3_route_2: "Les terminus de la séquence d'arrêt %{objectId} ne sont pas cohérent avec ceux de la séquence opposée %{routeId} : l'une part de %{firstName} (%firstId}) et l'autre arrive à %{lastName} (%lastId})" detail_3_route_3: "Sur la séquence d'arrêt %{objectId}, entre les arrêts de rang %{firstStopRank} (%{firstStop} et %{nextStopRank} (%{nextStop}, distance %{distance} %{orientation} %{distanceLimit} " @@ -408,12 +478,65 @@ fr: detail_3_vehiclejourney_2_3: "La course %{objectId} a une vitesse %{speed} > %{speedLimit} km/h entre les arrêts n° %{firstStopRank} (%{firstStopName}) et n° %{lastStopRank} (%{lastStopName})" detail_3_vehiclejourney_3: "La course %{objectId} a une variation de progression entre les arrêts n° %{firstStopRank} (%{firstStopName}) et n° %{lastStopRank} (%{lastStopName}) %{variation} > %{maxVariation} avec la course %{vehicleJourneyId}" detail_3_vehiclejourney_4: "La course %{objectId} n'a pas de calendrier d'application" - detail_3_vehiclejourney_5_1: "La course %{objectId} n'a pas de numéro" - detail_3_vehiclejourney_5_2: "La course %{objectId} a un numéro hors plage (%{number})" - detail_3_vehiclejourney_5_3: "La course %{objectId} a un numéro partagé avec la course %{vehicleJourneyId}" - detail_3_vehiclejourney_6: "La course %{objectId} a un mode de transport interdit %{transportMode}" detail_3_facility_1: "L'équipement %{name} (%{objectId}) n'est pas géolocalisé" detail_3_facility_2: "L'équipement %{name} (%{objectId}) est localisé trop loin de son parent %{areaName} (%{areaId}) : distance %{distance} > %{distanceLimit}" + + detail_4_network_1_min_size: "L'attribut %{column} du réseau %{objectId} (%{value}) n'est pas renseigné ou plus petit que %(minimum)" + detail_4_network_1_max_size: "L'attribut %{column} du réseau %{objectId} (%{value}) est plus grand que %(maximum)" + detail_4_network_1_pattern: "L'attribut %{column} du réseau %{objectId} (%{value}) n'est pas au bon format " + detail_4_network_1_unique: "L'attribut %{column} du réseau %{objectId} a une valeur partagée avec le réseau %{alternateId}" + detail_4_company_1_min_size: "L'attribut %{column} du transporteur %{objectId} (%{value}) n'est pas renseigné ou plus petit que %(minimum)" + detail_4_company_1_max_size: "L'attribut %{column} du transporteur %{objectId} (%{value}) est plus grand que %(maximum)" + detail_4_company_1_pattern: "L'attribut %{column} du transporteur %{objectId} (%{value}) n'est pas au bon format " + detail_4_company_1_unique: "L'attribut %{column} du transporteur %{objectId} a une valeur partagée avec le transporteur %{alternateId}" + detail_4_groupofline_1_min_size: "L'attribut %{column} du groupe de lignes %{objectId} (%{value}) n'est pas renseigné ou plus petit que %(minimum)" + detail_4_groupofline_1_max_size: "L'attribut %{column} du groupe de lignes %{objectId} (%{value}) est plus grand que %(maximum)" + detail_4_groupofline_1_pattern: "L'attribut %{column} du groupe de lignes %{objectId} (%{value}) n'est pas au bon format " + detail_4_groupofline_1_unique: "L'attribut %{column} du groupe de lignes %{objectId} a une valeur partagée avec le groupe de lignes %{alternateId}" + detail_4_stoparea_1_min_size: "L'attribut %{column} de l'arrêt %{objectId} (%{value}) n'est pas renseigné ou plus petit que %(minimum)" + detail_4_stoparea_1_max_size: "L'attribut %{column} de l'arrêt %{objectId} (%{value}) est plus grand que %(maximum)" + detail_4_stoparea_1_pattern: "L'attribut %{column} de l'arrêt %{objectId} (%{value}) n'est pas au bon format " + detail_4_stoparea_1_unique: "L'attribut %{column} de l'arrêt %{objectId} a une valeur partagée avec l'arrêt %{alternateId}" + detail_4_stoparea_2: "L'arrêt physique %{name} (%{objectId}) n'a pas de parent" + detail_4_accesspoint_1_min_size: "L'attribut %{column} du point d'accès %{objectId} (%{value}) n'est pas renseigné ou plus petit que %(minimum)" + detail_4_accesspoint_1_max_size: "L'attribut %{column} du point d'accès %{objectId} (%{value}) est plus grand que %(maximum)" + detail_4_accesspoint_1_pattern: "L'attribut %{column} du point d'accès %{objectId} (%{value}) n'est pas au bon format " + detail_4_accesspoint_1_unique: "L'attribut %{column} du point d'accès %{objectId} a une valeur partagée avec le point d'accès %{alternateId}" + detail_4_accesslink_1_min_size: "L'attribut %{column} du lien d'accès %{objectId} (%{value}) n'est pas renseigné ou plus petit que %(minimum)" + detail_4_accesslink_1_max_size: "L'attribut %{column} du lien d'accès %{objectId} (%{value}) est plus grand que %(maximum)" + detail_4_accesslink_1_pattern: "L'attribut %{column} du lien d'accès %{objectId} (%{value}) n'est pas au bon format " + detail_4_accesslink_1_unique: "L'attribut %{column} du lien d'accès %{objectId} a une valeur partagée avec le lien d'accès %{alternateId}" + detail_4_connectionlink_1_min_size: "L'attribut %{column} de la correspondance %{objectId} (%{value}) n'est pas renseigné ou plus petit que %(minimum)" + detail_4_connectionlink_1_max_size: "L'attribut %{column} de la correspondance %{objectId} (%{value}) est plus grand que %(maximum)" + detail_4_connectionlink_1_pattern: "L'attribut %{column} de la correspondance %{objectId} (%{value}) n'est pas au bon format " + detail_4_connectionlink_1_unique: "L'attribut %{column} de la correspondance %{objectId} a une valeur partagée avec la correspondance %{alternateId}" + detail_4_connectionlink_2: "Sur la correspondance %{name} (%{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 %{column} du calendrier %{objectId} (%{value}) n'est pas renseigné ou plus petit que %(minimum)" + detail_4_timetable_1_max_size: "L'attribut %{column} du calendrier %{objectId} (%{value}) est plus grand que %(maximum)" + detail_4_timetable_1_pattern: "L'attribut %{column} du calendrier %{objectId} (%{value}) n'est pas au bon format " + detail_4_timetable_1_unique: "L'attribut %{column} du calendrier %{objectId} a une valeur partagée avec le calendrier %{alternateId}" + detail_4_line_1_min_size: "L'attribut %{column} de la ligne %{objectId} (%{value}) n'est pas renseigné ou plus petit que %(minimum)" + detail_4_line_1_max_size: "L'attribut %{column} de la ligne %{objectId} (%{value}) est plus grand que %(maximum)" + detail_4_line_1_pattern: "L'attribut %{column} de la ligne %{objectId} (%{value}) n'est pas au bon format " + detail_4_line_1_unique: "L'attribut %{column} de la ligne %{objectId} a une valeur partagée avec la ligne %{alternateId}" + detail_4_line_2: "La ligne %{number} : %{name} ( %{objectId}) a un mode de transport interdit %{transportMode}" + detail_4_line_3_1: "La ligne %{number} : %{name} ( %{objectId}) n'a pas de groupe de lignes" + detail_4_line_3_2: "La ligne %{number} : %{name} ( %{objectId}) a plusieurs groupes de lignes" + detail_4_line_4_1: "La ligne %{number} : %{name} ( %{objectId}) n'a pas de séquence d'arrêts" + detail_4_line_4_2: "La ligne %{number} : %{name} ( %{objectId}) a trop de séquences d'arrêts non associées (%{routeCount})" + detail_4_route_1_min_size: "L'attribut %{column} de la séquence d'arrêts %{objectId} (%{value}) n'est pas renseigné ou plus petit que %(minimum)" + detail_4_route_1_max_size: "L'attribut %{column} de la séquence d'arrêts %{objectId} (%{value}) est plus grand que %(maximum)" + detail_4_route_1_pattern: "L'attribut %{column} de la séquence d'arrêts %{objectId} (%{value}) n'est pas au bon format " + detail_4_route_1_unique: "L'attribut %{column} de la séquence d'arrêts %{objectId} a une valeur partagée avec la séquence d'arrêts %{alternateId}" + detail_4_journeypattern_1_min_size: "L'attribut %{column} de la mission %{objectId} (%{value}) n'est pas renseigné ou plus petit que %(minimum)" + detail_4_journeypattern_1_max_size: "L'attribut %{column} de la mission %{objectId} (%{value}) est plus grand que %(maximum)" + detail_4_journeypattern_1_pattern: "L'attribut %{column} de la mission %{objectId} (%{value}) n'est pas au bon format " + detail_4_journeypattern_1_unique: "L'attribut %{column} de la mission %{objectId} a une valeur partagée avec la mission %{alternateId}" + detail_4_vehiclejourney_1_min_size: "L'attribut %{column} de la course %{objectId} (%{value}) n'est pas renseigné ou plus petit que %(minimum)" + detail_4_vehiclejourney_1_max_size: "L'attribut %{column} de la course %{objectId} (%{value}) est plus grand que %(maximum)" + detail_4_vehiclejourney_1_pattern: "L'attribut %{column} de la course %{objectId} (%{value}) n'est pas au bon format " + detail_4_vehiclejourney_1_unique: "L'attribut %{column} de la course %{objectId} a une valeur partagée avec la course %{alternateId}" + detail_4_vehiclejourney_2: "La course %{objectId} a un mode de transport interdit %{transportMode}" activerecord: models: compliance_check_result: @@ -500,7 +623,6 @@ fr: 3-StopArea-3: "Vérification de l'unicité des arrêts" 3-StopArea-4: "Vérification de la géolocalisation des arrêts" 3-StopArea-5: "Vérification de la position relative des arrêts et de leur parent" - 3-StopArea-6: "Vérification de l'information de commune des arrêts" 3-AccessPoint-1: "Vérification de la géolocalisation de tous les accès" 3-AccessPoint-2: "Vérification que deux accès de nom différents ne sont pas trop proches" 3-AccessPoint-3: "Vérification de la proximité entre les accès et leur arrêt de rattachement" @@ -512,7 +634,6 @@ fr: 3-AccessLink-3: "Vérification de la vitesse de parcours entre les deux extrémités d'un lien d'accès" 3-Line-1: "Vérification de la non homonymie des lignes" 3-Line-2: "Vérification de la présence de séquences d'arrêts sur la ligne" - 3-Line-3: "Vérification des modes de transport" 3-Route-1: "Vérification de la succession des arrêts de la séquence" 3-Route-2: "Vérification de la séquence inverse" 3-Route-3: "Vérification de la distance entre deux arrêts successifs de la séquence" @@ -525,10 +646,26 @@ fr: 3-VehicleJourney-2: "Vérification de la vitesse de transfert entre deux arrêts" 3-VehicleJourney-3: "Vérification de la cohérence des courses successives desservant deux mêmes arrêts" 3-VehicleJourney-4: "Vérification de l'affectation des courses à un calendrier" - 3-VehicleJourney-5: "Vérification des numéros de course" - 3-VehicleJourney-6: "Vérification des modes de transport" 3-Facility-1: "Vérification de la géolocalisation de tous les accès" 3-Facility-2: "Vérification de la proximité entre les équipements et leur arrêt de rattachement" + 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-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: "Sévérité" status: "Statut" rule_level: "Niveau" diff --git a/config/locales/devise_invitable.fr.yml b/config/locales/devise_invitable.fr.yml index 23a88aa16..692625f9c 100644 --- a/config/locales/devise_invitable.fr.yml +++ b/config/locales/devise_invitable.fr.yml @@ -2,10 +2,10 @@ fr: devise: invitations: send_instructions: "Un email d'invitation a été envoyé à %{email}." - invitation_token_invalid: "L'invitation fourni n'est pas valide!" + invitation_token_invalid: "L'invitation fournie n'est pas valide!" updated: 'Votre mot de passe a été enregistré avec succés. Vous êtes maintenant connecté.' no_invitations_remaining: "Pas d'invitations restantes." - invitation_removed: 'Votre invitation a été supprimé.' + invitation_removed: 'Votre invitation a été supprimée.' new: header: "Envoyer une invitation" submit_button: "Envoyer une invitation" @@ -14,7 +14,7 @@ fr: submit_button: "Valider mon mot de passe" mailer: invitation_instructions: - subject: "Invitation sur l'appication Chouette" + subject: "Invitation sur l'application Chouette" hello: 'Bonjour %{email}' someone_invited_you: "Ce message est une invitation pour accéder à %{url}, , vous pouvez l'accepter en cliquant sur le lien suivant :" accept: "Accepter l'invitation" diff --git a/config/locales/journey_patterns.yml b/config/locales/journey_patterns.yml index b16985c2c..2bf072df0 100644 --- a/config/locales/journey_patterns.yml +++ b/config/locales/journey_patterns.yml @@ -24,9 +24,9 @@ en: activerecord: models: journey_pattern: - zero: "Journey pattern" - one: "Journey pattern" - other: "Journey patterns" + zero: "journey pattern" + one: "journey pattern" + other: "journey patterns" attributes: journey_pattern: route: "Route" @@ -70,9 +70,9 @@ fr: activerecord: models: journey_pattern: - zero: "Mission" - one: "Mission" - other: "Missions" + zero: "mission" + one: "mission" + other: "missions" attributes: journey_pattern: route: "Séquence d'arrêts" diff --git a/config/locales/routes.yml b/config/locales/routes.yml index 1807ef30d..45b82076c 100644 --- a/config/locales/routes.yml +++ b/config/locales/routes.yml @@ -113,9 +113,9 @@ fr: activerecord: models: route: - zero: "Séquence d'arrêts" - one: "Séquence d'arrêts" - other: "Séquences d'arrêts" + zero: "séquence d'arrêts" + one: "séquence d'arrêts" + other: "séquences d'arrêts" attributes: route: wayback: diff --git a/config/locales/rule_parameter_sets.yml b/config/locales/rule_parameter_sets.yml index b1f45c4f4..6f72f2c09 100644 --- a/config/locales/rule_parameter_sets.yml +++ b/config/locales/rule_parameter_sets.yml @@ -30,11 +30,16 @@ en: facility_stop_area_distance_max: "a stop area and a facility" rule_parameter_by_mode: "Parameters by mode" modes_allowed: " (only for allowed ones)" - vehicle_journey_number_bounds: "Vehicle journey number limits (0,0 to disable check-point))" - min_value: "minimal value" - max_value: "maximal value" index: title: "Parameter sets" + labels: + columns_restrictions: "Check model objects atributes" + attribute: "attribute" + free_char: "free" + num_char: "number only" + alpha_char: "character only" + lower_char: "lowercase only" + upper_char: "uppercase only" activerecord: models: rule_parameter_set: "Parameter Set for Conformity Rules" @@ -58,10 +63,17 @@ en: speed_min: "Minimum speed" speed_max: "Maximum speed" inter_stop_duration_variation_max: "Maximum duration gap between 2 vehicle journeys and between 2 following stops" - vehicle_journey_number_min: "Minimal value for vehicle journey numbers (empty to disable check-point)" - vehicle_journey_number_min: "Maximal value for vehicle journey numbers (empty to disable check-point)" + check_lines_in_groups: "check if each line belongs scrictly to one group of line" + check_line_routes: "check if each line have 1 route or 2 routes coupled" + check_stop_parent: "check if all physical stop areas are owned by a commercial stop point" + check_connection_link_on_physical: "check if connection links connect only physical stops" check_allowed_transport_modes: "Check transport modes" allowed_transport: "Allowed" + attribute: "attribute" + unique: "uniqness" + string_type: "allowed characters" + min_size: "minimal size or value" + max_size: "maximal size or value" fr: rule_parameter_sets: @@ -95,11 +107,16 @@ fr: inter_stop_duration_max: "Durée maximum de stationnement à un arrêt" rule_parameter_by_mode: "Jeu de paramètres pour un mode de transport" modes_allowed: " (uniquement pour les modes autorisés)" - vehicle_journey_number_bounds: "Fouchette de valeurs pour le numéro de courses" - min_value: "valeur minimale" - max_value: "valeur maximale" index: title: "Jeux de paramètres" + labels: + columns_restrictions: "Contôles sur les attributs des objets du modèle" + attribute: "attribut" + free_char: "libre" + num_char: "numérique" + alpha_char: "alphabétique" + lower_char: "minuscule" + upper_char: "majuscule" activerecord: models: rule_parameter_set: "Jeu de paramètres pour le contrôle de qualité des données" @@ -123,8 +140,15 @@ fr: speed_min: "Vitesse minimum" speed_max: "Vitesse maximum" inter_stop_duration_variation_max: "Ecart maximum de durée entre 2 arrêts successifs pour les différentes courses" - vehicle_journey_number_min: "Borne inférieur pour les numéros de course (vide pour désactiver le contrôle)" - vehicle_journey_number_min: "Borne supérieure pour les numéros de course (vide pour désactiver le contrôle)" - check_allowed_transport_modes: "Contrôler les modes de transport" + check_lines_in_groups: "Contrôler que chaque ligne appartient à un et un seul groupe de lignes" + check_line_routes: "Contrôler que chaque ligne a une séquence d'arrêt ou un couple A/R de séquences d'arrêts" + check_stop_parent: "Contrôler que chaque arrêt physique est rattaché à un arrêt commercial" + check_connection_link_on_physical: "Contrôler que les correspondances ne relient que des arrêts physiques" + check_allowed_transport_modes: "Contrôler les modes de transport des lignes et des courses" allowed_transport: "Autorisé" + attribute: "attribut" + unique: "unicité" + string_type: "caractères autorisés" + min_size: "taille ou valeur minimale" + max_size: "taille ou valeur maximale" diff --git a/config/locales/time_tables.yml b/config/locales/time_tables.yml index 8f83cb530..dd9845138 100644 --- a/config/locales/time_tables.yml +++ b/config/locales/time_tables.yml @@ -53,9 +53,9 @@ en: activerecord: models: time_table: - zero: "Timetable" - one: "Timetable" - other: "Timetables" + zero: "timetable" + one: "timetable" + other: "timetables" attributes: time_table: comment: "Name" @@ -146,9 +146,9 @@ fr: activerecord: models: time_table: - zero: "Calendrier" - one: "Calendrier" - other: "Calendriers" + zero: "calendrier" + one: "calendrier" + other: "calendriers" attributes: time_table: comment: "Nom" diff --git a/config/locales/vehicle_journeys.yml b/config/locales/vehicle_journeys.yml index 05eb1c4cb..ba60fee9b 100644 --- a/config/locales/vehicle_journeys.yml +++ b/config/locales/vehicle_journeys.yml @@ -158,9 +158,9 @@ fr: activerecord: models: vehicle_journey: - zero: "Course" - one: "Course" - other: "Courses" + zero: "course" + one: "course" + other: "courses" attributes: vehicle_journey: line: "Ligne" diff --git a/config/routes.rb b/config/routes.rb index 3e4e31250..a2da2b071 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -7,11 +7,11 @@ ChouetteIhm::Application.routes.draw do devise_scope :user do authenticated :user do - root :to => 'referentials#index' + root :to => 'referentials#index', as: :authenticated_root end unauthenticated do - root :to => 'devise/sessions#new' + root :to => 'devise/sessions#new', as: :unauthenticated_root end end @@ -166,6 +166,7 @@ ChouetteIhm::Application.routes.draw do resources :clean_ups end + root :to => "referentials#index" match '/help/(*slug)' => 'help#show' |
