aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorMichel Etienne2014-10-16 13:38:36 +0200
committerMichel Etienne2014-10-16 13:38:36 +0200
commit7b5c9432b49ba8bb8a114de134e4adb5cc489c3c (patch)
tree52f0e62c95933a02b93945aca985af5be274ceef /app
parentb6742365266344d0122b477cf2af1bdd02bf6f61 (diff)
parenta1a72d06a84d714890e7892d3bb231220d4a8173 (diff)
downloadchouette-core-7b5c9432b49ba8bb8a114de134e4adb5cc489c3c.tar.bz2
Merge branch 'sismo_val' into sismo
Diffstat (limited to 'app')
-rw-r--r--app/models/rule_parameter_set.rb34
-rw-r--r--app/models/vehicle_journey_export.rb6
-rw-r--r--app/models/vehicle_journey_import.rb6
-rw-r--r--app/views/rule_parameter_sets/_form.html.erb29
-rw-r--r--app/views/rule_parameter_sets/_mode_fields.html.erb13
-rw-r--r--app/views/rule_parameter_sets/show.html.erb68
6 files changed, 120 insertions, 36 deletions
diff --git a/app/models/rule_parameter_set.rb b/app/models/rule_parameter_set.rb
index 5177d6ecc..0c7a98300 100644
--- a/app/models/rule_parameter_set.rb
+++ b/app/models/rule_parameter_set.rb
@@ -9,13 +9,14 @@ class RuleParameterSet < ActiveRecord::Base
attr_accessible :name, :referential_id
def self.mode_attribute_prefixes
- %w( inter_stop_area_distance_min inter_stop_area_distance_max speed_max speed_min inter_stop_duration_variation_max)
+ %w( allowed_transport inter_stop_area_distance_min inter_stop_area_distance_max speed_max speed_min inter_stop_duration_variation_max)
end
def self.general_attributes
%w( inter_stop_area_distance_min parent_stop_area_distance_max stop_areas_area inter_access_point_distance_min
inter_connection_link_distance_max walk_default_speed_max
walk_occasional_traveller_speed_max walk_frequent_traveller_speed_max walk_mobility_restricted_traveller_speed_max
- inter_access_link_distance_max inter_stop_duration_max facility_stop_area_distance_max)
+ inter_access_link_distance_max inter_stop_duration_max facility_stop_area_distance_max
+ vehicle_journey_number_max vehicle_journey_number_min check_allowed_transport_modes)
end
def self.all_modes
Chouette::TransportMode.all.map { |m| m.to_s}
@@ -75,7 +76,8 @@ class RuleParameterSet < ActiveRecord::Base
:walk_mobility_restricted_traveller_speed_max => 1,
:inter_access_link_distance_max => 300,
:inter_stop_duration_max => 40,
- :facility_stop_area_distance_max => 300
+ :facility_stop_area_distance_max => 300,
+ :check_allowed_transport_modes => false
}
if mode && self.mode_default_params[ mode.to_sym]
base.merge!( self.mode_default_params[ mode.to_sym])
@@ -85,108 +87,126 @@ class RuleParameterSet < ActiveRecord::Base
def self.mode_default_params
{
:coach => {
+ :allowed_transport_mode_coach => false,
:inter_stop_area_distance_min_mode_coach => 500,
:inter_stop_area_distance_max_mode_coach => 10000,
:speed_max_mode_coach => 90,
:speed_min_mode_coach => 40,
:inter_stop_duration_variation_max_mode_coach => 20},
:air => {
+ :allowed_transport_mode_air => false,
:inter_stop_area_distance_min_mode_air => 200,
:inter_stop_area_distance_max_mode_air => 10000,
:speed_max_mode_air => 800,
:speed_min_mode_air => 700,
:inter_stop_duration_variation_max_mode_air => 60},
:waterborne => {
+ :allowed_transport_mode_waterborne => false,
:inter_stop_area_distance_min_mode_waterborne => 200,
:inter_stop_area_distance_max_mode_waterborne => 10000,
:speed_max_mode_waterborne => 40,
:speed_min_mode_waterborne => 5,
:inter_stop_duration_variation_max_mode_waterborne => 60},
:bus => {
+ :allowed_transport_mode_bus => false,
:inter_stop_area_distance_min_mode_bus => 100,
:inter_stop_area_distance_max_mode_bus => 10000,
:speed_max_mode_bus => 60,
:speed_min_mode_bus => 10,
:inter_stop_duration_variation_max_mode_bus => 15},
:ferry => {
+ :allowed_transport_mode_ferry => false,
:inter_stop_area_distance_min_mode_ferry => 200,
:inter_stop_area_distance_max_mode_ferry => 10000,
:speed_max_mode_ferry => 40,
:speed_min_mode_ferry => 5,
:inter_stop_duration_variation_max_mode_ferry => 60},
:walk => {
+ :allowed_transport_mode_walk => false,
:inter_stop_area_distance_min_mode_walk => 1,
:inter_stop_area_distance_max_mode_walk => 10000,
:speed_max_mode_walk => 6,
:speed_min_mode_walk => 1,
:inter_stop_duration_variation_max_mode_walk => 10},
:metro => {
+ :allowed_transport_mode_metro => false,
:inter_stop_area_distance_min_mode_metro => 300,
:inter_stop_area_distance_max_mode_metro => 2000,
:speed_max_mode_metro => 60,
:speed_min_mode_metro => 30,
:inter_stop_duration_variation_max_mode_metro => 30},
:shuttle => {
+ :allowed_transport_mode_shuttle => false,
:inter_stop_area_distance_min_mode_shuttle => 500,
:inter_stop_area_distance_max_mode_shuttle => 10000,
:speed_max_mode_shuttle => 80,
:speed_min_mode_shuttle => 20,
:inter_stop_duration_variation_max_mode_shuttle => 10},
:rapid_transit => {
+ :allowed_transport_mode_rapid_transit => false,
:inter_stop_area_distance_min_mode_rapid_transit => 2000,
:inter_stop_area_distance_max_mode_rapid_transit => 500000,
:speed_max_mode_rapid_transit => 300,
:speed_min_mode_rapid_transit => 20,
:inter_stop_duration_variation_max_mode_rapid_transit => 60},
:taxi => {
+ :allowed_transport_mode_taxi => false,
:inter_stop_area_distance_min_mode_taxi => 500,
:inter_stop_area_distance_max_mode_taxi => 300000,
:speed_max_mode_taxi => 130,
:speed_min_mode_taxi => 20,
:inter_stop_duration_variation_max_mode_taxi => 60},
:local_train => {
+ :allowed_transport_mode_local_train => false,
:inter_stop_area_distance_min_mode_local_train => 2000,
:inter_stop_area_distance_max_mode_local_train => 500000,
:speed_max_mode_local_train => 300,
:speed_min_mode_local_train => 20,
:inter_stop_duration_variation_max_mode_local_train => 60},
:train => {
+ :allowed_transport_mode_train => false,
:inter_stop_area_distance_min_mode_train => 2000,
:inter_stop_area_distance_max_mode_train => 500000,
:speed_max_mode_train => 300,
:speed_min_mode_train => 20,
:inter_stop_duration_variation_max_mode_train => 60},
:long_distance_train => {
+ :allowed_transport_mode_long_distance_train => false,
:inter_stop_area_distance_min_mode_long_distance_train => 2000,
:inter_stop_area_distance_max_mode_long_distance_train => 500000,
:speed_max_mode_long_distance_train => 300,
:speed_min_mode_long_distance_train => 20,
:inter_stop_duration_variation_max_mode_long_distance_train => 60},
:tramway => {
+ :allowed_transport_mode_tramway => false,
:inter_stop_area_distance_min_mode_tramway => 300,
:inter_stop_area_distance_max_mode_tramway => 2000,
:speed_max_mode_tramway => 50,
:speed_min_mode_tramway => 20,
:inter_stop_duration_variation_max_mode_tramway => 30},
:trolleybus => {
+ :allowed_transport_mode_trolleybus => false,
:inter_stop_area_distance_min_mode_trolleybus => 300,
:inter_stop_area_distance_max_mode_trolleybus => 2000,
:speed_max_mode_trolleybus => 50,
:speed_min_mode_trolleybus => 20,
:inter_stop_duration_variation_max_mode_trolleybus => 30},
:private_vehicle => {
+ :allowed_transport_mode_private_vehicle => false,
:inter_stop_area_distance_min_mode_private_vehicle => 500,
:inter_stop_area_distance_max_mode_private_vehicle => 300000,
:speed_max_mode_private_vehicle => 130,
:speed_min_mode_private_vehicle => 20,
:inter_stop_duration_variation_max_mode_private_vehicle => 60},
:bicycle => {
+ :allowed_transport_mode_bicycle => false,
:inter_stop_area_distance_min_mode_bicycle => 300,
:inter_stop_area_distance_max_mode_bicycle => 30000,
:speed_max_mode_bicycle => 40,
:speed_min_mode_bicycle => 10,
:inter_stop_duration_variation_max_mode_bicycle => 10},
:other => {
+ :allowed_transport_mode_other => false,
:inter_stop_area_distance_min_mode_other => 300,
:inter_stop_area_distance_max_mode_other => 30000,
:speed_max_mode_other => 40,
@@ -208,6 +228,12 @@ class RuleParameterSet < ActiveRecord::Base
:name => "valeurs par defaut"
}.merge( mode_attributes))
end
+
+ def allowed(mode)
+ return true unless self.check_allowed_transport_modes
+ puts "#{mode} = "+self.send("allowed_transport_mode_#{mode}").to_s
+ return self.send("allowed_transport_mode_#{mode}") == "1"
+ end
all_modes.each do |mode|
mode_attribute_prefixes.each do |prefix|
@@ -217,7 +243,7 @@ class RuleParameterSet < ActiveRecord::Base
general_attributes.each do |attribute|
parameter attribute.to_sym
- unless attribute == "stop_areas_area"
+ unless attribute == "stop_areas_area" || attribute == "check_allowed_transport_modes"
validates attribute.to_sym, :numericality => true, :allow_nil => true, :allow_blank => true
end
end
diff --git a/app/models/vehicle_journey_export.rb b/app/models/vehicle_journey_export.rb
index 3de88b608..4c2c62fa8 100644
--- a/app/models/vehicle_journey_export.rb
+++ b/app/models/vehicle_journey_export.rb
@@ -54,8 +54,8 @@ class VehicleJourneyExport
(vehicle_journeys.collect{ |vj| vj.number ? vj.number.to_s : "" } )
end
- def vehicle_identifier_array
- (vehicle_journeys.collect{ |vj| vj.vehicle_type_identifier ? vj.vehicle_type_identifier : "" } )
+ def published_journey_name_array
+ (vehicle_journeys.collect{ |vj| vj.published_journey_name ? vj.published_journey_name : "" } )
end
def flexible_service_array
@@ -82,7 +82,7 @@ class VehicleJourneyExport
CSV.generate(options) do |csv|
csv << column_names
csv << ["", label("number")] + number_array
- csv << ["", label("vehicle_identifier")] + vehicle_identifier_array
+ csv << ["", label("published_journey_name")] + published_journey_name_array
csv << ["", label("mobility")] + mobility_restricted_suitability_array
csv << ["", label("flexible_service")] + flexible_service_array
csv << ["", label("time_table_ids")] + time_tables_array
diff --git a/app/models/vehicle_journey_import.rb b/app/models/vehicle_journey_import.rb
index 20faef6cc..f710eeab7 100644
--- a/app/models/vehicle_journey_import.rb
+++ b/app/models/vehicle_journey_import.rb
@@ -96,7 +96,7 @@ class VehicleJourneyImport
# fixed rows (first = 1)
number_row = 2
- vehicle_type_identifier_row = 3
+ published_journey_name_row = 3
mobility_row = 4
flexible_service_row = 5
time_tables_row = 6
@@ -141,8 +141,8 @@ class VehicleJourneyImport
# number
vehicle_journey.number = as_integer(spreadsheet.row(number_row)[i-1])
- # vehicle_type_identifier
- vehicle_journey.vehicle_type_identifier = spreadsheet.row(vehicle_type_identifier_row)[i-1]
+ # published_name
+ vehicle_journey.published_journey_name = spreadsheet.row(published_journey_name_row)[i-1]
# flexible_service
vehicle_journey.flexible_service = as_boolean(spreadsheet.row(flexible_service_row)[i-1])
diff --git a/app/views/rule_parameter_sets/_form.html.erb b/app/views/rule_parameter_sets/_form.html.erb
index 1f12d6b14..90d6850fb 100644
--- a/app/views/rule_parameter_sets/_form.html.erb
+++ b/app/views/rule_parameter_sets/_form.html.erb
@@ -14,10 +14,29 @@
<%= form.input :inter_access_link_distance_max, :as => :number %>
<%= form.input :inter_stop_duration_max, :as => :number %>
<%= form.input :facility_stop_area_distance_max, :as => :number %>
-
+
+ <%= form.input :vehicle_journey_number_min, :as => :number %>
+ <%= form.input :vehicle_journey_number_max, :as => :number %>
+ <%= form.input :check_allowed_transport_modes, :as => :boolean %>
+
+ <table class="table table-striped table-condensed">
+ <tr>
+ <th><%= t("transport_modes.name") %></th>
+ <% RuleParameterSet.mode_attribute_prefixes.each do |prefix| %>
+ <% if prefix == "allowed_transport" %>
+ <% hidden = (@rule_parameter_set.check_allowed_transport_modes == "1") ? "" : 'display:none;'%>
+ <th class="allowed" style="<%= hidden %>" ><%= RuleParameterSet.human_attribute_name(prefix) %></th>
+ <% else %>
+ <th><%= RuleParameterSet.human_attribute_name(prefix) %></th>
+ <% end %>
+ <% end %>
+ </tr>
<% Chouette::Line.transport_modes.map(&:to_s).each do |mode| %>
+ <tr>
<%= render :partial => "mode_fields", :locals => { :f => form, :mode => mode} %>
+ </tr>
<% end %>
+ </table>
<% end %>
<%= form.actions do %>
@@ -25,3 +44,11 @@
<%= form.action :cancel, :as => :link %>
<% end %>
<% end %>
+
+<script>
+ $(function() {
+ $( "#rule_parameter_set_check_allowed_transport_modes").change( function(){
+ $(".allowed").toggle();
+ });
+ });
+</script>
diff --git a/app/views/rule_parameter_sets/_mode_fields.html.erb b/app/views/rule_parameter_sets/_mode_fields.html.erb
index 0a17b4d82..a305c4d0a 100644
--- a/app/views/rule_parameter_sets/_mode_fields.html.erb
+++ b/app/views/rule_parameter_sets/_mode_fields.html.erb
@@ -1,5 +1,12 @@
-<%= f.inputs t("transport_modes.label.#{mode}"), :id => "specific_parameters_#{mode}" do %>
+ <td><%= t("transport_modes.label.#{mode}") %></td>
<% RuleParameterSet.mode_attribute_prefixes.each do |prefix| %>
- <%= f.input "#{prefix}_mode_#{mode}".to_sym, :as => :number, :label => RuleParameterSet.human_attribute_name(prefix), :wrapper_html => { :class => "special"} %>
+ <% if prefix == "allowed_transport" %>
+ <% hidden = (@rule_parameter_set.check_allowed_transport_modes == "1") ? "" : 'display: none;'%>
+ <td class="allowed" style="<%= hidden %>" >
+ <%= f.check_box "#{prefix}_mode_#{mode}".to_sym, :class => "special" %>
+ <% else%>
+ <td>
+ <%= f.number_field "#{prefix}_mode_#{mode}".to_sym, :class => "special" %>
+ <% end %>
+ </td>
<% end %>
-<% end %>
diff --git a/app/views/rule_parameter_sets/show.html.erb b/app/views/rule_parameter_sets/show.html.erb
index f4ca5e912..66e002b94 100644
--- a/app/views/rule_parameter_sets/show.html.erb
+++ b/app/views/rule_parameter_sets/show.html.erb
@@ -4,10 +4,6 @@
<div class="summary">
<p>
- <label><%= RuleParameterSet.human_attribute_name("name") %>: </label>
- <%= @rule_parameter_set.name %>
- </p>
- <p>
<label><%= RuleParameterSet.human_attribute_name("stop_areas_area") %>: </label>
<%= @rule_parameter_set.stop_areas_area %>
</p>
@@ -72,25 +68,53 @@
<label><%= t(".inter_stop_duration_max") %>: </label>
<%= @rule_parameter_set.inter_stop_duration_max %>
</p>
- <div class="rule_parameter_by_mode">
- <label><%= t(".rule_parameter_by_mode") %>: </label>
- <select id="mode" >
- <%= options_for_select( Chouette::Line.transport_modes.map(&:to_s).map { |s| [ I18n.t("transport_modes.label.#{s}"), s]}, 1) %>
- </select>
- <% Chouette::Line.transport_modes.map(&:to_s).each_with_index do |mode, index| %>
- <% selected_class = (index==0) ? 'selected' : '' %>
- <% style = (index==0) ? "style='display: block;'" : '' %>
- <div class='<%= "#{mode} mode_specific #{selected_class}" %>' <%= style %> >
- <% RuleParameterSet.mode_attribute_prefixes.each do |prefix| %>
- <% unless @rule_parameter_set.send("#{prefix}_mode_#{mode}" ).blank? %>
- <p>
- <label><%= RuleParameterSet.human_attribute_name( prefix) %>: </label>
- <%= @rule_parameter_set.send "#{prefix}_mode_#{mode}" %>
- </p>
- <% end %>
- <% end %>
+ <% if @rule_parameter_set.vehicle_journey_number_min.present? && @rule_parameter_set.vehicle_journey_number_max.present? %>
+ <div class="attributes_group" >
+ <span class="title"><%= t(".vehicle_journey_number_bounds") %></span>
+ <div class="columns">
+ <div class="two_columns">
+ <label><%= t(".min_value") %> : </label>
+ <span class="value"><%= @rule_parameter_set.vehicle_journey_number_min %></span>
+ </div>
+ <div class="two_columns">
+ <label><%= t(".max_value") %> : </label>
+ <span class="value"><%= @rule_parameter_set.vehicle_journey_number_max %></span>
+ </div>
</div>
- <% end %>
+ </div>
+ <% end %>
+ <p>
+ <label><%= RuleParameterSet.human_attribute_name("check_allowed_transport_modes") %>: </label>
+ <%= @rule_parameter_set.check_allowed_transport_modes ? t("true") : t("false") %>
+ </p>
+
+ <div class="rule_parameter_by_mode">
+ <label><%= t(".rule_parameter_by_mode") %>
+ <%= t(".modes_allowed") if @rule_parameter_set.check_allowed_transport_modes %>
+ </label>
+ <table class="table table-striped table-condensed">
+ <tr>
+ <th><%= t("transport_modes.name") %></th>
+ <% RuleParameterSet.mode_attribute_prefixes.each do |prefix| %>
+ <% unless prefix == "allowed_transport" %>
+ <th><%= RuleParameterSet.human_attribute_name(prefix) %></th>
+ <% end %>
+ <% end %>
+ </tr>
+ <% Chouette::Line.transport_modes.map(&:to_s).each do |mode| %>
+ <% if @rule_parameter_set.allowed(mode) %>
+ <tr>
+ <td><%= t("transport_modes.label.#{mode}") %></td>
+ <% RuleParameterSet.mode_attribute_prefixes.each do |prefix| %>
+
+ <% unless prefix == "allowed_transport" %>
+ <td><%= @rule_parameter_set.send "#{prefix}_mode_#{mode}" %></td>
+ <% end %>
+ <% end %>
+ </tr>
+ <% end %>
+ <% end %>
+ </table>
</div>
</div>
</div>