aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/controllers/referentials_controller.rb10
-rw-r--r--app/controllers/stop_area_referentials_controller.rb11
-rw-r--r--app/models/organisation.rb7
-rw-r--r--app/models/stop_area_referential.rb10
-rw-r--r--app/models/stop_area_referential_membership.rb4
-rw-r--r--app/views/referentials/index.html.erb7
-rw-r--r--app/views/stop_area_referentials/show.html.erb10
-rw-r--r--config/initializers/apartment.rb2
-rw-r--r--config/routes.rb2
-rw-r--r--db/migrate/20160504130055_create_stop_area_referentials.rb15
-rw-r--r--db/schema.rb94
-rw-r--r--db/seeds.rb5
12 files changed, 112 insertions, 65 deletions
diff --git a/app/controllers/referentials_controller.rb b/app/controllers/referentials_controller.rb
index b03aec7e1..34ba37380 100644
--- a/app/controllers/referentials_controller.rb
+++ b/app/controllers/referentials_controller.rb
@@ -11,7 +11,7 @@ class ReferentialsController < BreadcrumbController
@referential.data_format = current_organisation.data_format
end
end
-
+
def show
resource.switch
show! do |format|
@@ -34,18 +34,18 @@ class ReferentialsController < BreadcrumbController
def resource
@referential ||= current_organisation.referentials.find_by_id(params[:id])
end
-
+
def collection
@referentials ||= current_organisation.referentials.order(:name)
end
-
+
def build_resource
super.tap do |referential|
referential.user_id = current_user.id
referential.user_name = current_user.name
end
end
-
+
def create_resource(referential)
referential.organisation = current_organisation
super
@@ -54,6 +54,6 @@ class ReferentialsController < BreadcrumbController
private
def referential_params
params.require(:referential).permit( :id, :name, :slug, :prefix, :time_zone, :upper_corner, :lower_corner, :organisation_id, :projection_type, :data_format )
- end
+ end
end
diff --git a/app/controllers/stop_area_referentials_controller.rb b/app/controllers/stop_area_referentials_controller.rb
new file mode 100644
index 000000000..3abd53892
--- /dev/null
+++ b/app/controllers/stop_area_referentials_controller.rb
@@ -0,0 +1,11 @@
+class StopAreaReferentialsController < BreadcrumbController
+
+ defaults :resource_class => StopAreaReferential
+
+ protected
+
+ def begin_of_chain
+ current_organisation
+ end
+
+end
diff --git a/app/models/organisation.rb b/app/models/organisation.rb
index f0904d51d..8b35982e2 100644
--- a/app/models/organisation.rb
+++ b/app/models/organisation.rb
@@ -1,15 +1,18 @@
# -*- coding: utf-8 -*-
class Organisation < ActiveRecord::Base
include DataFormatEnumerations
-
+
has_many :users, :dependent => :destroy
has_many :referentials, :dependent => :destroy
has_many :rule_parameter_sets, :dependent => :destroy
+ has_many :stop_area_referential_memberships
+ has_many :stop_area_referentials, through: :stop_area_referential_memberships
+
validates :name, :presence => true, :uniqueness => true
after_create :add_rule_parameter_set
-
+
def add_rule_parameter_set
RuleParameterSet.default_for_all_modes( self).save
end
diff --git a/app/models/stop_area_referential.rb b/app/models/stop_area_referential.rb
new file mode 100644
index 000000000..e8cfbaa1f
--- /dev/null
+++ b/app/models/stop_area_referential.rb
@@ -0,0 +1,10 @@
+class StopAreaReferential < ActiveRecord::Base
+ has_many :stop_area_referential_memberships
+ has_many :organisations, through: :stop_area_referential_memberships
+
+ def add_member(organisation, options = {})
+ attributes = options.merge organisation: organisation
+ stop_area_referential_memberships.build attributes
+ end
+
+end
diff --git a/app/models/stop_area_referential_membership.rb b/app/models/stop_area_referential_membership.rb
new file mode 100644
index 000000000..435970961
--- /dev/null
+++ b/app/models/stop_area_referential_membership.rb
@@ -0,0 +1,4 @@
+class StopAreaReferentialMembership < ActiveRecord::Base
+ belongs_to :organisation
+ belongs_to :stop_area_referential
+end
diff --git a/app/views/referentials/index.html.erb b/app/views/referentials/index.html.erb
index cf4eaa245..7f1604b7c 100644
--- a/app/views/referentials/index.html.erb
+++ b/app/views/referentials/index.html.erb
@@ -1,4 +1,4 @@
-<%= title_tag Referential.model_name.human(:count => 2) %>
+<%= title_tag Referential.model_name.human(:count => 2) %>
<div class="referentials paginated_content">
<%= paginated_content @referentials %>
@@ -8,4 +8,9 @@
<ul class="actions">
<li><%= link_to t('referentials.actions.new'), new_referential_path, :class => "add" %></li>
</ul>
+<ul>
+ <!-- FIXME #820 -->
+ <!-- Don't blame me. See #820 -->
+ <li><%= link_to 'Arrêts Reflex', stop_area_referential_path(1) %></li>
+</ul>
<% end %>
diff --git a/app/views/stop_area_referentials/show.html.erb b/app/views/stop_area_referentials/show.html.erb
new file mode 100644
index 000000000..92b37d451
--- /dev/null
+++ b/app/views/stop_area_referentials/show.html.erb
@@ -0,0 +1,10 @@
+<!-- FIXME #820 -->
+<%= title_tag "Référentiel d'arrêts #{@stop_area_referential.name}" %>
+
+<div class="summary">
+</div>
+
+<% content_for :sidebar do %>
+<ul class="actions">
+</ul>
+<% end %>
diff --git a/config/initializers/apartment.rb b/config/initializers/apartment.rb
index 31649f3e2..db0ccc256 100644
--- a/config/initializers/apartment.rb
+++ b/config/initializers/apartment.rb
@@ -17,7 +17,7 @@ Apartment.configure do |config|
#
# config.excluded_models = %w{Tenant}
#
- config.excluded_models = ["Referential", "Organisation", "User", "Delayed::Backend::ActiveRecord::Job", "Api::V1::ApiKey", "RuleParameterSet"]
+ config.excluded_models = ["Referential", "Organisation", "User", "Delayed::Backend::ActiveRecord::Job", "Api::V1::ApiKey", "RuleParameterSet", "StopAreaReferential"]
# use postgres schemas?
config.use_schemas = true
diff --git a/config/routes.rb b/config/routes.rb
index 5f899292a..d9dbeb84a 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -42,6 +42,8 @@ ChouetteIhm::Application.routes.draw do
resources :rule_parameter_sets
end
+ resources :stop_area_referentials
+
resources :referentials do
resources :api_keys
resources :autocomplete_stop_areas
diff --git a/db/migrate/20160504130055_create_stop_area_referentials.rb b/db/migrate/20160504130055_create_stop_area_referentials.rb
new file mode 100644
index 000000000..7c7fc0285
--- /dev/null
+++ b/db/migrate/20160504130055_create_stop_area_referentials.rb
@@ -0,0 +1,15 @@
+class CreateStopAreaReferentials < ActiveRecord::Migration
+ def change
+ create_table :stop_area_referentials do |t|
+ t.string :name
+
+ t.timestamps
+ end
+
+ create_table :stop_area_referential_memberships do |t|
+ t.belongs_to :organisation
+ t.belongs_to :stop_area_referential
+ t.boolean :owner
+ end
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 66f80a16c..22064ff31 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -11,7 +11,7 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema.define(version: 20151215175635) do
+ActiveRecord::Schema.define(version: 20160504130055) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -209,6 +209,18 @@ ActiveRecord::Schema.define(version: 20151215175635) do
t.integer "line_id", limit: 8
end
+ create_table "jobs", force: true do |t|
+ t.string "action"
+ t.datetime "created"
+ t.string "filename"
+ t.text "parameters"
+ t.string "referential"
+ t.datetime "started"
+ t.string "status"
+ t.string "type"
+ t.datetime "updated"
+ end
+
create_table "journey_frequencies", force: true do |t|
t.integer "vehicle_journey_id", limit: 8
t.time "scheduled_headway_interval", null: false
@@ -237,7 +249,7 @@ ActiveRecord::Schema.define(version: 20151215175635) do
create_table "journey_patterns", force: true do |t|
t.integer "route_id", limit: 8
- t.string "objectid", null: false
+ t.string "objectid", null: false
t.integer "object_version"
t.datetime "creation_time"
t.string "creator_id"
@@ -247,10 +259,12 @@ ActiveRecord::Schema.define(version: 20151215175635) do
t.string "published_name"
t.integer "departure_stop_point_id", limit: 8
t.integer "arrival_stop_point_id", limit: 8
- t.integer "section_status", default: 0, null: false
+ t.integer "route_section_ids", default: [], array: true
+ t.integer "section_status", default: 0, null: false
end
add_index "journey_patterns", ["objectid"], :name => "journey_patterns_objectid_key", :unique => true
+ add_index "journey_patterns", ["route_section_ids"], :name => "index_journey_patterns_on_route_section_ids"
create_table "journey_patterns_stop_points", id: false, force: true do |t|
t.integer "journey_pattern_id", limit: 8
@@ -284,6 +298,12 @@ ActiveRecord::Schema.define(version: 20151215175635) do
add_index "lines", ["objectid"], :name => "lines_objectid_key", :unique => true
add_index "lines", ["registration_number"], :name => "lines_registration_number_key"
+ create_table "links", id: false, force: true do |t|
+ t.integer "job_id", limit: 8, null: false
+ t.string "rel"
+ t.string "type"
+ end
+
create_table "networks", force: true do |t|
t.string "objectid", null: false
t.integer "object_version"
@@ -341,8 +361,8 @@ ActiveRecord::Schema.define(version: 20151215175635) do
end
create_table "route_sections", force: true do |t|
- t.integer "departure_id", limit: 8
- t.integer "arrival_id", limit: 8
+ t.integer "departure_id"
+ t.integer "arrival_id"
t.string "objectid", null: false
t.integer "object_version"
t.datetime "creation_time"
@@ -383,6 +403,18 @@ ActiveRecord::Schema.define(version: 20151215175635) do
t.integer "organisation_id", limit: 8
end
+ create_table "stop_area_referential_memberships", force: true do |t|
+ t.integer "organisation_id"
+ t.integer "stop_area_referential_id"
+ t.boolean "owner"
+ end
+
+ create_table "stop_area_referentials", force: true do |t|
+ t.string "name"
+ t.datetime "created_at"
+ t.datetime "updated_at"
+ end
+
create_table "stop_areas", force: true do |t|
t.integer "parent_id", limit: 8
t.string "objectid", null: false
@@ -579,62 +611,12 @@ ActiveRecord::Schema.define(version: 20151215175635) do
add_index "vehicle_journeys", ["route_id"], :name => "index_vehicle_journeys_on_route_id"
Foreigner.load
- add_foreign_key "access_links", "access_points", name: "aclk_acpt_fkey", dependent: :delete
- add_foreign_key "access_links", "stop_areas", name: "aclk_area_fkey", dependent: :delete
-
- add_foreign_key "access_points", "stop_areas", name: "access_area_fkey", dependent: :delete
-
- add_foreign_key "connection_links", "stop_areas", name: "colk_endarea_fkey", column: "arrival_id", dependent: :delete
- add_foreign_key "connection_links", "stop_areas", name: "colk_startarea_fkey", column: "departure_id", dependent: :delete
-
- add_foreign_key "group_of_lines_lines", "group_of_lines", name: "groupofline_group_fkey", dependent: :delete
- add_foreign_key "group_of_lines_lines", "lines", name: "groupofline_line_fkey", dependent: :delete
-
add_foreign_key "journey_frequencies", "timebands", name: "journey_frequencies_timeband_id_fk", dependent: :nullify
add_foreign_key "journey_frequencies", "vehicle_journeys", name: "journey_frequencies_vehicle_journey_id_fk", dependent: :nullify
add_foreign_key "journey_pattern_sections", "journey_patterns", name: "journey_pattern_sections_journey_pattern_id_fk", dependent: :delete
add_foreign_key "journey_pattern_sections", "route_sections", name: "journey_pattern_sections_route_section_id_fk", dependent: :delete
- add_foreign_key "journey_patterns", "routes", name: "jp_route_fkey", dependent: :delete
- add_foreign_key "journey_patterns", "stop_points", name: "arrival_point_fkey", column: "arrival_stop_point_id", dependent: :nullify
- add_foreign_key "journey_patterns", "stop_points", name: "departure_point_fkey", column: "departure_stop_point_id", dependent: :nullify
-
- add_foreign_key "journey_patterns_stop_points", "journey_patterns", name: "jpsp_jp_fkey", dependent: :delete
- add_foreign_key "journey_patterns_stop_points", "stop_points", name: "jpsp_stoppoint_fkey", dependent: :delete
-
- add_foreign_key "lines", "companies", name: "line_company_fkey", dependent: :nullify
- add_foreign_key "lines", "networks", name: "line_ptnetwork_fkey", dependent: :nullify
-
- add_foreign_key "route_sections", "stop_areas", name: "route_sections_arrival_id_fk", column: "arrival_id", dependent: :delete
- add_foreign_key "route_sections", "stop_areas", name: "route_sections_departure_id_fk", column: "departure_id", dependent: :delete
-
- add_foreign_key "routes", "lines", name: "route_line_fkey", dependent: :delete
- add_foreign_key "routes", "routes", name: "route_opposite_route_fkey", column: "opposite_route_id", dependent: :nullify
-
- add_foreign_key "routing_constraints_lines", "lines", name: "routingconstraint_line_fkey", dependent: :delete
- add_foreign_key "routing_constraints_lines", "stop_areas", name: "routingconstraint_stoparea_fkey", dependent: :delete
-
- add_foreign_key "stop_areas", "stop_areas", name: "area_parent_fkey", column: "parent_id", dependent: :nullify
-
- add_foreign_key "stop_areas_stop_areas", "stop_areas", name: "stoparea_child_fkey", column: "child_id", dependent: :delete
- add_foreign_key "stop_areas_stop_areas", "stop_areas", name: "stoparea_parent_fkey", column: "parent_id", dependent: :delete
-
- add_foreign_key "stop_points", "routes", name: "stoppoint_route_fkey", dependent: :delete
- add_foreign_key "stop_points", "stop_areas", name: "stoppoint_area_fkey"
-
- add_foreign_key "time_table_dates", "time_tables", name: "tm_date_fkey", dependent: :delete
-
- add_foreign_key "time_table_periods", "time_tables", name: "tm_period_fkey", dependent: :delete
-
- add_foreign_key "time_tables_vehicle_journeys", "time_tables", name: "vjtm_tm_fkey", dependent: :delete
- add_foreign_key "time_tables_vehicle_journeys", "vehicle_journeys", name: "vjtm_vj_fkey", dependent: :delete
-
- add_foreign_key "vehicle_journey_at_stops", "stop_points", name: "vjas_sp_fkey", dependent: :delete
- add_foreign_key "vehicle_journey_at_stops", "vehicle_journeys", name: "vjas_vj_fkey", dependent: :delete
-
- add_foreign_key "vehicle_journeys", "companies", name: "vj_company_fkey", dependent: :nullify
- add_foreign_key "vehicle_journeys", "journey_patterns", name: "vj_jp_fkey", dependent: :delete
- add_foreign_key "vehicle_journeys", "routes", name: "vj_route_fkey", dependent: :delete
+ add_foreign_key "links", "jobs", name: "fk_n5ypxycc1stckgkm6ust2l6on"
end
diff --git a/db/seeds.rb b/db/seeds.rb
index d34dfa024..ef65b4b6e 100644
--- a/db/seeds.rb
+++ b/db/seeds.rb
@@ -5,3 +5,8 @@
#
# cities = City.create([{ :name => 'Chicago' }, { :name => 'Copenhagen' }])
# Mayor.create(:name => 'Emanuel', :city => cities.first)
+
+stif = Organisation.find_or_create_by(name: "STIF")
+StopAreaReferential.find_or_create_by(name: "Reflex") do |referential|
+ referential.add_member stif, owner: true
+end