aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichel Etienne2015-01-09 16:11:33 +0100
committerMichel Etienne2015-01-09 16:11:33 +0100
commit83f9d8cf48fb832b43f0ea08d6ee53eef1be734a (patch)
tree68e44e3f377a67dbd607ff7de9d7be2558b205ae
parent913bc3b257a8e3066388a8f2260756e97756a225 (diff)
parentef4cc372d9dffe91354fb5ea5b44ef46a86677c4 (diff)
downloadchouette-core-83f9d8cf48fb832b43f0ea08d6ee53eef1be734a.tar.bz2
add tests for hub export
-rw-r--r--app/controllers/registrations_controller.rb2
-rw-r--r--app/helpers/routes_helper.rb1
-rw-r--r--app/helpers/rule_parameter_sets_helper.rb18
-rw-r--r--app/helpers/users_helper.rb26
-rw-r--r--app/models/rule_parameter_set.rb120
-rw-r--r--app/views/devise/mailer/invitation_instructions.fr.html.erb2
-rw-r--r--app/views/devise/passwords/edit.html.erb4
-rw-r--r--app/views/devise/passwords/new.html.erb4
-rw-r--r--app/views/layouts/_user_links.erb2
-rw-r--r--app/views/layouts/mailer.html.erb2
-rw-r--r--app/views/rule_parameter_sets/_column_fields.html.erb11
-rw-r--r--app/views/rule_parameter_sets/_form.html.erb33
-rw-r--r--app/views/rule_parameter_sets/show.html.erb71
-rw-r--r--config/deploy/production.rb2
-rw-r--r--config/deploy/unstable.rb4
-rw-r--r--config/environments/development.rb9
-rw-r--r--config/locales/access_links.yml6
-rw-r--r--config/locales/compliance_check_results.yml167
-rw-r--r--config/locales/devise_invitable.fr.yml6
-rw-r--r--config/locales/journey_patterns.yml12
-rw-r--r--config/locales/routes.yml6
-rw-r--r--config/locales/rule_parameter_sets.yml46
-rw-r--r--config/locales/time_tables.yml12
-rw-r--r--config/locales/vehicle_journeys.yml6
-rw-r--r--config/routes.rb5
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'