diff options
65 files changed, 1263 insertions, 149 deletions
diff --git a/app/assets/stylesheets/journey_patterns.css.scss b/app/assets/stylesheets/journey_patterns.css.scss new file mode 100644 index 000000000..afba352bd --- /dev/null +++ b/app/assets/stylesheets/journey_patterns.css.scss @@ -0,0 +1,91 @@ +// Place all the styles related to the routes controller here. +// They will automatically be included in application.css. +// You can use Sass (SCSS) here: http://sass-lang.com/ +@import "common"; + +#workspace.routes.show +{ + .jouerney_pattern:after { + @include after_div_for_object; + } + + .journey_patterns { + margin-top: 20px; + } + + .journey_patterns:after { + @include content_to_clear; + } + + .journey_pattern { + @include div_for_object; + + /* to create multi-column index */ + width: 350px; + padding-right: 10px; + + .name { + line-height: 16px; + float: left; + } + + } +} + +#workspace.journey_patterns.edit, #workspace.journey_patterns.new +{ + #route_color{ width: 100px; + color: white; + font-weight: bold;} +} + +#workspace.journey_patterns.show +{ + .journey_pattern_color{ color: white; + font-weight: bold; + padding: 0 5px 0 5px;} + + .summary p label { + font-weight: bold; + } + + .stop_point:after { + @include after_div_for_object; + } + + .stop_points { + margin-top: 20px; + } + + .stop_points:after { + @include content_to_clear; + } + + .journey_pattern_stop_points { + clear: both; + margin: 0px; + padding: 0px; + } + + .stop_point { + @include div_for_object; + /* to create multi-column index */ + width: 350px; + float: left; + padding-right: 10px; + + .position { + width: 25px; + height: 20px; + float: left; + background-color: #61970B; + font-weight: bold; + color: white; + margin-right: 10px; + padding-left: 4px; + } + } + +} + + diff --git a/app/controllers/journey_pattern_stop_points_controller.rb b/app/controllers/journey_pattern_stop_points_controller.rb new file mode 100644 index 000000000..c4fc9b08f --- /dev/null +++ b/app/controllers/journey_pattern_stop_points_controller.rb @@ -0,0 +1,18 @@ +class JourneyPatternStopPointsController < ChouetteController + defaults :resource_class => Chouette::JourneyPattern + + respond_to :html + + belongs_to :referential do + belongs_to :line, :parent_class => Chouette::Line do + belongs_to :route, :parent_class => Chouette::Route do + belongs_to :journey_pattern, :parent_class => Chouette::JourneyPattern + end + end + end + + def stops_selection + redirect_to referential_line_route_journey_pattern_path( @referential, @line, @route, @journey_pattern) + end +end + diff --git a/app/controllers/journey_patterns_controller.rb b/app/controllers/journey_patterns_controller.rb new file mode 100644 index 000000000..1ec15f7e8 --- /dev/null +++ b/app/controllers/journey_patterns_controller.rb @@ -0,0 +1,19 @@ +class JourneyPatternsController < ChouetteController + defaults :resource_class => Chouette::JourneyPattern + + respond_to :html + + belongs_to :referential do + belongs_to :line, :parent_class => Chouette::Line do + belongs_to :route, :parent_class => Chouette::Route + end + end + + alias_method :route, :parent + + def show + #@map = RouteMap.new referential, route + @stop_points = resource.stop_points.paginate(:page => params[:page], :per_page => 10) + show! + end +end diff --git a/app/controllers/vehicle_journeys_controller.rb b/app/controllers/vehicle_journeys_controller.rb new file mode 100644 index 000000000..3a99d531b --- /dev/null +++ b/app/controllers/vehicle_journeys_controller.rb @@ -0,0 +1,27 @@ +class VehicleJourneysController < ChouetteController + defaults :resource_class => Chouette::VehicleJourney + + belongs_to :referential do + belongs_to :line, :parent_class => Chouette::Line do + belongs_to :route, :parent_class => Chouette::Route + end + end + + protected + + def collection + @q = parent.vehicle_journeys.search(params[:q]) + @vehicle_journeys ||= @q.result(:distinct => true).paginate(:page => params[:page], :per_page => 10) + @matrix ||= matrix + end + + def matrix + {}.tap do |hash| + @vehicle_journeys.each do |vj| + vj.vehicle_journey_at_stops.each do |vjas| + hash[ "#{vj.id}-#{vjas.stop_point_id}"] = vjas + end + end + end + end +end diff --git a/app/helpers/journey_patterns_helper.rb b/app/helpers/journey_patterns_helper.rb new file mode 100644 index 000000000..d7b66db06 --- /dev/null +++ b/app/helpers/journey_patterns_helper.rb @@ -0,0 +1,12 @@ +module JourneyPatternsHelper + def journey_name( journey_pattern) + if journey_pattern.name.blank? + t('journey_patterns.journey_pattern.from_to', + :departure => journey_pattern.stop_points.first.stop_area.name, + :arrival => journey_pattern.stop_points.last.stop_area.name) + else + truncate(journey_pattern.name, :length => 30) + end + end +end + diff --git a/app/helpers/routes_helper.rb b/app/helpers/routes_helper.rb index 72915fd2f..ab91800ae 100644 --- a/app/helpers/routes_helper.rb +++ b/app/helpers/routes_helper.rb @@ -1,7 +1,7 @@ module RoutesHelper def line_formatted_name( line) - return line.publishedname if line.number.blank? - "#{line.publishedname} [#{line.number}]" + return line.published_name if line.number.blank? + "#{line.published_name} [#{line.number}]" end end diff --git a/app/views/companies/_form.erb b/app/views/companies/_form.erb index 63cb2661b..bea95b0b4 100644 --- a/app/views/companies/_form.erb +++ b/app/views/companies/_form.erb @@ -8,7 +8,7 @@ <%= form.input :phone, :as => :phone %> <%= form.input :fax, :as => :phone %> <%= form.input :email, :as => :email %> - <%= form.input :registrationnumber %> + <%= form.input :registration_number %> <% if @company.new_record? %> <%= form.input :objectid %> <% else %> diff --git a/app/views/companies/show.html.erb b/app/views/companies/show.html.erb index b5c64b691..bf4a0bdc3 100644 --- a/app/views/companies/show.html.erb +++ b/app/views/companies/show.html.erb @@ -36,7 +36,7 @@ <%= @company.email %> </p> <p> - <label><%= Chouette::Company.human_attribute_name("registrationnumber") %>: </label> + <label><%= Chouette::Company.human_attribute_name("registration_number") %>: </label> <%= @company.registration_number %> </p> <p> diff --git a/app/views/journey_patterns/_form.html.erb b/app/views/journey_patterns/_form.html.erb new file mode 100644 index 000000000..ef2bcc9d2 --- /dev/null +++ b/app/views/journey_patterns/_form.html.erb @@ -0,0 +1,24 @@ +<%= semantic_form_for [@referential, @line, @route, @journey_pattern] do |form| %> + <%= form.inputs do %> + <%= form.input :name %> + <%= form.input :published_name %> + <%= form.input :registration_number %> + <%= form.input :comment %> + <%= form.input :stop_point_ids, :as => :check_boxes, :collection => @route.stop_points.map { |s| [s.stop_area.name, s.id.to_s]} %> + <% if @route.new_record? %> + <%= form.input :objectid %> + <% else %> + <li> + <label><%= @journey_pattern.human_attribute_name("objectid") %>: </label> + <%= @journey_pattern.objectid %> + </li> + <% end %> + <% end %> + + <%= form.buttons do %> + <%= form.commit_button true %> + <li><%= t('or') %></li> + <li><%= link_to t('cancel'), :back %></li> + <% end %> +<% end %> + diff --git a/app/views/journey_patterns/_journey_pattern.html.erb b/app/views/journey_patterns/_journey_pattern.html.erb new file mode 100644 index 000000000..1d4130f07 --- /dev/null +++ b/app/views/journey_patterns/_journey_pattern.html.erb @@ -0,0 +1,14 @@ +<%= div_for(journey_pattern) do %> + <%= link_to journey_name(journey_pattern), [@referential, @line, @route, journey_pattern] %> + <div class="info"> + <% unless journey_pattern.name.blank? %> + <%= t('.from_to', :departure => journey_pattern.stop_points.first.stop_area.name, :arrival => journey_pattern.stop_points.last.stop_area.name) %> - + <% end %> + <%= t('.stop_count', :count => journey_pattern.stop_points.count, :route_count => @route.stop_points.count) %> - + <%= t('.vehicle_journeys_count', :count => journey_pattern.vehicle_journeys.count) %> + <div class="actions"> + <%= link_to t("actions.destroy"), referential_line_route_journey_pattern_path(@referential, @line, @route, journey_pattern), :method => :delete, :confirm => t('journey_patterns.actions.destroy_confirm'), :class => "remove" %> + </div> + </div> +<% end %> + diff --git a/app/views/journey_patterns/edit.html.erb b/app/views/journey_patterns/edit.html.erb new file mode 100644 index 000000000..33fac2a6c --- /dev/null +++ b/app/views/journey_patterns/edit.html.erb @@ -0,0 +1,4 @@ +<%= title_tag t('journey_patterns.edit.title', :journey_pattern => @journey_pattern.name ) %> + +<%= render "form" %> + diff --git a/app/views/journey_patterns/new.html.erb b/app/views/journey_patterns/new.html.erb new file mode 100644 index 000000000..fb6ecbd64 --- /dev/null +++ b/app/views/journey_patterns/new.html.erb @@ -0,0 +1,4 @@ +<%= title_tag t('journey_patterns.new.title') %> + +<%= render "form" %> + diff --git a/app/views/journey_patterns/show.html.erb b/app/views/journey_patterns/show.html.erb new file mode 100644 index 000000000..eed065f2f --- /dev/null +++ b/app/views/journey_patterns/show.html.erb @@ -0,0 +1,62 @@ +<%= title_tag t('journey_patterns.show.title', :journey_pattern => journey_name( @journey_pattern), :route => @route.name ) %> + +<div class="route_show"> + + <div class="summary"> + <p> + <label><%= @journey_pattern.human_attribute_name(:route) %>: </label> + <%= link_to @route.name, [@referential, @line, @route] %> + </p> + <p> + <label><%= @journey_pattern.human_attribute_name(:name) %>: </label> + <%= @journey_pattern.name %> + </p> + <p> + <label><%= @journey_pattern.human_attribute_name(:published_name) %>: </label> + <%= @journey_pattern.published_name %> + </p> + <p> + <label><%= @journey_pattern.human_attribute_name(:registration_number) %>: </label> + <%= @journey_pattern.registration_number %> + </p> + <p> + <label><%= @journey_pattern.human_attribute_name(:comment) %>: </label> + <%= @journey_pattern.comment %> + </p> + <p> + <label><%= @journey_pattern.human_attribute_name("objectid") %>: </label> + <%= @journey_pattern.objectid %> + </p> + <p> + <label><%= @journey_pattern.human_attribute_name("creation_time") %>: </label> + <%= l @journey_pattern.creation_time %> + </p> + <p> + <label><%= @journey_pattern.human_attribute_name("creator_id") %>: </label> + <%= @journey_pattern.creator_id %> + </p> + </div> + +</div> + +<h3 class="journey_pattern_stop_points"><%= t('.stop_points') %></h3> +<div class="pagination"> + <div class="page_info"> + <%= page_entries_info @stop_points %> + </div> + <%= will_paginate @stop_points, :container => false %> +</div> +<div class="stop_points paginated_content"> + <%= render :partial => "stop_points/stop_point", :collection => @stop_points %> +</div> +<div class="pagination"> + <%= will_paginate @stop_points, :container => false %> +</div> + +<% content_for :sidebar do %> +<ul class="actions"> + <li><%= link_to t('journey_patterns.actions.edit'), edit_referential_line_route_journey_pattern_path(@referential, @line, @route, @journey_pattern), :class => "edit" %></li> + <li><%= link_to t('journey_patterns.actions.destroy'), referential_line_route_path(@referential, @line, @route, @journey_pattern), :method => :delete, :confirm => t('journey_patterns.actions.destroy_confirm'), :class => "remove" %></li> +</ul> +<% end %> + diff --git a/app/views/journey_patterns/show.kml.erb b/app/views/journey_patterns/show.kml.erb new file mode 100644 index 000000000..6fd8900b6 --- /dev/null +++ b/app/views/journey_patterns/show.kml.erb @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<kml xmlns="http://www.opengis.net/kml/2.2"> + <Document> + <Placemark id="route_<%= @journey_pattenr.id %>" > + <name><%= @journey_pattenr.name %></name> + <%= @journey_pattenr.geometry.kml_representation.html_safe %> + </Placemark> + <% @journey_pattenr.stop_areas.where("latitude is not null and longitude is not null").each_with_index do |stop_area, index| %> + <Placemark id="<%= stop_area.id %>" > + <name><%= "#{stop_area.name} (#{index+1})" %></name> + <% if stop_area.id==@journey_pattenr.stop_areas.first.id %> + <departure>true</departure> + <% elsif stop_area.id==@journey_pattenr.stop_areas.last.id %> + <arrival>true</arrival> + <% end %> + <%= stop_area.geometry.kml_representation.html_safe %> + </Placemark> + <% end %> + </Document> +</kml> + diff --git a/app/views/lines/_form.erb b/app/views/lines/_form.erb index 1a7107e7e..ed0e4f9a2 100644 --- a/app/views/lines/_form.erb +++ b/app/views/lines/_form.erb @@ -5,7 +5,7 @@ <%= form.input :company, :as => :select, :collection => Chouette::Company.all, :include_blank => false%> <%= form.input :name %> <%= form.input :published_name %> - <%= form.input :registrationnumber %> + <%= form.input :registration_number %> <%= form.input :number %> <%= form.input :transport_mode, :as => :select, :collection => Chouette::Line.transport_modes, :include_blank => false, :member_label => Proc.new { |mode| t("transport_modes.label.#{mode}") } %> <%= form.input :comment %> diff --git a/app/views/lines/show.html.erb b/app/views/lines/show.html.erb index 4e7217384..8d6157cc7 100644 --- a/app/views/lines/show.html.erb +++ b/app/views/lines/show.html.erb @@ -18,10 +18,10 @@ </p> <p> <label><%= @line.human_attribute_name("published_name") %>: </label> - <%= @line.publishedname %> + <%= @line.published_name %> </p> <p> - <label><%= @line.human_attribute_name("registrationnumber") %>: </label> + <label><%= @line.human_attribute_name("registration_number") %>: </label> <%= @line.registration_number %> </p> <p> diff --git a/app/views/networks/_form.erb b/app/views/networks/_form.erb index 29e62b9ec..32c131ca3 100644 --- a/app/views/networks/_form.erb +++ b/app/views/networks/_form.erb @@ -1,7 +1,7 @@ <%= semantic_form_for [@referential, @network] do |form| %> <%= form.inputs do %> <%= form.input :name %> - <%= form.input :registrationnumber %> + <%= form.input :registration_number %> <%= form.input :comment %> <%= form.input :versiondate, :as => :date , :label => @network.human_attribute_name("version_date")%> <%= form.input :description %> diff --git a/app/views/networks/show.html.erb b/app/views/networks/show.html.erb index b03347ccf..b11cde17d 100644 --- a/app/views/networks/show.html.erb +++ b/app/views/networks/show.html.erb @@ -8,8 +8,8 @@ <%= @network.name %> </p> <p> - <label><%= Chouette::Network.human_attribute_name("registrationnumber") %>: </label> - <%= @network.registrationnumber %> + <label><%= Chouette::Network.human_attribute_name("registration_number") %>: </label> + <%= @network.registration_number %> </p> <p> <label><%= Chouette::Network.human_attribute_name("comment") %>: </label> diff --git a/app/views/routes/show.html.erb b/app/views/routes/show.html.erb index f248ba595..2ecbd0ada 100644 --- a/app/views/routes/show.html.erb +++ b/app/views/routes/show.html.erb @@ -78,6 +78,11 @@ <%= will_paginate @stop_points, :container => false %> </div> +<h3 class="route_journey_patterns"><%= t('.journey_patterns') %></h3> +<div class="journey_patterns"> + <%= render :partial => "journey_patterns/journey_pattern", :collection => @route.journey_patterns %> +</div> + <% content_for :sidebar do %> <ul class="actions"> <li><%= link_to t('routes.actions.edit'), edit_referential_line_route_path(@referential, @line, @route), :class => "edit" %></li> @@ -85,6 +90,9 @@ <li> <%= link_to t('stop_points.actions.sort'), referential_line_route_stop_points_path(@referential, @line, @route), :class => "edit" %> </li> + <li> + <%= link_to t('journey_patterns.actions.new'), new_referential_line_route_journey_pattern_path(@referential, @line, @route), :class => "add" %> + </li> </ul> <% end %> diff --git a/app/views/stop_areas/_form.html.erb b/app/views/stop_areas/_form.html.erb index 208345523..81878101a 100644 --- a/app/views/stop_areas/_form.html.erb +++ b/app/views/stop_areas/_form.html.erb @@ -6,7 +6,7 @@ <%= form.input :street_name %> <%= form.input :country_code %> <%= form.input :fare_code %> - <%= form.input :registrationnumber %> + <%= form.input :registration_number %> <% if @stop_area.new_record? %> <%= form.input :stop_area_type, :as => :select, :collection => Chouette::StopArea.stop_area_types, :include_blank => false, :member_label => Proc.new { |stop_area_type| t("area_types.label.#{stop_area_type}") } %> <%= form.input :objectid %> diff --git a/app/views/stop_areas/index.html.erb b/app/views/stop_areas/index.html.erb index cf7dafac0..d40f0d646 100644 --- a/app/views/stop_areas/index.html.erb +++ b/app/views/stop_areas/index.html.erb @@ -2,7 +2,7 @@ <%= search_form_for @q, :url => referential_stop_areas_path(@referential), :html => {:method => :get} do |f| %> <%= f.label :name_or_country_code_cont, "#{t('.name_or_country_code')} :" %> - <%= f.text_field :name_or_countrycode_cont %> + <%= f.text_field :name_or_country_code_cont %> <%= f.submit t('actions.search') %> <%= t("or") %> <%= link_to t("cancel"), referential_stop_areas_path(@referential) %> @@ -32,9 +32,9 @@ <ul class="selection"> <% Chouette::StopArea.stop_area_types.each do |area_type| %> -<li><%= link_with_search (image_tag("map/" + area_type + ".png")+t("area_types.label.#{area_type.to_s}")), "areatype_eq" => area_type.name %></li> +<li><%= link_with_search (image_tag("map/" + area_type + ".png")+t("area_types.label.#{area_type.to_s}")), "area_type_eq" => area_type.name %></li> <% end %> -<li><%= link_with_search (image_tag("map/all.png")+t(".selection_all")), {"areatype_eq" => nil}, :class => "all" %></li> +<li><%= link_with_search (image_tag("map/all.png")+t(".selection_all")), {"area_type_eq" => nil}, :class => "all" %></li> </ul> <% end %> diff --git a/app/views/stop_areas/show.html.erb b/app/views/stop_areas/show.html.erb index afaa5830a..992a4050b 100644 --- a/app/views/stop_areas/show.html.erb +++ b/app/views/stop_areas/show.html.erb @@ -28,7 +28,7 @@ <%= @stop_area.fare_code %> </p> <p> - <label><%= @stop_area.human_attribute_name("registrationnumber") %>: </label> + <label><%= @stop_area.human_attribute_name("registration_number") %>: </label> <%= @stop_area.registration_number %> </p> <p> @@ -36,13 +36,13 @@ <%= t("area_types.label.#{@stop_area.stop_area_type}") %> </p> <p> <label><%= t('stop_areas.show.geographic_data') %> </label></p> - <% if @stop_area.projectiontype == nil && @stop_area.longlattype == nil %> + <% if @stop_area.projection_type == nil && @stop_area.long_lat_type == nil %> <span class='geo_data'><%= t('stop_areas.show.no_geographic_data') %></span> <% else %> - <% if @stop_area.projectiontype != nil %> + <% if @stop_area.projection_type != nil %> <p> - <span class='geo_data'><%= @stop_area.human_attribute_name("projectiontype") %>: </span> - <%= @stop_area.projectiontype %> + <span class='geo_data'><%= @stop_area.human_attribute_name("projection_type") %>: </span> + <%= @stop_area.projection_type %> </p> <p> <span class='geo_data'><%= @stop_area.human_attribute_name("x") %>: </span> @@ -53,10 +53,10 @@ <%= @stop_area.y %> </p> <% end %> - <% if @stop_area.longlattype != nil %> + <% if @stop_area.long_lat_type != nil %> <p> - <span class='geo_data'><%= @stop_area.human_attribute_name("longlattype") %>: </span> - <%= @stop_area.longlattype %> + <span class='geo_data'><%= @stop_area.human_attribute_name("long_lat_type") %>: </span> + <%= @stop_area.long_lat_type %> </p> <p> <span class='geo_data'><%= @stop_area.human_attribute_name("longitude") %>: </span> diff --git a/app/views/time_tables/show.html.erb b/app/views/time_tables/show.html.erb index 0ddd49338..f3e0bbce3 100644 --- a/app/views/time_tables/show.html.erb +++ b/app/views/time_tables/show.html.erb @@ -13,7 +13,7 @@ </p> <p> <label><%= @time_table.human_attribute_name("day_types") %>: </label> - <% if @time_table.intdaytypes == 0 %> + <% if @time_table.int_day_types == 0 %> <label><%= @time_table.human_attribute_name("none") %></label> <% else %> <% if @time_table.monday %> diff --git a/app/views/vehicle_journeys/_form.html.erb b/app/views/vehicle_journeys/_form.html.erb new file mode 100644 index 000000000..9a7d84ed8 --- /dev/null +++ b/app/views/vehicle_journeys/_form.html.erb @@ -0,0 +1,29 @@ +<%= semantic_form_for [@referential, @line, @route, @vehicle_journey] do |form| %> + <%= form.inputs do %> + <%= form.input :published_journey_name %> + <%= form.input :published_journey_identifier %> + <%= form.input :comment %> + <%= form.input :transport_mode, :as => :select, :collection => Chouette::Line.transport_modes, :include_blank => false, :member_label => Proc.new { |mode| t("transport_modes.label.#{mode}") } %> + <%= form.input :status_value %> + <%= form.input :facility %> + <%= form.input :vehicle_type_identifier%> + <% if @vehicle_journey.new_record? %> + <%= form.input :objectid %> + <% else %> + <li> + <label><%= @vehicle_journey.human_attribute_name("objectid") %>: </label> + <%= @vehicle_journey.objectid %> + </li> + <% end %> + + <%= render :partial => "vehicle_journeys/vehicle_journey_at_stop_fields" %> + + <% end %> + + <%= form.buttons do %> + <%= form.commit_button true %> + <li><%= t('or') %></li> + <li><%= link_to t('cancel'), :back %></li> + <% end %> +<% end %> + diff --git a/app/views/vehicle_journeys/_vehicle_journey_at_stop_fields.html.erb b/app/views/vehicle_journeys/_vehicle_journey_at_stop_fields.html.erb new file mode 100644 index 000000000..9ef3b509b --- /dev/null +++ b/app/views/vehicle_journeys/_vehicle_journey_at_stop_fields.html.erb @@ -0,0 +1,11 @@ + <% @vehicle_journey.vehicle_journey_at_stops.each_with_index do |vjas, index| %> + <li class="time input optional"> + <input name=<%= "vehicle_journey[vehicle_journey_at_stops_attributes][#{index}][departure_time(3i)]" %> type="hidden" value="1"> + <input name=<%= "vehicle_journey[vehicle_journey_at_stops_attributes][#{index}][departure_time(2i)]" %> type="hidden" value="1"> + <input name=<%= "vehicle_journey[vehicle_journey_at_stops_attributes][#{index}][departure_time(1i)]" %> type="hidden" value="2000"> + <label for=<%= "date_vehicle_journey_vehicle_journey_at_stops_attributes_#{index}_departure_time_5i" %>><%= vjas.stop_point.stop_area.name %></label> + <%= select_hour(vjas.departure_time.hour, :field_name => "vehicle_journey[vehicle_journey_at_stops_attributes][#{index}][departure_time(4i)]") %> + <%= select_minute(vjas.departure_time.min, :field_name => "vehicle_journey[vehicle_journey_at_stops_attributes][#{index}][departure_time(5i)]") %> + </li> + <% end %> + diff --git a/app/views/vehicle_journeys/edit.html.erb b/app/views/vehicle_journeys/edit.html.erb new file mode 100644 index 000000000..c1079a16d --- /dev/null +++ b/app/views/vehicle_journeys/edit.html.erb @@ -0,0 +1,21 @@ +<%= title_tag t('vehicle_journeys.edit.title' ) %> + +<div class="vehicle_journey"> + <div class="summary"> + <p> + <label><%= @route.human_attribute_name(:line) %>: </label> + <%= link_to line_formatted_name( @line), [@referential, @line] %> + </p> + <p> + <label><%= Chouette::Route.model_name.human %>: </label> + <%= link_to @route.name, [@referential, @line, @route] %> + </p> + <p> + <label><%= Chouette::JourneyPattern.model_name.human %>: </label> + <%= link_to journey_name(@vehicle_journey.journey_pattern), [@referential, @line, @route, @vehicle_journey.journey_pattern] %> + </p> + <div> +<div> + +<%= render "form" %> + diff --git a/app/views/vehicle_journeys/index.html.erb b/app/views/vehicle_journeys/index.html.erb new file mode 100644 index 000000000..cbb43408c --- /dev/null +++ b/app/views/vehicle_journeys/index.html.erb @@ -0,0 +1,44 @@ +<%= title_tag t('vehicle_journeys.index.title', :route => @route.name ) %> + +<div class="vehicle_journey_index"> + <div class="summary"> + <p> + <label><%= @route.human_attribute_name(:line) %>: </label> + <%= link_to line_formatted_name( @line), [@referential, @line] %> + </p> + <p> + <label><%= Chouette::Route.model_name.human %>: </label> + <%= link_to @route.name, [@referential, @line, @route] %> + </p> + <div> +<div> +<h3 class="vehicle_journeys"><%= t('.vehicle_journeys') %></h3> +<div class="pagination"> + <div class="page_info"> + <%= page_entries_info @vehicle_journeys %> + </div> + <%= will_paginate @vehicle_journeys, :container => false %> +</div> +<div class="vehicle_journeys paginated_content"> + <table border="1"> + <tr> + <th> "vide"</th> + <% @vehicle_journeys.each do |vj| %> + <th> <%= link_to "c", [@referential, @line, @route, vj]%></th> + <% end %> + </tr> + <% @route.stop_points.each_with_index do |sp, index| %> + <tr> + <td><%= sp.stop_area.name %></td> + <% @vehicle_journeys.each do |vj| %> + <td><%= @matrix["#{vj.id}-#{sp.id}"] ? l( @matrix["#{vj.id}-#{sp.id}"].departure_time, :format => :hour) : "" %></td> + <% end %> + </tr> + <% end %> + </table> +</div> +<% content_for :sidebar do %> +<ul class="actions"> +</ul> +<% end %> + diff --git a/app/views/vehicle_journeys/new.html.erb b/app/views/vehicle_journeys/new.html.erb new file mode 100644 index 000000000..fd7bb34ac --- /dev/null +++ b/app/views/vehicle_journeys/new.html.erb @@ -0,0 +1,17 @@ +<%= title_tag t('vehicle_journeys.new.title') %> + +<div class="vehicle_journey"> + <div class="summary"> + <p> + <label><%= @route.human_attribute_name(:line) %>: </label> + <%= link_to line_formatted_name( @line), [@referential, @line] %> + </p> + <p> + <label><%= Chouette::Route.model_name.human %>: </label> + <%= link_to @route.name, [@referential, @line, @route] %> + </p> + <div> +<div> + +<%= render "form" %> + diff --git a/app/views/vehicle_journeys/show.html.erb b/app/views/vehicle_journeys/show.html.erb new file mode 100644 index 000000000..a89d2261b --- /dev/null +++ b/app/views/vehicle_journeys/show.html.erb @@ -0,0 +1,60 @@ +<%= title_tag t('vehicle_journeys.edit.title' ) %> + +<div class="vehicle_journey"> + <div class="summary"> + <p> + <label><%= @route.human_attribute_name(:line) %>: </label> + <%= link_to line_formatted_name( @line), [@referential, @line] %> + </p> + <p> + <label><%= Chouette::Route.model_name.human %>: </label> + <%= link_to @route.name, [@referential, @line, @route] %> + </p> + <p> + <label><%= Chouette::JourneyPattern.model_name.human %>: </label> + <%= link_to journey_name(@vehicle_journey.journey_pattern), [@referential, @line, @route, @vehicle_journey.journey_pattern] %> + </p> + <p> + <label><%= @vehicle_journey.human_attribute_name("published_journey_name") %>: </label> + <%= @vehicle_journey.published_journey_name %> + </p> + <p> + <label><%= @vehicle_journey.human_attribute_name("published_journey_identifier") %>: </label> + <%= @vehicle_journey.published_journey_identifier %> + </p> + <p> + <label><%= @vehicle_journey.human_attribute_name("comment") %>: </label> + <%= @vehicle_journey.comment %> + </p> + <p> + <label><%= @vehicle_journey.human_attribute_name("status_value") %>: </label> + <%= @vehicle_journey.status_value %> + </p> + <p> + <label><%= @vehicle_journey.human_attribute_name("facility") %>: </label> + <%= @vehicle_journey.facility %> + </p> + <p> + <label><%= @vehicle_journey.human_attribute_name("vehicle_type_identifier") %>: </label> + <%= @vehicle_journey.vehicle_type_identifier %> + </p> + <p> + <label><%= @vehicle_journey.human_attribute_name("objectid") %>: </label> + <%= @vehicle_journey.objectid %> + </p> + <p> + <label><%= @vehicle_journey.human_attribute_name("creation_time") %>: </label> + <%= l @vehicle_journey.creation_time %> + </p> + <p> + <label><%= @vehicle_journey.human_attribute_name("creator_id") %>: </label> + <%= @vehicle_journey.creator_id %> + </p> + </div> +</div> +<% content_for :sidebar do %> +<ul class="actions"> + <li><%= link_to t('vehicle_journeys.actions.edit'), edit_referential_line_route_vehicle_journey_path(@referential, @line, @route, @vehicle_journey), :class => "edit" %></li> + <li><%= link_to t('vehicle_journeys.actions.destroy'), referential_line_route_vehicle_journey_path(@referential, @line, @route, @vehicle_journey), :method => :delete, :confirm => t('vehicle_journeys.actions.destroy_confirm'), :class => "remove" %></li> +</ul> +<% end %> diff --git a/config/initializers/active_record.rb b/config/initializers/active_record.rb new file mode 100644 index 000000000..cb4bf65b4 --- /dev/null +++ b/config/initializers/active_record.rb @@ -0,0 +1,2 @@ +ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::NATIVE_DATABASE_TYPES[:primary_key] = "bigserial primary key" + diff --git a/config/initializers/formtastic.rb b/config/initializers/formtastic.rb index 140d5aee2..7aee33df5 100644 --- a/config/initializers/formtastic.rb +++ b/config/initializers/formtastic.rb @@ -1 +1,21 @@ - Formtastic::FormBuilder.i18n_lookups_by_default = true
\ No newline at end of file + Formtastic::FormBuilder.i18n_lookups_by_default = true + + +module Formtastic + module Inputs + class CheckBoxesInput + def selected_values + if object.respond_to?(method) + selected_items = [object.send(method)].compact.flatten + + # FIX for ids only + return selected_items.map(&:to_s).compact if selected_items.all?{ |i| i.is_a? Integer} + + [*selected_items.map { |o| send_or_call_or_object(value_method, o) }].compact + else + [] + end + end + end + end +end diff --git a/config/initializers/postgresql_adapter_patch.rb b/config/initializers/postgresql_adapter_patch.rb index 916933b39..42968bbdf 100644 --- a/config/initializers/postgresql_adapter_patch.rb +++ b/config/initializers/postgresql_adapter_patch.rb @@ -9,3 +9,4 @@ module ::ArJdbc end end end +ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::NATIVE_DATABASE_TYPES[:primary_key] = "bigserial primary key" diff --git a/config/locales/companies.yml b/config/locales/companies.yml index 8c91bec4a..940c7b866 100644 --- a/config/locales/companies.yml +++ b/config/locales/companies.yml @@ -23,7 +23,7 @@ en: other: companies attributes: company: - registrationnumber: "Registration number" + registration_number: "Registration number" name: "Name" short_name: "Short name" organizational_unit: "Unit" @@ -39,7 +39,7 @@ en: formtastic: hints: company: - registrationnumber: only alphanumerical or underscore characters + registration_number: only alphanumerical or underscore characters objectid: "[prefix]:Company:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character" fr: @@ -67,7 +67,7 @@ fr: other: transporteurs attributes: company: - registrationnumber: "Numéro d'enregistrement" + registration_number: "Numéro d'enregistrement" name: "Nom" short_name: "Nom court" organizational_unit: "Nom d'unité dans la société" @@ -83,6 +83,6 @@ fr: formtastic: hints: company: - registrationnumber: "caractères autorisés : alphanumériques et 'souligné'" + registration_number: "caractères autorisés : alphanumériques et 'souligné'" objectid: "[prefixe]:Company:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'" diff --git a/config/locales/journey_patterns.yml b/config/locales/journey_patterns.yml new file mode 100644 index 000000000..86257f784 --- /dev/null +++ b/config/locales/journey_patterns.yml @@ -0,0 +1,77 @@ +en: + journey_patterns: + journey_pattern: + from_to: "From '%{departure}' to '%{arrival}'" + stop_count: "%{count}/%{route_count} stops" + vehicle_journeys_count: "Vehicle journeys: %{count}" + actions: + new: Add a new journey_pattern + edit: Edit this journey pattern + destroy: Remove this journey pattern + destroy_confirm: Are you sure you want destroy this journey pattern ? + new: + title: Add a new journey pattern + edit: + title: Update journey pattern %{journey_pattern} + show: + title: Journey Pattern %{journey_pattern} + stop_points: "Stop point on journey pattern list" + index: + title: Journey Patterns + activerecord: + models: + journey_pattern: + zero: journey pattern + one: journey pattern + other: journey patterns + attributes: + journey_pattern: + route: Route + name: Name + published_name: Published name + comment: Comments + registration_number: Registration number + stop_point_ids: "Route's stop selection" + objectid: Neptune identifier + object_version: Version + creation_time: Created on + creator_id: Created by + +fr: + journey_patterns: + journey_pattern: + from_to: "De '%{departure}' à '%{arrival}'" + stop_count: "%{count}/%{route_count} arrêts" + vehicle_journeys_count: "Courses: %{count}" + actions: + new: Ajouter une mission + edit: Modifier cette mission + destroy: Supprimer cette mission + destroy_confirm: "Etes vous sûr de vouloir détruire cette mission ?" + new: + title: Ajouter une mission + edit: + title: Modifier la mission %{journey_pattern} + show: + title: Mission %{journey_pattern} + stop_points: "Liste des arrêts de la mission" + index: + title: Missions + activerecord: + models: + journey_pattern: + zero: mission + one: mission + other: missions + attributes: + journey_pattern: + route: "Séquence d'arrêts" + name: Nom + published_name: Nom public + comment: Commentaire + registration_number: "Numéro d'enregistrement" + stop_point_ids: Sélection des arrêts desservis + objectid: Identifiant Neptune + object_version: Version + creation_time: Créé le + creator_id: Créé par diff --git a/config/locales/lines.yml b/config/locales/lines.yml index 186a09f71..502bab4bf 100644 --- a/config/locales/lines.yml +++ b/config/locales/lines.yml @@ -35,7 +35,7 @@ en: line: network: Network company: Company - registrationnumber: Registration number + registration_number: Registration number name: Name published_name: Published name number: Number @@ -48,7 +48,7 @@ en: formtastic: hints: line: - registrationnumber: only alphanumerical or underscore characters + registration_number: only alphanumerical or underscore characters objectid: "[prefix]:Line:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character" fr: @@ -88,7 +88,7 @@ fr: line: network: Réseau company: Transporteur - registrationnumber: "Numéro d'enregistrement" + registration_number: "Numéro d'enregistrement" name: Nom published_name: Nom public number: Indice @@ -101,5 +101,5 @@ fr: formtastic: hints: line: - registrationnumber: "caractères autorisés : alphanumériques et 'souligné'" + registration_number: "caractères autorisés : alphanumériques et 'souligné'" objectid: "[prefixe]:Line:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'" diff --git a/config/locales/networks.yml b/config/locales/networks.yml index 7f24081a6..3415495ca 100644 --- a/config/locales/networks.yml +++ b/config/locales/networks.yml @@ -23,7 +23,7 @@ en: other: networks attributes: network: - registrationnumber: "Registration number" + registration_number: "Registration number" name: "Name" comment: "Comments" version_date: "Date of this network's version" @@ -38,7 +38,7 @@ en: formtastic: hints: network: - registrationnumber: only alphanumerical or underscore characters + registration_number: only alphanumerical or underscore characters objectid: "[prefix]:GroupOfLine:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character" fr: @@ -65,7 +65,7 @@ fr: other: réseaux attributes: network: - registrationnumber: "Numéro d'enregistrement" + registration_number: "Numéro d'enregistrement" name: "Nom" comment: "Commentaire" version_date: Date de version @@ -80,6 +80,6 @@ fr: formtastic: hints: network: - registrationnumber: "caractères autorisés : alphanumériques et 'souligné'" + registration_number: "caractères autorisés : alphanumériques et 'souligné'" objectid: "[prefixe]:GroupOfLine:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'" diff --git a/config/locales/routes.yml b/config/locales/routes.yml index fbea68a7d..4d0c7842d 100644 --- a/config/locales/routes.yml +++ b/config/locales/routes.yml @@ -12,6 +12,7 @@ en: show: title: Route %{route} stop_points: "Stop point on route list" + journey_patterns: "Route journey patterns list" no_opposite_route: No reversed route associated undefined: Undefined index: @@ -53,6 +54,7 @@ fr: show: title: "Séquence d'arrêts %{route} de la ligne %{line}" stop_points: "Liste des arrêts de la séquence d'arrêts" + journey_patterns: "Liste des missions" no_opposite_route: "Aucune séquence d'arrêts associée en sens opposé" undefined: Non défini index: diff --git a/config/locales/stop_areas.yml b/config/locales/stop_areas.yml index 45bbbdb9e..1029e7e21 100644 --- a/config/locales/stop_areas.yml +++ b/config/locales/stop_areas.yml @@ -38,17 +38,17 @@ en: attributes: stop_area: name: Name - registrationnumber: Registration number + registration_number: Registration number comment: Comments stop_area_type: Area type nearest_topic_name: Nearest point of interest street_name: Street name country_code: INSEE code fare_code: Fare code - projectiontype: Projection type + projection_type: Projection type x: x-position y: y-position - longlattype: Projection type + long_lat_type: Projection type longitude: Longitude latitude: Latitude objectid: Neptune identifier @@ -89,11 +89,11 @@ fr: title: Arrêts selection: Filtrer sur selection_all: Tous - area_type: Type d'arrêt + area_type: "Type d'arrêt" select_parent: - title: Sélection du parent de l'arrêt %{stop_area} + title: "Sélection du parent de l'arrêt %{stop_area}" add_children: - title: Ajouter les enfants de l'arrêt %{stop_area} + title: "Ajouter les enfants de l'arrêt %{stop_area}" activerecord: models: stop_area: @@ -103,7 +103,7 @@ fr: attributes: stop_area: name: Nom - registrationnumber: "Numéro d'enregistrement" + registration_number: "Numéro d'enregistrement" published_name: Nom public comment: Commentaire stop_area_type: "Type d'arrêt" @@ -111,10 +111,10 @@ fr: street_name: Nom de la rue country_code: Code INSEE fare_code: Zone tarifaire - projectiontype: Projection + projection_type: Projection x: Position X y: Position Y - longlattype: Projection + long_lat_type: Projection longitude: Longitude latitude: Latitude objectid: Identifiant Neptune @@ -126,7 +126,7 @@ fr: formtastic: hints: stop_area: - registrationnumber: "caractères autorisés : alphanumériques et 'souligné'" + registration_number: "caractères autorisés : alphanumériques et 'souligné'" objectid: "[prefixe]:StopArea:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'" diff --git a/config/locales/vehicle_journeys.yml b/config/locales/vehicle_journeys.yml new file mode 100644 index 000000000..18882bad8 --- /dev/null +++ b/config/locales/vehicle_journeys.yml @@ -0,0 +1,80 @@ +en: + vehicle_journeys: + actions: + new: Add a new vehicle journey + edit: Edit this vehicle journey + destroy: Remove this vehicle journey + destroy_confirm: Are you sure you want destroy this vehicle journey? + new: + title: Add a new vehicle journey + edit: + title: Update vehicle journey %{vehicle journey} + show: + title: Vehicle Journey %{vehicle journey} + index: + title: Vehicle journeys on route {%route} + activerecord: + models: + vehicle_journey: + zero: vehicle journey + one: vehicle journey + other: vehicle journeys + attributes: + vehicle_journey: + line: Line + route: Route + journey_pattern: Journey Pattern + time_slot: Time Slot + company: Company + comment: Comments + status_value: Status Value + transport_mode: Transport Mode + published_journey_name: Published Name + published_journey_identifier: Published Identifier + facility: Facility + vehicletypeidentifier: Vehicle Type Identifier + objectid: Neptune identifier + object_version: Version + creation_time: Created on + creator_id: Created by + +fr: + vehicle_journeys: + actions: + new: "Ajouter une course" + edit: "Modifier cette course" + destroy: "Supprimer cette course" + destroy_confirm: "Etes vous sûr de détruire cette course ?" + new: + title: "Ajouter une course" + edit: + title: "Modifier la course au départ de %{stop} à %{time} sur la séquence %{route}" + show: + title: "Course au départ de %{stop} à %{time} sur la séquence %{route}" + index: + title: "Courses de la séquence d'arrêts %{route}" + activerecord: + models: + vehicle_journey: + zero: "Course" + one: "Course" + other: "Courses" + attributes: + vehicle_journey: + line: Ligne + route: "Séquence d'arrêt" + journey_pattern: Mission + time_slot: Fréquence + company: Transporteur + comment: Commentaires + status_value: Etat de trafic + transport_mode: Mode de transport + published_journey_name: Nom public + published_journey_identifier: Identifiant public + facility: Equipement + vehicle_type_identifier: "Type d'identifiant du véhicule" + objectid: Identifiant Neptune + object_version: Version + creation_time: Créé le + creator_id: Créé par + diff --git a/config/routes.rb b/config/routes.rb index 305a219ce..4e8d75a9c 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -30,6 +30,8 @@ ChouetteIhm::Application.routes.draw do end end resources :routes do + resources :journey_patterns + resources :vehicle_journeys resources :stop_points do collection do post :sort diff --git a/db/migrate/20120213131553_create_chouette_line.rb b/db/migrate/20120213131553_create_chouette_line.rb index 09a674183..51231a3fc 100644 --- a/db/migrate/20120213131553_create_chouette_line.rb +++ b/db/migrate/20120213131553_create_chouette_line.rb @@ -1,24 +1,24 @@ class CreateChouetteLine < ActiveRecord::Migration def up - create_table "line", :force => true do |t| - t.integer "ptnetworkid", :limit => 8 - t.integer "companyid", :limit => 8 - t.string "objectid" - t.integer "objectversion" - t.datetime "creationtime" - t.string "creatorid" + create_table "lines", :force => true do |t| + t.integer "network_id", :limit => 8 + t.integer "company_id", :limit => 8 + t.string "objectid", :null => false + t.integer "object_version" + t.datetime "creation_time" + t.string "creator_id" t.string "name" t.string "number" - t.string "publishedname" - t.string "transportmodename" - t.string "registrationnumber" + t.string "published_name" + t.string "transport_mode_name" + t.string "registration_number" t.string "comment" - t.boolean "mobilityrestrictedsuitable" - t.integer "userneeds", :limit => 8 + t.boolean "mobility_restricted_suitability" + t.integer "int_user_needs" end - add_index "line", ["objectid"], :name => "line_objectid_key", :unique => true - add_index "line", ["registrationnumber"], :name => "line_registrationnumber_key", :unique => true + add_index "lines", ["objectid"], :name => "lines_objectid_key", :unique => true + add_index "lines", ["registration_number"], :name => "lines_registration_number_key", :unique => true end def down diff --git a/db/migrate/20120214101458_create_chouette_company.rb b/db/migrate/20120214101458_create_chouette_company.rb index 5a15a26e6..c72a73d9b 100644 --- a/db/migrate/20120214101458_create_chouette_company.rb +++ b/db/migrate/20120214101458_create_chouette_company.rb @@ -1,23 +1,23 @@ class CreateChouetteCompany < ActiveRecord::Migration def up - create_table "company", :force => true do |t| - t.string "objectid" - t.integer "objectversion" - t.datetime "creationtime" - t.string "creatorid" + create_table "companies", :force => true do |t| + t.string "objectid", :null => false + t.integer "object_version" + t.datetime "creation_time" + t.string "creator_id" t.string "name" - t.string "shortname" - t.string "organizationalunit" - t.string "operatingdepartmentname" + t.string "short_name" + t.string "organizational_unit" + t.string "operating_department_name" t.string "code" t.string "phone" t.string "fax" t.string "email" - t.string "registrationnumber" + t.string "registration_number" end - add_index "company", ["objectid"], :name => "company_objectid_key", :unique => true - add_index "company", ["registrationnumber"], :name => "company_registrationnumber_key", :unique => true + add_index "companies", ["objectid"], :name => "companies_objectid_key", :unique => true + add_index "companies", ["registration_number"], :name => "companies_registration_number_key", :unique => true end def down diff --git a/db/migrate/20120214101645_create_chouette_ptnetwork.rb b/db/migrate/20120214101645_create_chouette_ptnetwork.rb index 13f294345..45037c31a 100644 --- a/db/migrate/20120214101645_create_chouette_ptnetwork.rb +++ b/db/migrate/20120214101645_create_chouette_ptnetwork.rb @@ -1,21 +1,22 @@ class CreateChouettePtnetwork < ActiveRecord::Migration def up - create_table "ptnetwork", :force => true do |t| - t.string "objectid" - t.integer "objectversion" - t.datetime "creationtime" - t.string "creatorid" - t.date "versiondate" + create_table "networks", :force => true do |t| + t.string "objectid", :null => false + t.integer "object_version" + t.datetime "creation_time" + t.string "creator_id" + t.date "version_date" t.string "description" t.string "name" - t.string "registrationnumber" - t.string "sourcename" - t.string "sourceidentifier" + t.string "registration_number" + t.string "source_name" + t.string "source_type" + t.string "source_identifier" t.string "comment" end - add_index "ptnetwork", ["objectid"], :name => "ptnetwork_objectid_key", :unique => true - add_index "ptnetwork", ["registrationnumber"], :name => "ptnetwork_registrationnumber_key", :unique => true + add_index "networks", ["objectid"], :name => "networks_objectid_key", :unique => true + add_index "networks", ["registration_number"], :name => "networks_registration_number_key", :unique => true end def down diff --git a/db/migrate/20120416095045_create_chouette_stop_area.rb b/db/migrate/20120416095045_create_chouette_stop_area.rb index 46ac7f87b..79b8c8260 100644 --- a/db/migrate/20120416095045_create_chouette_stop_area.rb +++ b/db/migrate/20120416095045_create_chouette_stop_area.rb @@ -1,34 +1,33 @@ class CreateChouetteStopArea < ActiveRecord::Migration def up - create_table "stoparea", :force => true do |t| - t.integer "parentid", :limit => 8 - t.string "objectid" - t.integer "objectversion" - t.datetime "creationtime" - t.string "creatorid" + create_table "stop_areas", :force => true do |t| + t.integer "parent_id", :limit => 8 + t.string "objectid", :null => false + t.integer "object_version" + t.datetime "creation_time" + t.string "creator_id" t.string "name" t.string "comment" - t.string "areatype" - t.string "registrationnumber" - t.string "nearesttopicname" - t.integer "farecode" + t.string "area_type" + t.string "registration_number" + t.string "nearest_topic_name" + t.integer "fare_code" t.decimal "longitude", :precision => 19, :scale => 16 t.decimal "latitude", :precision => 19, :scale => 16 - t.string "longlattype" + t.string "long_lat_type" t.decimal "x", :precision => 19, :scale => 2 t.decimal "y", :precision => 19, :scale => 2 - t.string "projectiontype" - t.string "countrycode" - t.string "streetname" - t.integer "modes", :default => 0 + t.string "projection_type" + t.string "country_code" + t.string "street_name" end - add_index "stoparea", ["objectid"], :name => "stoparea_objectid_key", :unique => true - add_index "stoparea", ["parentid"], :name => "index_stoparea_on_parentid" + add_index "stop_areas", ["objectid"], :name => "stop_areas_objectid_key", :unique => true + add_index "stop_areas", ["parent_id"], :name => "index_stop_areas_on_parent_id" end def down - drop_table "stoparea" + drop_table "stop_areas" end end diff --git a/db/migrate/20120416095046_create_time_table.rb b/db/migrate/20120416095046_create_time_table.rb index 3752f0836..da579bb87 100644 --- a/db/migrate/20120416095046_create_time_table.rb +++ b/db/migrate/20120416095046_create_time_table.rb @@ -1,38 +1,38 @@ class CreateTimeTable < ActiveRecord::Migration def up - create_table "timetable", :force => true do |t| + create_table "time_tables", :force => true do |t| t.string "objectid", :null => false - t.integer "objectversion", :default => 1 - t.datetime "creationtime" - t.string "creatorid" + t.integer "object_version", :default => 1 + t.datetime "creation_time" + t.string "creator_id" t.string "version" t.string "comment" - t.integer "intdaytypes", :default => 0 + t.integer "int_day_types", :default => 0 end - add_index "timetable", ["objectid"], :name => "timetable_objectid_key", :unique => true + add_index "time_tables", ["objectid"], :name => "time_tables_objectid_key", :unique => true - create_table "timetable_date", :id => false, :force => true do |t| - t.integer "timetableid", :limit => 8, :null => false + create_table "time_table_dates", :id => false, :force => true do |t| + t.integer "time_table_id", :limit => 8, :null => false t.date "date" t.integer "position", :null => false end - add_index "timetable_date", ["timetableid"], :name => "index_timetable_date_on_timetableid" + add_index "time_table_dates", ["time_table_id"], :name => "index_time_table_dates_on_time_table_id" - create_table "timetable_period", :id => false, :force => true do |t| - t.integer "timetableid", :limit => 8, :null => false - t.date "periodstart" - t.date "periodend" + create_table "time_table_periods", :id => false, :force => true do |t| + t.integer "time_table_id", :limit => 8, :null => false + t.date "period_start" + t.date "period_end" t.integer "position", :null => false end - add_index "timetable_period", ["timetableid"], :name => "index_timetable_period_on_timetableid" + add_index "time_table_periods", ["time_table_id"], :name => "index_time_table_periods_on_time_table_id" end def down - drop_table "timetable_period" - drop_table "timetable_date" - drop_table "timetable" + drop_table "time_table_periods" + drop_table "time_table_dates" + drop_table "time_tables" end end diff --git a/db/migrate/20120425080337_create_chouette_route.rb b/db/migrate/20120425080337_create_chouette_route.rb index 98d0f3c11..21ff43bcc 100644 --- a/db/migrate/20120425080337_create_chouette_route.rb +++ b/db/migrate/20120425080337_create_chouette_route.rb @@ -1,19 +1,20 @@ class CreateChouetteRoute < ActiveRecord::Migration def up - create_table "route", :force => true do |t| - t.integer "lineid", :limit => 8 - t.string "objectid" - t.integer "objectversion" - t.datetime "creationtime" - t.string "creatorid" + create_table "routes", :force => true do |t| + t.integer "line_id", :limit => 8 + t.string "objectid", :null => false + t.integer "object_version" + t.datetime "creation_time" + t.string "creator_id" t.string "name" t.string "comment" - t.integer "oppositerouteid", :limit => 8 - t.string "publishedname" + t.integer "opposite_route_id", :limit => 8 + t.string "published_name" t.string "number" t.string "direction" t.string "wayback" end + add_index "routes", ["objectid"], :name => "routes_objectid_key", :unique => true end def down diff --git a/db/migrate/20120425125542_create_chouette_stop_point.rb b/db/migrate/20120425125542_create_chouette_stop_point.rb index 07e7861a8..ee81d9bfc 100644 --- a/db/migrate/20120425125542_create_chouette_stop_point.rb +++ b/db/migrate/20120425125542_create_chouette_stop_point.rb @@ -1,14 +1,15 @@ class CreateChouetteStopPoint < ActiveRecord::Migration def up - create_table "stoppoint", :force => true do |t| - t.integer "routeid", :limit => 8 - t.integer "stopareaid", :limit => 8 - t.string "objectid" - t.integer "objectversion" - t.datetime "creationtime" - t.string "creatorid" + create_table "stop_points", :force => true do |t| + t.integer "route_id", :limit => 8 + t.integer "stop_area_id", :limit => 8 + t.string "objectid", :null => false + t.integer "object_version" + t.datetime "creation_time" + t.string "creator_id" t.integer "position" end + add_index "stop_points", ["objectid"], :name => "stop_points_objectid_key", :unique => true end def down diff --git a/db/migrate/20120426141032_create_chouette_connection_link.rb b/db/migrate/20120426141032_create_chouette_connection_link.rb index 185c49af2..530c9001a 100644 --- a/db/migrate/20120426141032_create_chouette_connection_link.rb +++ b/db/migrate/20120426141032_create_chouette_connection_link.rb @@ -1,26 +1,26 @@ class CreateChouetteConnectionLink < ActiveRecord::Migration def up - create_table "connectionlink", :force => true do |t| - t.integer "departureid", :limit => 8 - t.integer "arrivalid", :limit => 8 + create_table "connection_links", :force => true do |t| + t.integer "departure_id", :limit => 8 + t.integer "arrival_id", :limit => 8 t.string "objectid", :null => false - t.integer "objectversion" - t.datetime "creationtime" - t.string "creatorid" + t.integer "object_version" + t.datetime "creation_time" + t.string "creator_id" t.string "name" t.string "comment" - t.decimal "linkdistance", :precision => 19, :scale => 2 - t.string "linktype" - t.time "defaultduration" - t.time "frequenttravellerduration" - t.time "occasionaltravellerduration" - t.time "mobilityrestrictedtravellerduration" - t.boolean "mobilityrestrictedsuitability" - t.boolean "stairsavailability" - t.boolean "liftavailability" - t.integer "intuserneeds" + t.decimal "link_distance", :precision => 19, :scale => 2 + t.string "link_type" + t.time "default_duration" + t.time "frequent_traveller_duration" + t.time "occasional_traveller_duration" + t.time "mobility_restricted_traveller_duration" + t.boolean "mobility_restricted_suitability" + t.boolean "stairs_availability" + t.boolean "lift_availability" + t.integer "int_user_needs" end - add_index "connectionlink", ["objectid"], :name => "connectionlink_objectid_key", :unique => true + add_index "connection_links", ["objectid"], :name => "connection_links_objectid_key", :unique => true end def down diff --git a/db/migrate/20120525092203_create_chouette_journey_pattern.rb b/db/migrate/20120525092203_create_chouette_journey_pattern.rb new file mode 100644 index 000000000..4e45c0a94 --- /dev/null +++ b/db/migrate/20120525092203_create_chouette_journey_pattern.rb @@ -0,0 +1,26 @@ +class CreateChouetteJourneyPattern < ActiveRecord::Migration + def up + create_table :journey_patterns, :force => true do |t| + t.integer "route_id", :limit => 8 + + t.string "objectid", :null => false + t.integer "object_version" + t.datetime "creation_time" + t.string "creator_id" + + t.string "name" + t.string "comment" + t.string "registration_number" + t.string "published_name" + + t.integer "departure_stop_point_id", :limit => 8 + t.integer "arrival_stop_point_id", :limit => 8 + end + add_index "journey_patterns", ["objectid"], :name => "journey_patterns_objectid_key", :unique => true + end + + def down + remove_index "journey_patterns", :name => "journey_patterns_objectid_key" + drop_table :journey_patterns + end +end diff --git a/db/migrate/20120525092204_create_chouette_journey_pattern_stop_point.rb b/db/migrate/20120525092204_create_chouette_journey_pattern_stop_point.rb new file mode 100644 index 000000000..4d6799151 --- /dev/null +++ b/db/migrate/20120525092204_create_chouette_journey_pattern_stop_point.rb @@ -0,0 +1,14 @@ +class CreateChouetteJourneyPatternStopPoint < ActiveRecord::Migration + def up + create_table :journey_patterns_stop_points, :id => false, :force => true do |t| + t.integer "journey_pattern_id", :limit => 8 + t.integer "stop_point_id", :limit => 8 + end + add_index "journey_patterns_stop_points", ["journey_pattern_id"], :name => "index_journey_pattern_id_on_journey_patterns_stop_points" + end + + def down + remove_index "journey_patterns_stop_points", :name => "index_journey_pattern_id_on_journey_patterns_stop_points" + drop_table :journey_pattern_stop_points + end +end diff --git a/db/migrate/20120525092205_create_chouette_time_slot.rb b/db/migrate/20120525092205_create_chouette_time_slot.rb new file mode 100644 index 000000000..1508645b1 --- /dev/null +++ b/db/migrate/20120525092205_create_chouette_time_slot.rb @@ -0,0 +1,22 @@ +class CreateChouetteTimeSlot < ActiveRecord::Migration + def up + create_table :time_slots, :force => true do |t| + t.string "objectid", :null => false + t.integer "object_version" + t.datetime "creation_time" + t.string "creator_id" + + t.string "name" + t.datetime "beginning_slot_time" + t.datetime "end_slot_time" + t.datetime "first_departure_time_in_slot" + t.datetime "last_departure_time_in_slot" + end + add_index "time_slots", ["objectid"], :name => "time_slots_objectid_key", :unique => true + end + + def down + remove_index "time_slots", :name => "time_slot_objectid_key" + drop_table :time_slots + end +end diff --git a/db/migrate/20120525092206_create_chouette_vehicle_journey.rb b/db/migrate/20120525092206_create_chouette_vehicle_journey.rb new file mode 100644 index 000000000..8e5c46b0c --- /dev/null +++ b/db/migrate/20120525092206_create_chouette_vehicle_journey.rb @@ -0,0 +1,34 @@ +class CreateChouetteVehicleJourney < ActiveRecord::Migration + def up + create_table :vehicle_journeys, :force => true do |t| + t.integer "route_id", :limit => 8 + t.integer "journey_pattern_id", :limit => 8 + t.integer "time_slot_id", :limit => 8 + t.integer "company_id", :limit => 8 + + t.string "objectid", :null => false + t.integer "object_version" + t.datetime "creation_time" + t.string "creator_id" + + t.string "comment" + t.string "status_value" + t.string "transport_mode" + t.string "published_journey_name" + t.string "published_journey_identifier" + t.string "facility" + t.string "vehicle_type_identifier" + + # TODO: delete this column that are here just for chouette-command compliance + t.integer "number" + end + add_index "vehicle_journeys", ["objectid"], :name => "vehicle_journeys_objectid_key", :unique => true + add_index "vehicle_journeys", ["route_id"], :name => "index_vehicle_journeys_on_route_id" + end + + def down + remove_index "vehicle_journeys", :name => "vehicle_journeys_objectid_key" + remove_index "vehicle_journeys", :name => "index_vehicle_journeys_on_route_id" + drop_table :vehicle_journeys + end +end diff --git a/db/migrate/20120525092207_create_chouette_vehicle_journey_at_stop.rb b/db/migrate/20120525092207_create_chouette_vehicle_journey_at_stop.rb new file mode 100644 index 000000000..330241972 --- /dev/null +++ b/db/migrate/20120525092207_create_chouette_vehicle_journey_at_stop.rb @@ -0,0 +1,25 @@ +class CreateChouetteVehicleJourneyAtStop < ActiveRecord::Migration + def up + create_table :vehicle_journey_at_stops, :force => true do |t| + t.integer "vehicle_journey_id", :limit => 8 + t.integer "stop_point_id", :limit => 8 + + t.string "connecting_service_id" + t.string "boarding_alighting_possibility" + + t.datetime "arrival_time" + t.datetime "departure_time" + t.datetime "waiting_time" + t.datetime "elapse_duration" + t.datetime "headway_frequency" + end + add_index "vehicle_journey_at_stops", ["vehicle_journey_id"], :name => "index_vehicle_journey_at_stops_on_vehicle_journey_id" + add_index "vehicle_journey_at_stops", ["stop_point_id"], :name => "index_vehicle_journey_at_stops_on_stop_pointid" + end + + def down + remove_index "vehicle_journey_at_stops", :name => "index_vehicle_journey_at_stops_on_vehicle_journey_id" + remove_index "vehicle_journey_at_stops", :name => "index_vehicle_journey_at_stops_on_stop_point_id" + drop_table :vehicle_journey_at_stops + end +end diff --git a/db/migrate/20120525092208_create_chouette_time_table_vehicle_journey.rb b/db/migrate/20120525092208_create_chouette_time_table_vehicle_journey.rb new file mode 100644 index 000000000..2c7ebb1f5 --- /dev/null +++ b/db/migrate/20120525092208_create_chouette_time_table_vehicle_journey.rb @@ -0,0 +1,16 @@ +class CreateChouetteTimeTableVehicleJourney < ActiveRecord::Migration + def up + create_table :time_tables_vehicle_journeys, :id => false, :force => true do |t| + t.integer "time_table_id", :limit => 8 + t.integer "vehicle_journey_id", :limit => 8 + end + add_index "time_tables_vehicle_journeys", ["time_table_id"], :name => "index_time_tables_vehicle_journeys_on_time_table_id" + add_index "time_tables_vehicle_journeys", ["vehicle_journey_id"], :name => "index_time_tables_vehicle_journeys_on_vehicle_journey_id" + end + + def down + remove_index "time_tables_vehicle_journeys", :name => "index_time_tables_vehicle_journeys_on_time_table_id" + remove_index "time_tables_vehicle_journeys", :name => "index_time_tables_vehicle_journeys_on_vehicle_journey_id" + drop_table :time_tables_vehicle_journeys + end +end diff --git a/db/migrate/20120525092209_create_chouette_access_point.rb b/db/migrate/20120525092209_create_chouette_access_point.rb new file mode 100644 index 000000000..a3733cfde --- /dev/null +++ b/db/migrate/20120525092209_create_chouette_access_point.rb @@ -0,0 +1,34 @@ +class CreateChouetteAccessPoint < ActiveRecord::Migration + def up + create_table :access_points, :force => true do |t| + t.string "objectid" + t.integer "object_version" + t.datetime "creation_time" + t.string "creator_id" + + t.string "name" + t.string "comment" + t.decimal "longitude", :precision => 19, :scale => 16 + t.decimal "latitude", :precision => 19, :scale => 16 + t.string "long_lat_type" + t.decimal "x", :precision => 19, :scale => 2 + t.decimal "y", :precision => 19, :scale => 2 + t.string "projection_type" + t.string "country_code" + t.string "street_name" + t.string "contained_in" + + t.datetime "openning_time" + t.datetime "closing_time" + t.string "type" + t.boolean "lift_availability" + t.datetime "mobility_restricted_suitability" + t.datetime "stairs_availability" + end + add_index "access_points", ["objectid"], :name => "access_points_objectid_key", :unique => true + end + + def down + drop_table :access_points + end +end diff --git a/db/migrate/20120525092210_create_chouette_access_link.rb b/db/migrate/20120525092210_create_chouette_access_link.rb new file mode 100644 index 000000000..8ddccd7bc --- /dev/null +++ b/db/migrate/20120525092210_create_chouette_access_link.rb @@ -0,0 +1,33 @@ +class CreateChouetteAccessLink < ActiveRecord::Migration + def up + create_table :access_links, :force => true do |t| + t.integer "access_point_id", :limit => 8 + t.integer "stop_area_id", :limit => 8 + + t.string "objectid", :null => false + t.integer "object_version" + t.datetime "creation_time" + t.string "creator_id" + + t.string "name" + t.string "comment" + t.decimal "link_distance", :precision => 19, :scale => 2 + t.boolean "lift_availability" + t.boolean "mobility_restricted_suitability" + t.boolean "stairs_availability" + t.time "default_duration" + t.time "frequent_traveller_duration" + t.time "occasional_traveller_duration" + t.time "mobility_restricted_traveller_duration" + + t.string "link_type" + t.integer "int_user_needs" + t.string "link_orientation" + end + add_index "access_links", ["objectid"], :name => "access_links_objectid_key", :unique => true + end + + def down + drop_table :access_links + end +end diff --git a/db/migrate/20120525092211_create_chouette_facility.rb b/db/migrate/20120525092211_create_chouette_facility.rb new file mode 100644 index 000000000..9f4cb2848 --- /dev/null +++ b/db/migrate/20120525092211_create_chouette_facility.rb @@ -0,0 +1,34 @@ +class CreateChouetteFacility < ActiveRecord::Migration + def up + create_table :facilities, :force => true do |t| + t.integer "stop_area_id", :limit => 8 + t.integer "line_id", :limit => 8 + t.integer "connection_link_id",:limit => 8 + t.integer "stop_point_id", :limit => 8 + + t.string "objectid", :null => false + t.integer "object_version" + t.datetime "creation_time" + t.string "creator_id" + + t.string "name" + t.string "comment" + t.string "description" + t.boolean "free_access" + t.decimal "longitude", :precision => 19, :scale => 16 + t.decimal "latitude", :precision => 19, :scale => 16 + t.string "long_lat_type" + t.decimal "x", :precision => 19, :scale => 2 + t.decimal "y", :precision => 19, :scale => 2 + t.string "projection_type" + t.string "country_code" + t.string "street_name" + t.string "contained_in" + end + add_index "facilities", ["objectid"], :name => "facilities_objectid_key", :unique => true + end + + def down + drop_table :facilities + end +end diff --git a/db/migrate/20120525092212_create_chouette_facility_feature.rb b/db/migrate/20120525092212_create_chouette_facility_feature.rb new file mode 100644 index 000000000..0ed65c172 --- /dev/null +++ b/db/migrate/20120525092212_create_chouette_facility_feature.rb @@ -0,0 +1,12 @@ +class CreateChouetteFacilityFeature < ActiveRecord::Migration + def up + create_table :facilities_features, :id => false, :force => true do |t| + t.integer "facility_id", :limit => 8 + t.integer "choice_code" + end + end + + def down + drop_table :facilities_features + end +end diff --git a/db/migrate/20120525092213_create_chouette_group_of_line.rb b/db/migrate/20120525092213_create_chouette_group_of_line.rb new file mode 100644 index 000000000..c64a571ba --- /dev/null +++ b/db/migrate/20120525092213_create_chouette_group_of_line.rb @@ -0,0 +1,18 @@ +class CreateChouetteGroupOfLine < ActiveRecord::Migration + def up + create_table :group_of_lines, :force => true do |t| + t.string "objectid", :null => false + t.integer "object_version" + t.datetime "creation_time" + t.string "creator_id" + + t.string "name" + t.string "comment" + end + add_index "group_of_lines", ["objectid"], :name => "group_of_lines_objectid_key", :unique => true + end + + def down + drop_table :group_of_lines + end +end diff --git a/db/migrate/20120525092214_create_chouette_group_of_line_line.rb b/db/migrate/20120525092214_create_chouette_group_of_line_line.rb new file mode 100644 index 000000000..3763386df --- /dev/null +++ b/db/migrate/20120525092214_create_chouette_group_of_line_line.rb @@ -0,0 +1,12 @@ +class CreateChouetteGroupOfLineLine < ActiveRecord::Migration + def up + create_table :group_of_lines_lines, :id => false, :force => true do |t| + t.integer "group_of_line_id", :limit => 8 + t.integer "line_id", :limit => 8 + end + end + + def down + drop_table :group_of_lines_lines + end +end diff --git a/db/migrate/20120525092215_create_chouette_routing_constrains_line.rb b/db/migrate/20120525092215_create_chouette_routing_constrains_line.rb new file mode 100644 index 000000000..fa2dd2f20 --- /dev/null +++ b/db/migrate/20120525092215_create_chouette_routing_constrains_line.rb @@ -0,0 +1,12 @@ +class CreateChouetteRoutingConstrainsLine < ActiveRecord::Migration + def up + create_table :routing_constraints_lines, :id => false, :force => true do |t| + t.integer "stop_area_id", :limit => 8 + t.integer "line_id", :limit => 8 + end + end + + def down + drop_table :routing_constraints_lines + end +end diff --git a/db/migrate/20120525092216_create_chouette_stoparea_stoparea.rb b/db/migrate/20120525092216_create_chouette_stoparea_stoparea.rb new file mode 100644 index 000000000..42e0ee5dd --- /dev/null +++ b/db/migrate/20120525092216_create_chouette_stoparea_stoparea.rb @@ -0,0 +1,12 @@ +class CreateChouetteStopareaStoparea < ActiveRecord::Migration + def up + create_table :stop_areas_stop_areas, :id => false, :force => true do |t| + t.integer "child_id", :limit => 8 + t.integer "parent_id", :limit => 8 + end + end + + def down + drop_table :stop_areas_stop_areas + end +end diff --git a/db/migrate/20120531091529_create_chouette_pt_link.rb b/db/migrate/20120531091529_create_chouette_pt_link.rb new file mode 100644 index 000000000..57b4b2e63 --- /dev/null +++ b/db/migrate/20120531091529_create_chouette_pt_link.rb @@ -0,0 +1,21 @@ +class CreateChouettePtLink < ActiveRecord::Migration +def up + create_table "pt_links", :force => true do |t| + t.integer "start_of_link_id", :limit => 8 + t.integer "end_of_link_id", :limit => 8 + t.integer "route_id", :limit => 8 + t.string "objectid", :null => false + t.integer "object_version" + t.datetime "creation_time" + t.string "creator_id" + t.string "name" + t.string "comment" + t.decimal "link_distance", :precision => 19, :scale => 2 + end + add_index "pt_links", ["objectid"], :name => "pt_links_objectid_key", :unique => true + end + + def down + drop_table :pt_links + end +end diff --git a/spec/requests/journey_pattern_spec.rb b/spec/requests/journey_pattern_spec.rb new file mode 100644 index 000000000..7c62dd56b --- /dev/null +++ b/spec/requests/journey_pattern_spec.rb @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +require 'spec_helper' + +describe "JourneyPatterns" do + login_user + + let!(:referential) { create(:referential).switch } + let!(:line) { referential; Factory(:line) } + let!(:route) { referential; Factory(:route, :line => line) } + let!(:journey_pattern) { referential; Factory(:journey_pattern, :route => route) } + + describe "from routes page to a journey_pattern page" do + it "display route's journey_patterns" do + visit referential_line_route_path(referential,line,route) + page.should have_content(journey_pattern.name) + end + end + describe "from route's page to journey_pattern's page" do + it "display journey_pattern properties" do + visit referential_line_route_path(referential,line,route) + click_link "#{journey_pattern.name}" + page.should have_content(journey_pattern.published_name) + page.should have_content(journey_pattern.comment) + page.should have_content(journey_pattern.registration_number) + end + end + describe "from route's page, create a new journey_pattern" do + it "return to route's page that display new journey_pattern" do + visit referential_line_route_path(referential,line,route) + click_link "Ajouter une mission" + fill_in "Nom", :with => "A to B" + fill_in "Comment", :with => "AB" + click_button("Créer mission") + page.should have_content("A to B") + end + end + describe "from route's page, select a journey_pattern and edit it" do + it "return to route's page with changed name" do + visit referential_line_route_path(referential,line,route) + click_link "#{journey_pattern.name}" + click_link "Modifier cette mission" + fill_in "Nom", :with => "#{journey_pattern.name}-changed" + click_button("Modifier mission") + page.should have_content("#{journey_pattern.name}-changed") + end + end + describe "from route's page, select a journey_pattern and delete it" do + it "return to route's page without journey_pattern name" do + visit referential_line_route_path(referential,line,route) + click_link "#{journey_pattern.name}" + click_link "Supprimer cette mission" + page.should_not have_content(journey_pattern.name) + end + end +end + diff --git a/spec/views/vehicle_journeys/_form.html.erb_spec.rb b/spec/views/vehicle_journeys/_form.html.erb_spec.rb new file mode 100644 index 000000000..121566448 --- /dev/null +++ b/spec/views/vehicle_journeys/_form.html.erb_spec.rb @@ -0,0 +1,61 @@ +require 'spec_helper' + +describe "/vehicle_journeys/_form" do + + let!(:referential) { assign :referential, create(:referential) } + let!(:line) { assign :line, create(:line) } + let!(:route) { assign :route, create(:route, :line => line) } + let!(:vehicle_journey) { assign :vehicle_journey, create(:vehicle_journey, :route => route) } + + it "should render an input for transport_mode" do + render + rendered.should have_selector( "select", :name => "vehicle_journey[transport_mode]") do |node| + Chouette::Line.transport_modes.each do |mode| + node.should have_selector("option", :value => mode.text_code) + end + end + end + + it "should render an input for comment" do + render + rendered.should have_selector("form") do + with_selector "input[type=text][comment=]", vehicle_journey.comment + end + end + context "stop's time view part" do + it "should render stop's names" do + render + rendered.should have_selector("form") do |form_node| + vehicle_journey.stop_points.each do |sp| + form_node.with_selector "label", :text => sp.stop_area.name + end + end + end + it "should render vehicle_journey_at_stop's departure time" do + render + rendered.should have_selector("form") do |form_node| + vehicle_journey.stop_points.each_with_index do |sp, index| + form_node.with_selector "select", :name => "vehicle_journey[vehicle_journey_at_stops_attributes][#{index}][departure_time(4i)]" + form_node.with_selector "select", :name => "vehicle_journey[vehicle_journey_at_stops_attributes][#{index}][departure_time(5i)]" + end + end + end + end + context "when existing vehicle_journey" do + it "should display objectid not as an input" do + render + rendered.should have_selector("form li", :text => vehicle_journey.objectid) + end + end + context "when new vehicle_journey" do + let!(:vehicle_journey) { assign :vehicle_journey, build(:vehicle_journey, :route => route) } + it "should render an input for objectid" do + render + rendered.should have_selector("form") do + with_selector "input[type=text][objectid=]", vehicle_journey.objectid + end + end + end + +end + |
