diff options
| author | Michel Etienne | 2014-10-16 13:38:36 +0200 |
|---|---|---|
| committer | Michel Etienne | 2014-10-16 13:38:36 +0200 |
| commit | 7b5c9432b49ba8bb8a114de134e4adb5cc489c3c (patch) | |
| tree | 52f0e62c95933a02b93945aca985af5be274ceef /app | |
| parent | b6742365266344d0122b477cf2af1bdd02bf6f61 (diff) | |
| parent | a1a72d06a84d714890e7892d3bb231220d4a8173 (diff) | |
| download | chouette-core-7b5c9432b49ba8bb8a114de134e4adb5cc489c3c.tar.bz2 | |
Merge branch 'sismo_val' into sismo
Diffstat (limited to 'app')
| -rw-r--r-- | app/models/rule_parameter_set.rb | 34 | ||||
| -rw-r--r-- | app/models/vehicle_journey_export.rb | 6 | ||||
| -rw-r--r-- | app/models/vehicle_journey_import.rb | 6 | ||||
| -rw-r--r-- | app/views/rule_parameter_sets/_form.html.erb | 29 | ||||
| -rw-r--r-- | app/views/rule_parameter_sets/_mode_fields.html.erb | 13 | ||||
| -rw-r--r-- | app/views/rule_parameter_sets/show.html.erb | 68 |
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> |
