From 889d812612603b758c2e8aa0cd251826d36e364c Mon Sep 17 00:00:00 2001 From: Marc Florisson Date: Mon, 25 Jun 2012 21:35:06 +0200 Subject: Refs #68, Refs #69, Refs 70, Refs 71 --- app/assets/stylesheets/vehicle_journeys.css.scss | 13 +++-- app/controllers/vehicle_journeys_controller.rb | 4 ++ app/helpers/vehicle_journeys_helper.rb | 32 ++++++++++++- app/views/vehicle_journeys/_time_filter.html.erb | 11 +++++ .../_vehicle_journey_at_stop_fields.html.erb | 6 +-- app/views/vehicle_journeys/index.html.erb | 56 ++++++++++++++-------- app/views/vehicle_journeys/show.html.erb | 4 +- config/locales/vehicle_journeys.yml | 6 +++ ...vehicle_journey_at_stop_fields.html.erb_spec.rb | 4 +- 9 files changed, 103 insertions(+), 33 deletions(-) create mode 100644 app/views/vehicle_journeys/_time_filter.html.erb diff --git a/app/assets/stylesheets/vehicle_journeys.css.scss b/app/assets/stylesheets/vehicle_journeys.css.scss index 0bfabc38b..868d4ecd7 100644 --- a/app/assets/stylesheets/vehicle_journeys.css.scss +++ b/app/assets/stylesheets/vehicle_journeys.css.scss @@ -3,7 +3,7 @@ // You can use Sass (SCSS) here: http://sass-lang.com/ @import "common"; -#workspace.vehicle_journeys.edit, #workspace.vehicle_journeys.new +#workspace.vehicle_journeys.edit, #workspace.vehicle_journeys.update, #workspace.vehicle_journeys.new { #route_color{ width: 100px; color: white; @@ -49,11 +49,15 @@ text-align: center; } - td.hours{ + td.hours { font-size: 12px; color: #516a29; } + td.missing { + background-color: orange; + } + td.stop_area{ text-align: left; font-size: 12px; @@ -63,7 +67,7 @@ } -#workspace.vehicle_journeys.show, #workspace.vehicle_journeys.edit { +#workspace.vehicle_journeys.show, #workspace.vehicle_journeys.edit, #workspace.vehicle_journeys.update { .vehicle_journey_at_stops { thead { th { text-align: center; } @@ -75,6 +79,9 @@ } tbody { td.hour { text-align: center; } + td.departure_time, td.arrival_time { padding-left: 15px; } + td.missing { background-color: orange; } + td.invalid_position { background-color: red; } tr label { width: 100% } tr.odd { } tr.even { background-color: #DEFFA8; } diff --git a/app/controllers/vehicle_journeys_controller.rb b/app/controllers/vehicle_journeys_controller.rb index 596a7f90c..d8dca65b5 100644 --- a/app/controllers/vehicle_journeys_controller.rb +++ b/app/controllers/vehicle_journeys_controller.rb @@ -18,6 +18,10 @@ class VehicleJourneysController < ChouetteController end end + def update + update!(:alert => "Hey pb") + end + protected alias_method :vehicle_journey, :resource diff --git a/app/helpers/vehicle_journeys_helper.rb b/app/helpers/vehicle_journeys_helper.rb index 34b367424..e45978023 100644 --- a/app/helpers/vehicle_journeys_helper.rb +++ b/app/helpers/vehicle_journeys_helper.rb @@ -1,11 +1,39 @@ module VehicleJourneysHelper + def journey_name( journey_pattern) + if !journey_pattern.published_name.blank? + journey_pattern.published_name.first(8) + elsif !journey_pattern.name.blank? + journey_pattern.name.first(8) + else + journey_pattern.id + end + end + def vehicle_name( vehicle) + if !vehicle.published_journey_name.blank? + vehicle.published_journey_name.first(8) + elsif !vehicle.published_journey_identifier.blank? + vehicle.published_journey_identifier.first(8) + elsif !vehicle.number.blank? + vehicle.number + else + vehicle.id + end + end + def missing_time_check( is_present) + return "missing" if (is_present && is_present.departure_time.nil?) + end + def vehicle_departure(vehicle) + first_vjas = vehicle.vehicle_journey_at_stops.first + return "" unless first_vjas.departure_time + l(first_vjas.departure_time, :format => :hour).gsub( / /, ' ') + end def vehicle_title( vehicle) return t('vehicle_journeys.vehicle_journey.title_stopless') if vehicle.vehicle_journey_at_stops.empty? first_vjas = vehicle.vehicle_journey_at_stops.first t('vehicle_journeys.vehicle_journey.title', :name => vehicle.published_journey_name, :stop => first_vjas.stop_point.stop_area.name, - :time => l(first_vjas.departure_time, :format => :hour)).gsub( / /, ' ') + :time => vehicle_departure(vehicle)) end def edit_vehicle_title( vehicle) return t('vehicle_journeys.edit.title_stopless') if vehicle.vehicle_journey_at_stops.empty? @@ -13,7 +41,7 @@ module VehicleJourneysHelper t('vehicle_journeys.edit.title', :name => vehicle.published_journey_name, :stop => first_vjas.stop_point.stop_area.name, - :time => l(first_vjas.departure_time, :format => :hour)).gsub( / /, ' ') + :time => vehicle_departure(vehicle)) end end diff --git a/app/views/vehicle_journeys/_time_filter.html.erb b/app/views/vehicle_journeys/_time_filter.html.erb new file mode 100644 index 000000000..0f1e8d439 --- /dev/null +++ b/app/views/vehicle_journeys/_time_filter.html.erb @@ -0,0 +1,11 @@ + <%= search_form_for @q, :url => referential_line_route_vehicle_journeys_path(@referential, @line, @route) do |f| %> + type="hidden" value="1"> + type="hidden" value="1"> + type="hidden" value="2000"> + <%= select_hour(@q.send( "vehicle_journey_at_stops_departure_time_gt") ? @q.send( "vehicle_journey_at_stops_departure_time_gt").hour : 0, + :prefix => "q", :field_name => "vehicle_journey_at_stops_departure_time_gt(4i)") %> + <%= select_minute(@q.send( "vehicle_journey_at_stops_departure_time_gt") ? @q.send( "vehicle_journey_at_stops_departure_time_gt").min : 0, + :prefix => "q", :field_name => "vehicle_journey_at_stops_departure_time_gt(5i)") %> + <%= f.submit t('.time_range_filter') %> + <% 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 index f6feab945..218027dae 100644 --- a/app/views/vehicle_journeys/_vehicle_journey_at_stop_fields.html.erb +++ b/app/views/vehicle_journeys/_vehicle_journey_at_stop_fields.html.erb @@ -1,6 +1,6 @@ <% vjas = vehicle_journey_at_stop %> - <%= (vehicle_journey_at_stop_counter%2==0) ? "odd" : "even" %>"> - + <%= (vehicle_journey_at_stop_counter%2==0) ? "odd" : "even" %>" > + <%= vjas.errors[:arrival_time].blank? ? "" : "invalid_position" %>"> <%= select_hour(vjas.arrival_time ? vjas.arrival_time.hour : 0, :prefix => "vehicle_journey", :field_name => "vehicle_journey_at_stops_attributes[#{vehicle_journey_at_stop_counter}][arrival_time(4i)]") %> <%= select_minute(vjas.arrival_time ? vjas.arrival_time.min : 0, :prefix => "vehicle_journey", :field_name => "vehicle_journey_at_stops_attributes[#{vehicle_journey_at_stop_counter}][arrival_time(5i)]") %> @@ -16,7 +16,7 @@ type="hidden" value="2000"> - + <%= vjas.errors[:departure_time].blank? ? "" : "invalid_position" %>"> <%= select_hour(vjas.departure_time ? vjas.departure_time.hour : 0, :prefix => "vehicle_journey", :field_name => "vehicle_journey_at_stops_attributes[#{vehicle_journey_at_stop_counter}][departure_time(4i)]") %> <%= select_minute(vjas.departure_time ? vjas.departure_time.min : 0, :prefix => "vehicle_journey", :field_name => "vehicle_journey_at_stops_attributes[#{vehicle_journey_at_stop_counter}][departure_time(5i)]") %> diff --git a/app/views/vehicle_journeys/index.html.erb b/app/views/vehicle_journeys/index.html.erb index c71b82824..dc0900b9e 100644 --- a/app/views/vehicle_journeys/index.html.erb +++ b/app/views/vehicle_journeys/index.html.erb @@ -23,14 +23,13 @@ - - <% @vehicle_journeys.each do |vj| %> - - <% end %> + + <% @vehicle_journeys.map(&:journey_pattern).each do |jp| %> + + <% end %> - + <% @vehicle_journeys.each do |vj| %> - + <% @vehicle_journeys.each do |vj| %> - + <% end %> @@ -49,7 +48,9 @@ <% @vehicle_journeys.each do |vj| %> - + <% end %> <% end %> @@ -57,20 +58,33 @@
Missions : <%= link_to vj.journey_pattern.published_name.blank? ? vj.journey_pattern.id: vj.journey_pattern.published_name.first(8), - [@referential, @line, @route, vj.journey_pattern]%><%= Chouette::JourneyPattern.model_name.human.pluralize %> :<%= link_to journey_name( jp), [@referential, @line, @route, jp] %>
Calendriers : <%= Chouette::TimeTable.model_name.human.pluralize %> : <%= time_tables_shortest_info( vj) %> @@ -38,9 +37,9 @@ <% end %>
Courses : <%= Chouette::VehicleJourney.model_name.human.pluralize %> : <%= link_to "c", [@referential, @line, @route, vj]%> <%= link_to vehicle_name(vj), [@referential, @line, @route, vj]%>
<%= sp.stop_area.name %><%= @matrix["#{vj.id}-#{sp.id}"] ? l( @matrix["#{vj.id}-#{sp.id}"].departure_time, :format => :hour) : "" %>"> + <%= (@matrix["#{vj.id}-#{sp.id}"] && @matrix["#{vj.id}-#{sp.id}"].departure_time) ? l( @matrix["#{vj.id}-#{sp.id}"].departure_time, :format => :hour) : "" %> +
<% content_for :sidebar do %> - -

