aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobert2017-05-02 12:15:09 +0200
committerRobert2017-05-02 16:40:10 +0200
commit9b95304792865eb05305d8fea01c634a5c5d1829 (patch)
tree63b44ad698c360626980ee6101ace13e49b83308
parenta647f932dc8206583f727a4af64a200b6ec6857b (diff)
downloadchouette-core-9b95304792865eb05305d8fea01c634a5c5d1829.tar.bz2
Refs #3053
passes current_organization down from the controller into Reference.new_from adds joint models *ReferenceMemeberships to excluded Apartment models
-rw-r--r--app/controllers/referentials_controller.rb5
-rw-r--r--app/models/referential.rb4
-rw-r--r--app/models/rule_parameter_set.rb218
-rw-r--r--config/initializers/apartment.rb2
-rw-r--r--[-rwxr-xr-x]spec/lib/af83/stored_procedures/clone_schema_spec.rb5
-rw-r--r--spec/models/referential_spec.rb2
-rw-r--r--spec/spec_helper.rb7
7 files changed, 126 insertions, 117 deletions
diff --git a/app/controllers/referentials_controller.rb b/app/controllers/referentials_controller.rb
index f46cd188d..437444f29 100644
--- a/app/controllers/referentials_controller.rb
+++ b/app/controllers/referentials_controller.rb
@@ -8,7 +8,10 @@ class ReferentialsController < BreadcrumbController
respond_to :js, :only => :show
def new
- @referential = Referential.new_from(Referential.find(params[:from])) if params[:from]
+ if params[:from]
+ source_referential = Referential.find(params[:from])
+ @referential = Referential.new_from(source_referential, organisation: current_organisation)
+ end
new! do
@referential.data_format = current_organisation.data_format
diff --git a/app/models/referential.rb b/app/models/referential.rb
index 50db32637..83d507320 100644
--- a/app/models/referential.rb
+++ b/app/models/referential.rb
@@ -126,14 +126,14 @@ class Referential < ActiveRecord::Base
self
end
- def self.new_from from
+ def self.new_from(from, organisation:)
Referential.new({
name: I18n.t("activerecord.copy", :name => from.name),
slug: "#{from.slug}_clone",
prefix: from.prefix,
time_zone: from.time_zone,
bounds: from.bounds,
- organisation: from.organisation,
+ organisation: organisation,
line_referential: from.line_referential,
stop_area_referential: from.stop_area_referential,
workbench: from.workbench,
diff --git a/app/models/rule_parameter_set.rb b/app/models/rule_parameter_set.rb
index ba13b6d27..db78a2f8a 100644
--- a/app/models/rule_parameter_set.rb
+++ b/app/models/rule_parameter_set.rb
@@ -165,22 +165,22 @@ class RuleParameterSet < ActiveRecord::Base
end
def self.default_params(mode=nil)
- base = { :inter_stop_area_distance_min => 20,
- :parent_stop_area_distance_max => 300,
- :inter_access_point_distance_min => 20,
- :inter_connection_link_distance_max => 400,
- :walk_default_speed_max => 4,
- :walk_occasional_traveller_speed_max => 2,
- :walk_frequent_traveller_speed_max => 5,
+ base = { :inter_stop_area_distance_min => 20,
+ :parent_stop_area_distance_max => 300,
+ :inter_access_point_distance_min => 20,
+ :inter_connection_link_distance_max => 400,
+ :walk_default_speed_max => 4,
+ :walk_occasional_traveller_speed_max => 2,
+ :walk_frequent_traveller_speed_max => 5,
:walk_mobility_restricted_traveller_speed_max => 1,
- :inter_access_link_distance_max => 300,
- :inter_stop_duration_max => 40,
- :facility_stop_area_distance_max => 300,
- :check_allowed_transport_modes => false,
- :check_lines_in_groups => false,
- :check_line_routes => false,
- :check_stop_parent => false,
- :check_connection_link_on_physical => false
+ :inter_access_link_distance_max => 300,
+ :inter_stop_duration_max => 40,
+ :facility_stop_area_distance_max => 300,
+ :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])
@@ -190,145 +190,145 @@ 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,
+ :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,
+ :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,
+ :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,
+ :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,
+ :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,
+ :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,
+ :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,
+ :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,
+ :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,
+ :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,
+ :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,
+ :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,
+ :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,
+ :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,
+ :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,
+ :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,
+ :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,
- :speed_min_mode_other => 10,
+ :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,
+ :speed_min_mode_other => 10,
:inter_stop_duration_variation_max_mode_other => 10},
}
# :waterborne, :bus, :ferry, :walk, :metro, :shuttle, :rapidtransit, :taxi, :localtrain, :train, :longdistancetrain, :tramway, :trolleybus, :privatevehicle, :bicycle, :other
end
- def self.default( organisation)
- self.default_for_all_modes( organisation).tap do |rps|
+ def self.default(organisation)
+ self.default_for_all_modes(organisation).tap do |rps|
rps.name = ""
end
end
- def self.default_for_all_modes( organisation)
+ def self.default_for_all_modes(organisation)
mode_attributes = mode_default_params.values.inject(self.default_params){|memo, obj| memo.merge! obj}
self.new(
{ :organisation_id => organisation.id,
:name => "valeurs par defaut"
- }.merge( mode_attributes))
+ }.merge(mode_attributes))
end
def allowed(mode)
diff --git a/config/initializers/apartment.rb b/config/initializers/apartment.rb
index 2c2632f40..29ce6564f 100644
--- a/config/initializers/apartment.rb
+++ b/config/initializers/apartment.rb
@@ -25,10 +25,12 @@ Apartment.configure do |config|
"Api::V1::ApiKey",
"RuleParameterSet",
"StopAreaReferential",
+ "StopAreaReferentialMembership",
"StopAreaReferentialSync",
"StopAreaReferentialSyncMessage",
"Chouette::StopArea",
"LineReferential",
+ "LineReferentialMembership",
"LineReferentialSync",
"LineReferentialSyncMessage",
"Chouette::Line",
diff --git a/spec/lib/af83/stored_procedures/clone_schema_spec.rb b/spec/lib/af83/stored_procedures/clone_schema_spec.rb
index 4de3379ea..c387ddc7d 100755..100644
--- a/spec/lib/af83/stored_procedures/clone_schema_spec.rb
+++ b/spec/lib/af83/stored_procedures/clone_schema_spec.rb
@@ -13,7 +13,8 @@ RSpec.describe StoredProcedures do
StoredProcedures.create_stored_procedure :clone_schema
end
- context "meta specs describe source schema's introspection" do
+ # :meta specs are not run, as the describe the testing methd and not the application
+ context "meta specs describe source schema's introspection", :meta do
it "table information is correctly read" do
expect(get_table_information(source_schema, child_table))
.to eq([{"table_schema"=>"source_schema",
@@ -31,7 +32,7 @@ RSpec.describe StoredProcedures do
expect( get_table_information(target_schema, child_table) ).to be_empty
end
- it "sequences are correctly read", :meta do
+ it "sequences are correctly read" do
expect(get_sequences(source_schema, child_table))
.to eq([{"sequence_name"=>"#{child_table}_id_seq",
"last_value"=>"1",
diff --git a/spec/models/referential_spec.rb b/spec/models/referential_spec.rb
index 7cf428eb0..2390cc470 100644
--- a/spec/models/referential_spec.rb
+++ b/spec/models/referential_spec.rb
@@ -27,7 +27,7 @@ describe Referential, :type => :model do
context "Cloning referential" do
let(:clone) do
- Referential.new_from(ref)
+ Referential.new_from(ref, organisation: ref.organisation)
end
let(:saved_clone) do
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index f66d721c9..cda753efe 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -51,8 +51,11 @@ RSpec.configure do |config|
#Capybara.exact = true
Capybara.javascript_driver = :poltergeist
- config.filter_run_excluding :js => true
- config.filter_run :wip => true
+ # :meta tests can be run seperately in case of doubt about the tests themselves
+ # they serve mainly as an explanataion of complicated tests (as e.g. PG information_schema introspection)
+ config.filter_run_excluding :meta => true
+ config.filter_run_excluding :js => true
+ config.filter_run :wip => true
config.run_all_when_everything_filtered = true
config.include TokenInputHelper, :type => :feature