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 %> -
| Missions : | - <% @vehicle_journeys.each do |vj| %> -<%= 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]%> | - <% end %> +<%= Chouette::JourneyPattern.model_name.human.pluralize %> : | + <% @vehicle_journeys.map(&:journey_pattern).each do |jp| %> +<%= link_to journey_name( jp), [@referential, @line, @route, jp] %> | + <% end %>
|---|---|---|---|
| Calendriers : | +<%= Chouette::TimeTable.model_name.human.pluralize %> : | <% @vehicle_journeys.each do |vj| %><%= time_tables_shortest_info( vj) %> @@ -38,9 +37,9 @@ <% end %> | |
| Courses : | +<%= Chouette::VehicleJourney.model_name.human.pluralize %> : | <% @vehicle_journeys.each do |vj| %> -<%= link_to "c", [@referential, @line, @route, vj]%> | +<%= link_to vehicle_name(vj), [@referential, @line, @route, vj]%> | <% end %>
| <%= sp.stop_area.name %> | <% @vehicle_journeys.each do |vj| %> -<%= @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) : "" %> + | <% end %>