diff options
19 files changed, 186 insertions, 95 deletions
| diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 74e680a68..1ae76cd05 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -23,12 +23,11 @@  //= require footable/footable.paginate  //= require footable/footable.sort  //= require tools -//= require datatables -//= require datatables-fixedcolumns  //= require_directory ./plugins  //= require_directory .  //= require_directory ./stop_areas  //= require_directory ./vehicle_journeys +//= require_directory ./vehicle_journey_frequencies  //= require_directory ./import_tasks  //= require_directory ./compliance_check_tasks  //= require_directory ./compliance_checks diff --git a/app/assets/javascripts/vehicle_journey_frequencies.js.coffee b/app/assets/javascripts/vehicle_journey_frequencies.js.coffee index 020283116..e69de29bb 100644 --- a/app/assets/javascripts/vehicle_journey_frequencies.js.coffee +++ b/app/assets/javascripts/vehicle_journey_frequencies.js.coffee @@ -1,13 +0,0 @@ -(($) -> -  $ -> -    $('.ce-VehicleJourneyFrequencyTableBlock').dataTable -      searching: false, -      ordering: false, -      paging: false, -      scrollX: true, -      fixedColumns: true, -      bInfo: false -    window.setTimeout('$( ".dataTables_scrollBody" ).animate({scrollLeft: 100}, 500).animate({scrollLeft: 0}, 500)', 1000) -    return -  return -) jQuery diff --git a/app/assets/javascripts/vehicle_journey_frequencies/index.js.coffee b/app/assets/javascripts/vehicle_journey_frequencies/index.js.coffee new file mode 100644 index 000000000..4f4fccc18 --- /dev/null +++ b/app/assets/javascripts/vehicle_journey_frequencies/index.js.coffee @@ -0,0 +1,4 @@ +$(".vehicle_journey_frequencies.index").ready -> +  $( 'body' ).popover({html: true, trigger: "click", selector: '[rel="popover"]'}).on("show.bs.popover", (event)-> +    $('[aria-describedby]').click() +    $(event.target).data("bs.popover").tip().css("maxWidth", "350px")) diff --git a/app/assets/javascripts/vehicle_journeys/index.js.coffee b/app/assets/javascripts/vehicle_journeys/index.js.coffee index e21580f4e..02de558d4 100644 --- a/app/assets/javascripts/vehicle_journeys/index.js.coffee +++ b/app/assets/javascripts/vehicle_journeys/index.js.coffee @@ -1,4 +1,4 @@ -$(".vehicle_journeys.index, .vehicle_journey_frequencies.index").ready -> +$(".vehicle_journeys.index").ready ->    $( 'body' ).popover({html: true, trigger: "focus", selector: 'thead th button'})    .on("show.bs.popover", (event)-> diff --git a/app/assets/stylesheets/application.css.scss.erb b/app/assets/stylesheets/application.css.scss.erb index f29ca4738..770e3c82b 100644 --- a/app/assets/stylesheets/application.css.scss.erb +++ b/app/assets/stylesheets/application.css.scss.erb @@ -30,8 +30,6 @@ $body-bg: #eee;  @import "formtastic";  @import 'eonasdan-bootstrap-datetimepicker';  @import 'footable'; -@import 'datatables'; -@import 'datatables-fixedcolumns';  @import "vendor/openlayers_style";  @import "vendor/openlayers_ie6-style"; diff --git a/app/assets/stylesheets/main/vehicle_journey_frequencies.scss b/app/assets/stylesheets/main/vehicle_journey_frequencies.scss index 911a3f267..f973de209 100644 --- a/app/assets/stylesheets/main/vehicle_journey_frequencies.scss +++ b/app/assets/stylesheets/main/vehicle_journey_frequencies.scss @@ -103,4 +103,51 @@    .ce-VehicleJourneyFrequencyTableBlock {      margin: 0 !important;    } +  .ce-VehicleJourneyFrequenciesMatrix { +    margin: 0; +    padding: 0; +    > li { +      background-color: #eee; +      height: 22px; +      margin-bottom: 20px; +      position: relative; +      > ul { +        margin: 0; +        padding: 0; +        > li { +          cursor: pointer; +          position: absolute; +          padding: 0 2px; +          top: 0; +          bottom: 0; +          background-color: $brand-primary; +          border-left: 1px solid #000; +          border-right: 1px solid #000; +          &:hover { +            z-index: 9999; +            background-color: #4d7809; +            top: -2px; +            bottom: -2px; +            > span { +              display: block; +            } +          } +        } +      } +    } +  } +  .ce-VehicleJourneyFrequenciesMatrix-firstDepartureTime, +  .ce-VehicleJourneyFrequenciesMatrix-lastDepartureTime { +    display: none; +    position: absolute; +    top: -13px; +    font-size: 11px; +    color: #262626; +  } +  .ce-VehicleJourneyFrequenciesMatrix-firstDepartureTime { +    left: -32px; +  } +  .ce-VehicleJourneyFrequenciesMatrix-lastDepartureTime { +    right: -32px; +  }  } diff --git a/app/assets/stylesheets/vendor/bootstrap_changes.css.scss b/app/assets/stylesheets/vendor/bootstrap_changes.css.scss index 67cf90ae4..6e2ccc1f6 100644 --- a/app/assets/stylesheets/vendor/bootstrap_changes.css.scss +++ b/app/assets/stylesheets/vendor/bootstrap_changes.css.scss @@ -11,6 +11,7 @@      span.included_day_type {          color: black; +        font-weight: bold;      }      span.excluded_day_type {      } @@ -32,3 +33,26 @@          color: $brand-success;      }  } +.popover-title { +  display: table; +  width: 100%; +  > a { +    display: table-cell; +    vertical-align: top; +    &:first-child { +      padding-right: 10px; +    } +    &:last-child { +      width: 32px; +    } +  } +} +.popover-content { +  > ul { +    margin: 0; +    padding: 0; +    > li { +      list-style: none !important; +    } +  } +} diff --git a/app/helpers/vehicle_journey_frequencies_helper.rb b/app/helpers/vehicle_journey_frequencies_helper.rb index 5d62aaf7f..237c9b371 100644 --- a/app/helpers/vehicle_journey_frequencies_helper.rb +++ b/app/helpers/vehicle_journey_frequencies_helper.rb @@ -1,2 +1,9 @@  module VehicleJourneyFrequenciesHelper +  def journey_frequency_percent(journey_frequency) +    base = 100.0 / 2359.0 +    left = base * journey_frequency.first_departure_time.strftime("%H%M").to_i +    right = base * journey_frequency.last_departure_time.strftime("%H%M").to_i +    width = right - left +    [left.round(2), width.round(2)] +  end  end diff --git a/app/helpers/vehicle_journeys_helper.rb b/app/helpers/vehicle_journeys_helper.rb index 9b4f055a1..c5f3242be 100644 --- a/app/helpers/vehicle_journeys_helper.rb +++ b/app/helpers/vehicle_journeys_helper.rb @@ -25,12 +25,20 @@ module VehicleJourneysHelper      l(departure_time, :format => :hour).gsub( /  /, ' ')    end -  def vehicle_title(vehicle, departure_time=nil) +  def vehicle_title(vehicle, journey_frequency=nil)      return t("vehicle_journeys.vehicle_journey#{'_frequency' if vehicle.frequency?}.title_stopless", :name => vehicle_name( vehicle)) if vehicle.vehicle_journey_at_stops.empty?      first_vjas = vehicle.vehicle_journey_at_stops.first -    t("vehicle_journeys.vehicle_journey#{'_frequency' if vehicle.frequency?}.title", -          :stop => first_vjas.stop_point.stop_area.name, -          :time => vehicle_departure(vehicle, departure_time)) +    if vehicle.frequency? && journey_frequency +      t("vehicle_journeys.vehicle_journey_frequency.title_frequency", +        :interval => l(journey_frequency.scheduled_headway_interval, format: :hour), +        :stop => first_vjas.stop_point.stop_area.name, +        :time_first => vehicle_departure(nil, journey_frequency.first_departure_time), +        :time_last => vehicle_departure(nil, journey_frequency.last_departure_time)) +    else +      t("vehicle_journeys.vehicle_journey#{'_frequency' if vehicle.frequency?}.title", +            :stop => first_vjas.stop_point.stop_area.name, +            :time => vehicle_departure(vehicle, (journey_frequency ? journey_frequency.first_departure_time : nil ))) +    end    end    def edit_vehicle_title( vehicle) diff --git a/app/views/vehicle_journey_frequencies/_vehicle_journeys_matrix.html.erb b/app/views/vehicle_journey_frequencies/_vehicle_journeys_matrix.html.erb index c915e4f54..c023f9cfb 100644 --- a/app/views/vehicle_journey_frequencies/_vehicle_journeys_matrix.html.erb +++ b/app/views/vehicle_journey_frequencies/_vehicle_journeys_matrix.html.erb @@ -1,41 +1,22 @@ -<table class="table table-hover table-striped ce-VehicleJourneyFrequencyTableBlock"> -  <thead> -    <tr> -      <th class="title"> -        <button data-style="primary" data-container="body" rel="popover" data-toggle="popover" title='<%= t(".line_routes") %>' -                data-placement="top" data-content='<%= render( partial: "vehicle_journeys/route_popover", :locals => { :selected_route => @route }) %>' -                class="route_popover btn btn-default btn-sm"> -          <i class='fa fa-search'></i> -          <%= Chouette::Route.model_name.human.capitalize %> -        </button> -      </th> -      <% @matrix.each do |departure_time, vj| %> -        <th class="vehicle_journey"> -          <button data-style="primary" data-container="body" rel="popover" data-toggle="popover" -                  data-title='<%= link_to(vehicle_title(vj, departure_time), [@referential, @line, @route, vj] ) %> -                  <%= link_to('<span class="fa fa-pencil"></span>'.html_safe, -                              send("edit_referential_line_route_vehicle_journey#{'_frequency' if vj.frequency?}_path", @referential, @line, @route, vj), -                              :class => "btn btn-default btn-sm" ) %>' -                  data-placement= "top" -                  data-content='<%= render( partial: "vehicle_journeys/show_popover", :locals => { :vehicle_journey => vj }) %>' -                  class="vehicle_journey_popover btn btn-default btn-sm"> -            <i class='fa fa-search'></i> -          </button> -        </th> +<ul class="ce-VehicleJourneyFrequenciesMatrix"> +<% @vehicle_journeys.each do |vj| %> +  <li> +    <ul> +      <% vj.journey_frequencies.each do |jf| %> +        <% left, width = journey_frequency_percent(jf) %> +        <li style="left:<%= left %>%;width:<%= width %>%" +            data-style="primary" data-container="body" rel="popover" data-toggle="popover" +            data-title='<%= link_to(vehicle_title(vj, jf), [@referential, @line, @route, vj] ) %> +                        <%= link_to('<span class="fa fa-pencil"></span>'.html_safe, +                                    send("edit_referential_line_route_vehicle_journey#{'_frequency' if vj.frequency?}_path", @referential, @line, @route, vj), +                                    :class => "btn btn-default btn-sm" ) %>' +            data-placement= "top" +            data-content='<%= render 'vehicle_journeys/show_popover', { vehicle_journey: vj } %>'> +          <span class="ce-VehicleJourneyFrequenciesMatrix-firstDepartureTime"><%= l(jf.first_departure_time, format: :hour) %></span> +          <span class="ce-VehicleJourneyFrequenciesMatrix-lastDepartureTime"><%= l(jf.last_departure_time, format: :hour) %></span> +        </li>        <% end %> -    </tr> -  </thead> -  <tbody> -    <% @matrix_interval = Chouette::VehicleJourneyFrequency.matrix_interval(@matrix) %> -    <% @route.stop_points.each do |sp| %> -      <tr class="<%= cycle('odd', 'even') %>"> -        <td class="stop_area"><%= sp.stop_area.name %></td> -        <% @matrix.each do |departure_time, vj| %> -          <% next unless @matrix_interval[sp.id] %> -          <% vjas = @matrix_interval[sp.id][departure_time.to_i] %> -          <td><%= (vjas && vjas.departure_time) ? l( vjas.departure_time, format: :hour) : '--' %></td> -        <% end %> -      </tr> -    <% end %> -  </tbody> -</table> +    </ul> +  </li> +<% end %> +</ul> diff --git a/app/views/vehicle_journey_frequencies/_vehicle_journeys_page_info.html.erb b/app/views/vehicle_journey_frequencies/_vehicle_journeys_page_info.html.erb deleted file mode 100644 index fe3ae29e0..000000000 --- a/app/views/vehicle_journey_frequencies/_vehicle_journeys_page_info.html.erb +++ /dev/null @@ -1 +0,0 @@ -<span class="search"> <%= t("will_paginate.page_entries_info.search") %></span> <%= page_entries_info @vehicle_journeys %> <%= t('.with_matrix_size', matrix_size: @matrix.size) %> diff --git a/app/views/vehicle_journeys/_vehicle_journeys.html.erb b/app/views/vehicle_journeys/_vehicle_journeys.html.erb index 8dc2a74ef..9d553e48b 100644 --- a/app/views/vehicle_journeys/_vehicle_journeys.html.erb +++ b/app/views/vehicle_journeys/_vehicle_journeys.html.erb @@ -1,5 +1,6 @@  <div class="page_info"> -  <%= render 'vehicle_journeys_page_info' %> +  <span class="search"><%= t("will_paginate.page_entries_info.search") %></span> +  <%= page_entries_info @vehicle_journeys %>  </div>  <div class="pagination">    <%= will_paginate @vehicle_journeys, :container => false, renderer: RemoteBootstrapPaginationLinkRenderer %> diff --git a/app/views/vehicle_journeys/_vehicle_journeys_page_info.html.erb b/app/views/vehicle_journeys/_vehicle_journeys_page_info.html.erb deleted file mode 100644 index 30b389ee3..000000000 --- a/app/views/vehicle_journeys/_vehicle_journeys_page_info.html.erb +++ /dev/null @@ -1 +0,0 @@ -<span class="search"> <%= t("will_paginate.page_entries_info.search") %></span> <%= page_entries_info @vehicle_journeys %> diff --git a/app/views/vehicle_journeys/index.html.erb b/app/views/vehicle_journeys/index.html.erb index 13126b2e1..3fd123c79 100644 --- a/app/views/vehicle_journeys/index.html.erb +++ b/app/views/vehicle_journeys/index.html.erb @@ -14,30 +14,31 @@    <div id="advanced_search" class="panel-collapse collapse">      <div class="panel-body">        <div> -      <%= f.label :time_tables_id_not_eq, "Sans calendrier" %> -      <%= f.check_box :time_tables_id_not_eq %> +        <%= f.label :time_tables_id_not_eq, "Sans calendrier" %> +        <%= f.check_box :time_tables_id_not_eq %> -      <span class="time_tables_id_eq"> -        <%= f.label :time_tables_id_eq, "Sélectionner calendriers" %> -        <%= f.text_field :time_tables_id_eq, :input_html => { :"data-pre" => [].to_json} %> -      </span> +        <span class="time_tables_id_eq"> +          <%= f.label :time_tables_id_eq, "Sélectionner calendriers" %> +          <%= f.text_field :time_tables_id_eq, :input_html => { :"data-pre" => [].to_json} %> +        </span>        </div> +      <% if controller_name != 'vehicle_journey_frequencies' %> +        <div> +          <%= f.label :vehicle_journey_at_stops_departure_time_not_eq, "Sans horaire" %> +          <%= f.check_box :vehicle_journey_at_stops_departure_time_not_eq %> -      <div> -      <%= f.label :vehicle_journey_at_stops_departure_time_not_eq, "Sans horaire" %> -      <%= f.check_box :vehicle_journey_at_stops_departure_time_not_eq %> - -      <span class="vehicle_journey_at_stops_departure_time_gt"> -        <input name=<%= "q[vehicle_journey_at_stops_departure_time_gt(3i)]" %> type="hidden" value="1"> -        <input name=<%= "q[vehicle_journey_at_stops_departure_time_gt(2i)]" %> type="hidden" value="1"> -        <input name=<%= "q[vehicle_journey_at_stops_departure_time_gt(1i)]" %> type="hidden" value="2000"> -        <%= f.label :vehicle_journey_at_stops_departure_time_gt, t('.time_range') %> -        <%= 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)") %> -      </span> -      </div> +          <span class="vehicle_journey_at_stops_departure_time_gt"> +            <input name=<%= "q[vehicle_journey_at_stops_departure_time_gt(3i)]" %> type="hidden" value="1"> +            <input name=<%= "q[vehicle_journey_at_stops_departure_time_gt(2i)]" %> type="hidden" value="1"> +            <input name=<%= "q[vehicle_journey_at_stops_departure_time_gt(1i)]" %> type="hidden" value="2000"> +            <%= f.label :vehicle_journey_at_stops_departure_time_gt, t('.time_range') %> +            <%= 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)") %> +          </span> +        </div> +      <% end %>      </div>    </div>  </div> diff --git a/config/locales/vehicle_journeys.en.yml b/config/locales/vehicle_journeys.en.yml index b70ddb025..6e8aba661 100644 --- a/config/locales/vehicle_journeys.en.yml +++ b/config/locales/vehicle_journeys.en.yml @@ -8,6 +8,7 @@ en:      vehicle_journey_frequency:        title_stopless: "Vehicle journey frequency %{name}"        title: "Vehicle journey frequency leaving from %{stop} at %{time}" +      title_frequency: "Vehicle journey frequency with %{interval}min leaving from %{stop} at %{time_first} to %{time_last}"      actions:        index: "Vehicle time's board"        new: "Add a new timed vehicle journey" diff --git a/config/locales/vehicle_journeys.fr.yml b/config/locales/vehicle_journeys.fr.yml index eda76bde6..b9f155153 100644 --- a/config/locales/vehicle_journeys.fr.yml +++ b/config/locales/vehicle_journeys.fr.yml @@ -8,6 +8,7 @@ fr:      vehicle_journey_frequency:        title_stopless: "Course à fréquence %{name}"        title: "Course à fréquence partant de %{stop} à %{time}" +      title_frequency: "Course à fréquence de %{interval}min partant de %{stop} de %{time_first} à %{time_last}"      actions:        index: "Horaires des courses"        new: "Ajouter une course à horaire" diff --git a/spec/models/gtfs_export_spec.rb b/spec/models/gtfs_export_spec.rb index 6051497a7..ccc98e872 100644 --- a/spec/models/gtfs_export_spec.rb +++ b/spec/models/gtfs_export_spec.rb @@ -11,7 +11,7 @@ describe GtfsExport, :type => :model do        end        it "should be mandatory" do -        subject.should validate_presence_of(:time_zone) +        should validate_presence_of(:time_zone)        end      end @@ -23,7 +23,7 @@ describe GtfsExport, :type => :model do        end        it "should be mandatory" do -        subject.should_not validate_presence_of(:time_zone) +        should_not validate_presence_of(:time_zone)        end      end diff --git a/spec/views/vehicle_journeys/_form.html.erb_spec.rb b/spec/views/vehicle_journeys/_form.html.erb_spec.rb index ab1d946bf..05fa068d9 100644 --- a/spec/views/vehicle_journeys/_form.html.erb_spec.rb +++ b/spec/views/vehicle_journeys/_form.html.erb_spec.rb @@ -8,7 +8,11 @@ describe "/vehicle_journeys/_form", :type => :view do    let!(:vehicle_journey) { assign :vehicle_journey, create(:vehicle_journey, :route => route) }    it "should render an input for transport_mode" do -    render +    render partial: 'vehicle_journeys/form', +           locals: { vehicle_journey: vehicle_journey, form_url: referential_line_route_vehicle_journeys_path(referential, +                                                                                                              line, +                                                                                                              route, +                                                                                                              vehicle_journey) }      expect(rendered).to have_selector( "select#vehicle_journey_transport_mode_name") do |node|        Chouette::Line.transport_modes.each do |mode|          expect(node).to have_selector("option", :text => mode.text_code) @@ -17,14 +21,22 @@ describe "/vehicle_journeys/_form", :type => :view do    end    it "should render an input for comment" do -    render +    render partial: 'vehicle_journeys/form', +           locals: { vehicle_journey: vehicle_journey, form_url: referential_line_route_vehicle_journeys_path(referential, +                                                                                                              line, +                                                                                                              route, +                                                                                                              vehicle_journey) }      expect(rendered).to 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 +      render partial: 'vehicle_journeys/form', +             locals: { vehicle_journey: vehicle_journey, form_url: referential_line_route_vehicle_journeys_path(referential, +                                                                                                                line, +                                                                                                                route, +                                                                                                                vehicle_journey) }        expect(rendered).to have_selector("form") do |form_node|           vehicle_journey.stop_points.each do |sp|            form_node.with_selector "label", :text => sp.stop_area.name @@ -32,12 +44,20 @@ describe "/vehicle_journeys/_form", :type => :view do        end      end      it "renders _vehicle_journey_at_stop_fields partial for each vehicle_journey_at_stop" do -      render +      render partial: 'vehicle_journeys/form', +             locals: { vehicle_journey: vehicle_journey, form_url: referential_line_route_vehicle_journeys_path(referential, +                                                                                                                line, +                                                                                                                route, +                                                                                                                vehicle_journey) }        expect(view).to render_template(:partial => "_vehicle_journey_at_stop_fields", :count => vehicle_journey.vehicle_journey_at_stops.count)      end      it "should render vehicle_journey_at_stop's departure time" do -      render +      render partial: 'vehicle_journeys/form', +             locals: { vehicle_journey: vehicle_journey, form_url: referential_line_route_vehicle_journeys_path(referential, +                                                                                                                line, +                                                                                                                route, +                                                                                                                vehicle_journey) }        expect(rendered).to 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)]" @@ -48,7 +68,11 @@ describe "/vehicle_journeys/_form", :type => :view do    end    context "when existing vehicle_journey" do      it "should display objectid not as an input" do -      render +      render partial: 'vehicle_journeys/form', +             locals: { vehicle_journey: vehicle_journey, form_url: referential_line_route_vehicle_journeys_path(referential, +                                                                                                                line, +                                                                                                                route, +                                                                                                                vehicle_journey) }        expect(rendered).to have_selector("form") do           with_selector "input[type=text][objectid=][disabled=true]", vehicle_journey.objectid        end @@ -57,7 +81,11 @@ describe "/vehicle_journeys/_form", :type => :view do    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 +      render partial: 'vehicle_journeys/form', +             locals: { vehicle_journey: vehicle_journey, form_url: referential_line_route_vehicle_journeys_path(referential, +                                                                                                                line, +                                                                                                                route, +                                                                                                                vehicle_journey) }        expect(rendered).to have_selector("form") do           with_selector "input[type=text][objectid=][disabled=false]", vehicle_journey.objectid        end diff --git a/spec/views/vehicle_journeys/_vehicle_journey.html.erb_spec.rb b/spec/views/vehicle_journeys/_vehicle_journey.html.erb_spec.rb new file mode 100644 index 000000000..e1c61c4a7 --- /dev/null +++ b/spec/views/vehicle_journeys/_vehicle_journey.html.erb_spec.rb @@ -0,0 +1,6 @@ +require 'spec_helper' + +describe "/vehicle_journeys/_vehicle_journey", :type => :view do + +  assign_referential +end | 