<%= t(".selection") %>

+ +

<%= t(".selection") %>

+ +

<%= Chouette::JourneyPattern.model_name.human.pluralize %>

-

<%= Chouette::JourneyPattern.model_name.human.pluralize %>

+ + +

<%= Chouette::TimeTable.model_name.human.pluralize %>

+ + - diff --git a/app/views/vehicle_journeys/show.html.erb b/app/views/vehicle_journeys/show.html.erb index 06f6f0c9f..8570261dd 100644 --- a/app/views/vehicle_journeys/show.html.erb +++ b/app/views/vehicle_journeys/show.html.erb @@ -65,9 +65,9 @@ <% @vehicle_journey.vehicle_journey_at_stops.each_with_index do |vjas, index| %> "> - <%= vjas.arrival_time ? l( vjas.arrival_time, :format => :hour) : "" %> + "><%= vjas.arrival_time ? l( vjas.arrival_time, :format => :hour) : "" %> <%= link_to vjas.stop_point.stop_area.name, [@referential, vjas.stop_point.stop_area] %> - <%= vjas.departure_time ? l( vjas.departure_time, :format => :hour) : "" %> + "><%= vjas.departure_time ? l( vjas.departure_time, :format => :hour) : "" %> <% end %> diff --git a/config/locales/vehicle_journeys.yml b/config/locales/vehicle_journeys.yml index 12f94a191..879d375a7 100644 --- a/config/locales/vehicle_journeys.yml +++ b/config/locales/vehicle_journeys.yml @@ -31,6 +31,9 @@ en: vehicle_journeys: "Departure's times" selection: Filter on selection_all: All + time_range: Departure time threshold + time_filter: + time_range_filter: Filter activerecord: models: vehicle_journey: @@ -91,6 +94,9 @@ fr: vehicle_journeys: "Horaires de départ aux arrêts" selection: Filtrer sur selection_all: Tous + time_range: Seuil horaire au départ + time_filter: + time_range_filter: Filtrer activerecord: models: vehicle_journey: diff --git a/spec/views/vehicle_journeys/_vehicle_journey_at_stop_fields.html.erb_spec.rb b/spec/views/vehicle_journeys/_vehicle_journey_at_stop_fields.html.erb_spec.rb index 70b0fc4ef..f99d27119 100644 --- a/spec/views/vehicle_journeys/_vehicle_journey_at_stop_fields.html.erb_spec.rb +++ b/spec/views/vehicle_journeys/_vehicle_journey_at_stop_fields.html.erb_spec.rb @@ -49,9 +49,9 @@ describe "/vehicle_journeys/_vehicle_journey_at_stop_fields" do rendered.should have_selector("tr.no_stop") end end - context "for a destroyed vehicle_journey_at_stop" do + context "for a not destroyed vehicle_journey_at_stop" do before(:each) do - vehicle_journey_at_stop.stub!(:_destroy => true) + vehicle_journey_at_stop.stub!(:_destroy => false) end it "should not render tr.no_stop" do render_collection -- cgit v1.2.3