diff options
| author | Alban Peignier | 2016-05-04 15:49:57 +0200 | 
|---|---|---|
| committer | Alban Peignier | 2016-05-04 15:49:57 +0200 | 
| commit | 84dad3d53cc9ee0f237c5065314de00b1b0c7e5e (patch) | |
| tree | 381c85b49101d99185d53f35e7ce5ff832fdfee6 | |
| parent | 63c4406d7a9b1efcccd74dd67c338be48c71b1b8 (diff) | |
| download | chouette-core-84dad3d53cc9ee0f237c5065314de00b1b0c7e5e.tar.bz2 | |
Create StopAreaReferential with a basic controller and a seed for STIF context. Refs #820
| -rw-r--r-- | app/controllers/referentials_controller.rb | 10 | ||||
| -rw-r--r-- | app/controllers/stop_area_referentials_controller.rb | 11 | ||||
| -rw-r--r-- | app/models/organisation.rb | 7 | ||||
| -rw-r--r-- | app/models/stop_area_referential.rb | 10 | ||||
| -rw-r--r-- | app/models/stop_area_referential_membership.rb | 4 | ||||
| -rw-r--r-- | app/views/referentials/index.html.erb | 7 | ||||
| -rw-r--r-- | app/views/stop_area_referentials/show.html.erb | 10 | ||||
| -rw-r--r-- | config/initializers/apartment.rb | 2 | ||||
| -rw-r--r-- | config/routes.rb | 2 | ||||
| -rw-r--r-- | db/migrate/20160504130055_create_stop_area_referentials.rb | 15 | ||||
| -rw-r--r-- | db/schema.rb | 94 | ||||
| -rw-r--r-- | db/seeds.rb | 5 | 
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 | 
