aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBruno Perles2015-10-29 10:35:59 +0100
committerBruno Perles2015-10-29 10:35:59 +0100
commitbbdbdaee9ef0c126d6117be11708a7cd192b20d6 (patch)
tree1a235b76d30bde6561440546df14aa4af0c15b32
parent5b4136b2907ffc918210495d8f9a29c1e7d681fb (diff)
downloadchouette-core-bbdbdaee9ef0c126d6117be11708a7cd192b20d6.tar.bz2
Add vehicle_journey_frequency form with time band
-rw-r--r--app/assets/stylesheets/main/layout.css.scss2
-rw-r--r--app/assets/stylesheets/main/vehicle_journey_frequencies.scss19
-rw-r--r--app/controllers/vehicle_journey_frequencies_controller.rb16
-rw-r--r--app/controllers/vehicle_journeys_controller.rb6
-rw-r--r--app/helpers/breadcrumb_helper.rb2
-rw-r--r--app/presenters/timeband_presenter.rb15
-rw-r--r--app/views/vehicle_journey_frequencies/_form_footer.html.erb13
-rw-r--r--app/views/vehicle_journey_frequencies/_form_vehicle_journey_at_stops.html.erb16
-rw-r--r--app/views/vehicle_journey_frequencies/_journey_frequency_fields.html.erb2
-rw-r--r--app/views/vehicle_journey_frequencies/_show_journey_frequencies.html.erb28
-rw-r--r--app/views/vehicle_journey_frequencies/_show_sidebar.html.erb31
-rw-r--r--app/views/vehicle_journey_frequencies/_show_vehicle_journey_at_stops.html.erb29
-rw-r--r--app/views/vehicle_journey_frequencies/_vehicle_journey_at_stop_fields.html.erb40
-rw-r--r--app/views/vehicle_journey_frequencies/edit.html.erb6
-rw-r--r--app/views/vehicle_journey_frequencies/edit.js.erb10
-rw-r--r--app/views/vehicle_journey_frequencies/new.html.erb5
-rw-r--r--app/views/vehicle_journey_frequencies/new.js.erb18
-rw-r--r--app/views/vehicle_journey_frequencies/select_journey_pattern.js.erb12
-rw-r--r--app/views/vehicle_journey_frequencies/show.html.erb3
-rw-r--r--app/views/vehicle_journeys/_show_details.html.erb87
-rw-r--r--app/views/vehicle_journeys/new.html.erb2
-rw-r--r--app/views/vehicle_journeys/show.html.erb89
-rw-r--r--config/locales/journey_frequencies.en.yml1
-rw-r--r--config/locales/journey_frequencies.fr.yml1
-rw-r--r--config/locales/vehicle_journeys.en.yml1
-rw-r--r--config/locales/vehicle_journeys.fr.yml1
-rw-r--r--db/migrate/20151028105423_add_timeband_id_to_journey_frequencies.ninoxe_engine.rb6
-rw-r--r--db/schema.rb4
28 files changed, 295 insertions, 170 deletions
diff --git a/app/assets/stylesheets/main/layout.css.scss b/app/assets/stylesheets/main/layout.css.scss
index 556ed5116..aac5846c5 100644
--- a/app/assets/stylesheets/main/layout.css.scss
+++ b/app/assets/stylesheets/main/layout.css.scss
@@ -18,7 +18,7 @@ ol.breadcrumb{
}
.ce-hide {
- visibility: hidden;
+ display: none;
}
#middle{
diff --git a/app/assets/stylesheets/main/vehicle_journey_frequencies.scss b/app/assets/stylesheets/main/vehicle_journey_frequencies.scss
index 5ca5f64e7..4d580f35d 100644
--- a/app/assets/stylesheets/main/vehicle_journey_frequencies.scss
+++ b/app/assets/stylesheets/main/vehicle_journey_frequencies.scss
@@ -1,16 +1,13 @@
#workspace {
.ce-TimeBandFormTable {
- display: none;
- }
- .ce-TimeBandFormTable {
.btn {
white-space: normal;
width: 130px;
}
}
.ce-TimeBandFormTable th {
- text-align: center;
- padding-bottom: 10px;
+ text-align: left;
+ padding: 6px 20px 6px 20px;
}
.ce-TimeBandFormTable td {
padding: 6px 20px 6px 20px;
@@ -18,10 +15,6 @@
.ce-TimeBandFormTable td {
vertical-align: middle;
}
- .ce-TimeBandFormTable td:last-child {
- text-align: right;
- padding-right: 4px;
- }
.ce-TimeBandFormTable-circleLine {
position: relative;
}
@@ -35,10 +28,10 @@
margin-left: -1px;
background-color: #61970b;
}
- .ce-TimeBandFormTable tr:first-child td .ce-TimeBandFormTable-line:after {
+ tr:first-child td .ce-TimeBandFormTable-line:after {
top: 50%;
}
- .ce-TimeBandFormTable tr:last-child td .ce-TimeBandFormTable-line:after {
+ tr:last-child td .ce-TimeBandFormTable-line:after {
bottom: 50%;
}
.ce-TimeBandFormTable-circle {
@@ -50,7 +43,7 @@
border-radius: 8px;
background-color: #4d7809;
}
- .ce-TimeBandFormTable tr:hover .ce-TimeBandFormTable-circle {
+ tr:hover .ce-TimeBandFormTable-circle {
background-color: #fff;
border: 2px solid #61970b;
}
@@ -91,7 +84,7 @@
}
}
}
- form.vehicle_journey_frequency {
+ &.vehicle_journey_frequencies {
.actions-add-fields {
clear: both;
padding-left: 25%;
diff --git a/app/controllers/vehicle_journey_frequencies_controller.rb b/app/controllers/vehicle_journey_frequencies_controller.rb
index 72f1fc7f5..c12400775 100644
--- a/app/controllers/vehicle_journey_frequencies_controller.rb
+++ b/app/controllers/vehicle_journey_frequencies_controller.rb
@@ -2,5 +2,19 @@ class VehicleJourneyFrequenciesController < VehicleJourneysController
defaults resource_class: Chouette::VehicleJourneyFrequency
-end
+ private
+ def vehicle_journey_frequency_params
+ params.require(:vehicle_journey_frequency).permit( { footnote_ids: [] } , :journey_pattern_id, :number, :published_journey_name,
+ :published_journey_identifier, :comment, :transport_mode_name,
+ :mobility_restricted_suitability, :flexible_service, :status_value,
+ :facility, :vehicle_type_identifier, :objectid, :time_table_tokens,
+ { date: [ :hour, :minute ] }, :button, :referential_id, :line_id,
+ :route_id, :id, { vehicle_journey_at_stops_attributes: [ :arrival_time,
+ :id, :_destroy,
+ :stop_point_id,
+ :departure_time] },
+ { journey_frequencies_attributes: [ :id, :_destroy, :scheduled_headway_interval, :first_departure_time,
+ :last_departure_time, :exact_time, :timeband_id ] } )
+ end
+end
diff --git a/app/controllers/vehicle_journeys_controller.rb b/app/controllers/vehicle_journeys_controller.rb
index 2c2a533aa..0c64f0b2c 100644
--- a/app/controllers/vehicle_journeys_controller.rb
+++ b/app/controllers/vehicle_journeys_controller.rb
@@ -95,11 +95,7 @@ class VehicleJourneysController < ChouetteController
:route_id, :id, { vehicle_journey_at_stops_attributes: [ :arrival_time,
:id, :_destroy,
:stop_point_id,
- :departure_time,
- :is_frequency] },
- { journey_frequencies_attributes: [ :scheduled_headway_interval, :first_departure_time,
- :last_departure_time,
- :exact_time ] } )
+ :departure_time] } )
end
end
diff --git a/app/helpers/breadcrumb_helper.rb b/app/helpers/breadcrumb_helper.rb
index cb259baf7..52da8b887 100644
--- a/app/helpers/breadcrumb_helper.rb
+++ b/app/helpers/breadcrumb_helper.rb
@@ -137,7 +137,7 @@ module BreadcrumbHelper
def vehicle_journey_frequency_breadcrumb(action)
route_breadcrumb :edit
add_breadcrumb I18n.t("breadcrumbs.vehicle_journey_frequencies"), referential_line_route_vehicle_journey_frequencies_path(@referential, @line, @route) unless action == :index
- add_breadcrumb breadcrumb_label(@vehicle_journey), referential_line_route_vehicle_journey_frequency_path(@referential, @line,@route, @vehicle_journey),:title => breadcrumb_tooltip(@vehicle_journey) if action == :edit
+ add_breadcrumb breadcrumb_label(@vehicle_journey_frequency), referential_line_route_vehicle_journey_frequency_path(@referential, @line,@route, @vehicle_journey_frequency),:title => breadcrumb_tooltip(@vehicle_journey_frequency) if action == :edit
end
def vehicle_journey_import_breadcrumb (action)
diff --git a/app/presenters/timeband_presenter.rb b/app/presenters/timeband_presenter.rb
new file mode 100644
index 000000000..62a29faf5
--- /dev/null
+++ b/app/presenters/timeband_presenter.rb
@@ -0,0 +1,15 @@
+class TimebandPresenter
+
+ def initialize(timeband)
+ @timeband = timeband
+ end
+
+ def title
+ if @timeband.name.blank?
+ "#{I18n.l(@timeband.start_time, format: :hour)}-#{I18n.l(@timeband.end_time, format: :hour)}"
+ else
+ @timeband.name
+ end
+ end
+
+end
diff --git a/app/views/vehicle_journey_frequencies/_form_footer.html.erb b/app/views/vehicle_journey_frequencies/_form_footer.html.erb
index 35c797a46..d38f8af0e 100644
--- a/app/views/vehicle_journey_frequencies/_form_footer.html.erb
+++ b/app/views/vehicle_journey_frequencies/_form_footer.html.erb
@@ -1,5 +1,14 @@
<% if vehicle_journey.new_record? %>
- <%= javascript_include_tag new_referential_line_route_vehicle_journey_frequency_path(@referential, @line, @route, :format => :js) %>
+ <%= javascript_include_tag new_referential_line_route_vehicle_journey_frequency_path(
+ @referential,
+ @line,
+ @route,
+ format: :js) %>
<% else %>
- <%= javascript_include_tag edit_referential_line_route_vehicle_journey_frequency_path(@referential, @line, @route, vehicle_journey, :format => :js) %>
+ <%= javascript_include_tag edit_referential_line_route_vehicle_journey_frequency_path(
+ @referential,
+ @line,
+ @route,
+ vehicle_journey,
+ format: :js) %>
<% end %>
diff --git a/app/views/vehicle_journey_frequencies/_form_vehicle_journey_at_stops.html.erb b/app/views/vehicle_journey_frequencies/_form_vehicle_journey_at_stops.html.erb
index 558abf0cf..7f503e547 100644
--- a/app/views/vehicle_journey_frequencies/_form_vehicle_journey_at_stops.html.erb
+++ b/app/views/vehicle_journey_frequencies/_form_vehicle_journey_at_stops.html.erb
@@ -1,5 +1,5 @@
<li class="input">
- <%= form.label vehicle_journey.human_attribute_name(:vehicle_journey_at_stop_ids), :class => "label" %>
+ <%= form.label vehicle_journey.human_attribute_name(:vehicle_journey_at_stop_ids), class: 'label' %>
<table class="table-striped ce-TimeBandFormTable">
<thead>
<tr>
@@ -16,9 +16,9 @@
</tr>
</thead>
<tbody class="journey_pattern_dependent_list">
- <%= render :partial => 'vehicle_journey_at_stop_fields',
- :collection => vehicle_journey.vehicle_journey_at_stops, :as => :vehicle_journey_at_stop,
- :locals => { :vehicle_journey_at_stops_size => vehicle_journey.vehicle_journey_at_stops.size } %>
+ <%= render partial: 'vehicle_journey_at_stop_fields',
+ collection: vehicle_journey.vehicle_journey_at_stops, as: :vehicle_journey_at_stop,
+ locals: { vehicle_journey_at_stops_size: vehicle_journey.vehicle_journey_at_stops.size } %>
</tbody>
<tfoot>
<tr>
@@ -41,17 +41,17 @@
</li>
<li class="input">
- <%= form.label vehicle_journey.human_attribute_name(:journey_frequency_ids), :class => "label" %>
+ <%= form.label vehicle_journey.human_attribute_name(:journey_frequency_ids), class: 'label' %>
<ul class="ce-FrequencyFormFields">
- <li>Plages horaires</li>
+ <li><%= t('activerecord.attributes.journey_frequency.timeband') %></li>
<li><%= t('activerecord.attributes.journey_frequency.first_departure_time') %></li>
<li><%= t('activerecord.attributes.journey_frequency.last_departure_time') %></li>
<li><%= t('activerecord.attributes.journey_frequency.scheduled_headway_interval') %></li>
<li></li>
<li></li>
</ul>
- <% form.semantic_fields_for :journey_frequencies do |journey_frequency| %>
- <%= render 'journey_frequency_fields', f: journey_frequency %>
+ <%= form.semantic_fields_for :journey_frequencies do |journey_frequency| %>
+ <%= render 'journey_frequency_fields', f: journey_frequency %>
<% end %>
<div class="actions-add-fields">
<%= link_to_add_association t('journey_frequencies.form.add_line'), form, :journey_frequencies, class: 'btn btn-primary' %>
diff --git a/app/views/vehicle_journey_frequencies/_journey_frequency_fields.html.erb b/app/views/vehicle_journey_frequencies/_journey_frequency_fields.html.erb
index 5d1f923c9..3a944e53e 100644
--- a/app/views/vehicle_journey_frequencies/_journey_frequency_fields.html.erb
+++ b/app/views/vehicle_journey_frequencies/_journey_frequency_fields.html.erb
@@ -1,6 +1,6 @@
<div class="nested-fields">
<ul class="ce-FrequencyFormFields">
- <li>...</li>
+ <%= f.input :timeband, collection: Chouette::Timeband.all, label: false %>
<%= f.input :first_departure_time, label: false %>
<%= f.input :last_departure_time, label: false %>
<%= f.input :scheduled_headway_interval, label: false %>
diff --git a/app/views/vehicle_journey_frequencies/_show_journey_frequencies.html.erb b/app/views/vehicle_journey_frequencies/_show_journey_frequencies.html.erb
new file mode 100644
index 000000000..df12a4f50
--- /dev/null
+++ b/app/views/vehicle_journey_frequencies/_show_journey_frequencies.html.erb
@@ -0,0 +1,28 @@
+<h3><%= t('vehicle_journeys.show.journey_frequencies') %></h3>
+<div class="journey_frequencies content">
+ <table class="table table-hover table-striped">
+ <thead>
+ <tr>
+ <th><%= t('activerecord.attributes.journey_frequency.timeband') %></th>
+ <th><%= t('activerecord.attributes.journey_frequency.first_departure_time') %></th>
+ <th><%= t('activerecord.attributes.journey_frequency.last_departure_time') %></th>
+ <th><%= t('activerecord.attributes.journey_frequency.scheduled_headway_interval') %></th>
+ <th><%= t('activerecord.attributes.journey_frequency.exact_time') %></th>
+ </tr>
+ <thead>
+ <tbody>
+ <% @vehicle_journey_frequency.journey_frequencies.each do |journey_frequency| %>
+ <tr class="<%= cycle :odd, :even %>">
+ <td>
+ <%= link_to TimebandPresenter.new(journey_frequency.timeband).title,
+ referential_timeband_path(@referential, journey_frequency.timeband) %>
+ </td>
+ <td><%= l(journey_frequency.first_departure_time, format: :hour) %></td>
+ <td><%= l(journey_frequency.last_departure_time, format: :hour) %></td>
+ <td><%= l(journey_frequency.scheduled_headway_interval, format: :hour) %></td>
+ <td><%= '<i class="fa fa-check"></i>'.html_safe if journey_frequency.exact_time %></td>
+ </tr>
+ <% end %>
+ </tbody>
+ </table>
+</div>
diff --git a/app/views/vehicle_journey_frequencies/_show_sidebar.html.erb b/app/views/vehicle_journey_frequencies/_show_sidebar.html.erb
index 4d89785e0..2a7be143c 100644
--- a/app/views/vehicle_journey_frequencies/_show_sidebar.html.erb
+++ b/app/views/vehicle_journey_frequencies/_show_sidebar.html.erb
@@ -1,16 +1,23 @@
<% content_for :sidebar do %>
<ul class="actions">
- <li><%= link_to t('vehicle_journeys.actions.new'), new_referential_line_route_vehicle_journey_path(@referential, @line, @route), :class => "add" %></li>
- <li><%= link_to t('vehicle_journeys.actions.new_frequency'), new_referential_line_route_vehicle_journey_frequency_path(@referential, @line, @route), :class => "add" %></li>
- <li><%= link_to t('vehicle_journeys.actions.edit_frequency'), edit_referential_line_route_vehicle_journey_frequency_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, :data => {:confirm => t('vehicle_journeys.actions.destroy_confirm')}, :class => "remove" %></li>
- <% unless @vehicle_journey.vehicle_journey_at_stops.empty? %>
- <li>
- <i class="fa fa-cubes fa-fw" style="color:#D98F3B;"></i>
- TODO
- <%# link_to t('vehicle_journeys.show.translation_form'), new_referential_line_route_vehicle_journey_vehicle_translation_path(@referential, @line, @route, @vehicle_journey), {:remote => true, 'data-toggle' => "modal", 'data-target' => '#modal_translation', :class => "with_fa" } %>
- </li>
- <% end %>
+ <li>
+ <%= link_to t('vehicle_journeys.actions.new'),
+ new_referential_line_route_vehicle_journey_path(@referential, @line, @route), class: "add" %>
+ </li>
+ <li>
+ <%= link_to t('vehicle_journeys.actions.new_frequency'),
+ new_referential_line_route_vehicle_journey_frequency_path(@referential, @line, @route), class: "add" %>
+ </li>
+ <li>
+ <%= link_to t('vehicle_journeys.actions.edit_frequency'),
+ edit_referential_line_route_vehicle_journey_frequency_path(@referential, @line, @route, @vehicle_journey_frequency),
+ class: "edit" %>
+ </li>
+ <li>
+ <%= link_to t('vehicle_journeys.actions.destroy'),
+ referential_line_route_vehicle_journey_path(@referential, @line, @route, @vehicle_journey_frequency),
+ method: :delete, data: { confirm: t('vehicle_journeys.actions.destroy_confirm') }, class: "remove" %>
+ </li>
</ul>
- <%= creation_tag(@vehicle_journey) %>
+ <%= creation_tag(@vehicle_journey_frequency) %>
<% end %>
diff --git a/app/views/vehicle_journey_frequencies/_show_vehicle_journey_at_stops.html.erb b/app/views/vehicle_journey_frequencies/_show_vehicle_journey_at_stops.html.erb
index e69de29bb..0a91a8af3 100644
--- a/app/views/vehicle_journey_frequencies/_show_vehicle_journey_at_stops.html.erb
+++ b/app/views/vehicle_journey_frequencies/_show_vehicle_journey_at_stops.html.erb
@@ -0,0 +1,29 @@
+<div class="vehicle_journey_at_stops content">
+ <table class="table-striped ce-TimeBandFormTable">
+ <thead>
+ <tr>
+ <th class="stop title" ><%= t('vehicle_journeys.show.stop_title') %></th>
+ <th></th>
+ <th class="hour title"><%= t('vehicle_journeys.show.arrival') %></th>
+ <th class="hour title"><%= t('vehicle_journeys.show.departure') %></th>
+ </tr>
+ <thead>
+ <tbody>
+ <% @vehicle_journey_frequency.vehicle_journey_at_stops.each do |vjas| %>
+ <tr class="<%= cycle :odd, :even %>">
+ <td><%= link_to vjas.stop_point.stop_area.name, [@referential, vjas.stop_point.stop_area] %></td>
+ <td class="ce-TimeBandFormTable-circleLine">
+ <span class="ce-TimeBandFormTable-circle"></span>
+ <span class="ce-TimeBandFormTable-line"></span>
+ </td>
+ <td class="hour <%= 'missing' if vjas.arrival_time.nil? %>">
+ <%= l(vjas.arrival_time, format: :hour) if vjas.arrival_time %>
+ </td>
+ <td class="hour <%= 'missing' if vjas.departure_time.nil? %>">
+ <%= l(vjas.departure_time, format: :hour) if vjas.departure_time %>
+ </td>
+ </tr>
+ <% end %>
+ </tbody>
+ </table>
+</div>
diff --git a/app/views/vehicle_journey_frequencies/_vehicle_journey_at_stop_fields.html.erb b/app/views/vehicle_journey_frequencies/_vehicle_journey_at_stop_fields.html.erb
index e99392a38..5a4ed7382 100644
--- a/app/views/vehicle_journey_frequencies/_vehicle_journey_at_stop_fields.html.erb
+++ b/app/views/vehicle_journey_frequencies/_vehicle_journey_at_stop_fields.html.erb
@@ -1,14 +1,14 @@
-<% vjas = vehicle_journey_at_stop
+<%
+ vjas = vehicle_journey_at_stop
tab_counter_arrival = 2 * vehicle_journey_at_stop_counter + 100
tab_counter_departure = (vehicle_journey_at_stops_size * 2) + 2 * vehicle_journey_at_stop_counter + 100
%>
-<tr class="time input optional <%= vjas._destroy ? "no_stop" : "" %> <%= (vehicle_journey_at_stop_counter%2==0) ? "odd" : "even" %>" >
+<tr class="time input optional <%= 'no_stop' if vjas._destroy %> <%= cycle :odd, :even %>" >
<td>
<%= {
id: vjas.id,
_destroy: (vjas._destroy ? 1 : 0),
stop_point_id: vjas.stop_point_id,
- is_frequency: true,
:'departure_time(3i)' => 1,
:'departure_time(2i)' => 1,
:'departure_time(1i)' => 1,
@@ -16,7 +16,7 @@
:'arrival_time(2i)' => 1,
:'arrival_time(1i)' => 2000
}.map{ |k, v|
- "<input name=\"vehicle_journey[vehicle_journey_at_stops_attributes][#{vehicle_journey_at_stop_counter}][#{k}]\"
+ "<input name=\"vehicle_journey_frequency[vehicle_journey_at_stops_attributes][#{vehicle_journey_at_stop_counter}][#{k}]\"
type=\"hidden\" value=\"#{v}\">" }.join("\n").html_safe %>
<%= vjas.stop_point.stop_area.name %>
@@ -25,24 +25,28 @@
<span class="ce-TimeBandFormTable-circle"></span>
<span class="ce-TimeBandFormTable-line"></span>
</td>
- <td class="arrival_time <%= vjas.arrival_time.nil? ? "missing" : "" %> <%= vjas.errors[:arrival_time].blank? ? "" : "invalid_position" %>">
+ <td class="arrival_time <%= 'missing' unless vjas.arrival_time %> <%= 'invalid_position' if vjas.errors[:arrival_time].present? %>">
<%= 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)]" },
- :class => "hour", tabindex: tab_counter_arrival + 1) %>
+ {
+ prefix: 'vehicle_journey_frequency',
+ field_name: "vehicle_journey_at_stops_attributes[#{vehicle_journey_at_stop_counter}][arrival_time(4i)]"
+ }, class: 'hour', tabindex: tab_counter_arrival + 1) %>
<%= 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)]" },
- :class => "minute", tabindex: tab_counter_arrival + 2) %>
+ {
+ prefix: 'vehicle_journey_frequency',
+ field_name: "vehicle_journey_at_stops_attributes[#{vehicle_journey_at_stop_counter}][arrival_time(5i)]"
+ }, class: 'minute', tabindex: tab_counter_arrival + 2) %>
</td>
- <td class="departure_time <%= vjas.departure_time.nil? ? "missing" : "" %> <%= vjas.errors[:departure_time].blank? ? "" : "invalid_position" %>">
+ <td class="departure_time <%= 'missing' unless vjas.departure_time %> <%= 'invalid_position' if vjas.errors[:departure_time].present? %>">
<%= 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)]" },
- :class => 'hour', tabindex: tab_counter_departure + 1) %>
+ {
+ prefix: 'vehicle_journey_frequency',
+ field_name: "vehicle_journey_at_stops_attributes[#{vehicle_journey_at_stop_counter}][departure_time(4i)]"
+ }, class: 'hour', tabindex: tab_counter_departure + 1) %>
<%= 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)]" },
- :class => 'minute', tabindex: tab_counter_departure + 2) %>
+ {
+ prefix: 'vehicle_journey_frequency',
+ field_name: "vehicle_journey_at_stops_attributes[#{vehicle_journey_at_stop_counter}][departure_time(5i)]"
+ }, class: 'minute', tabindex: tab_counter_departure + 2) %>
</td>
</tr>
diff --git a/app/views/vehicle_journey_frequencies/edit.html.erb b/app/views/vehicle_journey_frequencies/edit.html.erb
index 233f2f18d..1bc1e6d88 100644
--- a/app/views/vehicle_journey_frequencies/edit.html.erb
+++ b/app/views/vehicle_journey_frequencies/edit.html.erb
@@ -1,3 +1,7 @@
<%= title_tag edit_vehicle_title(@vehicle_journey_frequency) %>
-<%= render 'vehicle_journeys/form', vehicle_journey: @vehicle_journey_frequency form_url: referential_line_route_vehicle_journey_frequency_path(@referential, @line, @route, id: @vehicle_journey_frequency) %>
+<%= render 'vehicle_journeys/form', vehicle_journey: @vehicle_journey_frequency,
+ form_url: referential_line_route_vehicle_journey_frequency_path(@referential,
+ @line,
+ @route,
+ id: @vehicle_journey_frequency) %>
diff --git a/app/views/vehicle_journey_frequencies/edit.js.erb b/app/views/vehicle_journey_frequencies/edit.js.erb
new file mode 100644
index 000000000..f5aaf8ad7
--- /dev/null
+++ b/app/views/vehicle_journey_frequencies/edit.js.erb
@@ -0,0 +1,10 @@
+$(document).ready(function() {
+ $("#vehicle_journey_frequency_journey_pattern_id").change(
+ function(){
+ var url = "<%= select_journey_pattern_referential_line_route_vehicle_journey_path( @referential, @line, @route, @vehicle_journey_frequency)%>?journey_pattern_id="+
+ $("#vehicle_journey_frequency_journey_pattern_input select option:selected").attr("value");
+ url += "&journey_category=frequency";
+ $.get(url);
+ }
+ );
+});
diff --git a/app/views/vehicle_journey_frequencies/new.html.erb b/app/views/vehicle_journey_frequencies/new.html.erb
index 354f49169..677605276 100644
--- a/app/views/vehicle_journey_frequencies/new.html.erb
+++ b/app/views/vehicle_journey_frequencies/new.html.erb
@@ -1,3 +1,6 @@
<%= title_tag t('vehicle_journeys.new.title_frequency') %>
-<%= render 'vehicle_journeys/form', vehicle_journey: @vehicle_journey_frequency, form_url: referential_line_route_vehicle_journey_frequencies_path(@referential, @line, @route) %>
+<%= render 'vehicle_journeys/form', vehicle_journey: @vehicle_journey_frequency,
+ form_url: referential_line_route_vehicle_journey_frequencies_path(@referential,
+ @line,
+ @route) %>
diff --git a/app/views/vehicle_journey_frequencies/new.js.erb b/app/views/vehicle_journey_frequencies/new.js.erb
index 6310d14b3..b5fc75aef 100644
--- a/app/views/vehicle_journey_frequencies/new.js.erb
+++ b/app/views/vehicle_journey_frequencies/new.js.erb
@@ -1,13 +1,13 @@
$(document).ready(function() {
$("#vehicle_journey_frequency_journey_pattern_id").change(
- function(){
- var vehicle_journey_journey_pattern_id = $("#vehicle_journey_frequency_journey_pattern_input select option:selected").attr("value");
- if (vehicle_journey_journey_pattern_id > 0) {
- var url = "<%= referential_line_route_journey_patterns_path(@referential.id,@line.id,@route.id) %>";
- url = url + "/" + vehicle_journey_journey_pattern_id +
- "/new_vehicle_journey?journey_category=frequency";
- $.get(url);
- }
+ function(){
+ var vehicle_journey_journey_pattern_id = $("#vehicle_journey_frequency_journey_pattern_input select option:selected").attr("value");
+ if (vehicle_journey_journey_pattern_id > 0) {
+ var url = "<%= referential_line_route_journey_patterns_path(@referential.id,@line.id,@route.id) %>";
+ url = url + "/" + vehicle_journey_journey_pattern_id +
+ "/new_vehicle_journey?journey_category=frequency";
+ $.get(url);
}
- )
+ }
+ );
});
diff --git a/app/views/vehicle_journey_frequencies/select_journey_pattern.js.erb b/app/views/vehicle_journey_frequencies/select_journey_pattern.js.erb
index 0f287cc27..8fe20ed37 100644
--- a/app/views/vehicle_journey_frequencies/select_journey_pattern.js.erb
+++ b/app/views/vehicle_journey_frequencies/select_journey_pattern.js.erb
@@ -1,7 +1,5 @@
-var $selector = $('.journey_pattern_dependent_list');
-$selector.html('<%= escape_javascript(
- render(:partial => "vehicle_journey_frequencies/vehicle_journey_at_stop_fields",
- :collection => @vehicle_journey.vehicle_journey_at_stops,
- :as => :vehicle_journey_at_stop,
- :locals => { :vehicle_journey_at_stops_size => @vehicle_journey.vehicle_journey_at_stops.size })).html_safe %>');
-$selector.closest('table').show();
+$('.journey_pattern_dependent_list').html('<%= escape_javascript(
+ render(partial: 'vehicle_journey_frequencies/vehicle_journey_at_stop_fields',
+ collection: @vehicle_journey.vehicle_journey_at_stops,
+ as: :vehicle_journey_at_stop,
+ locals: { vehicle_journey_at_stops_size: @vehicle_journey.vehicle_journey_at_stops.size })).html_safe %>');
diff --git a/app/views/vehicle_journey_frequencies/show.html.erb b/app/views/vehicle_journey_frequencies/show.html.erb
new file mode 100644
index 000000000..7939ae319
--- /dev/null
+++ b/app/views/vehicle_journey_frequencies/show.html.erb
@@ -0,0 +1,3 @@
+<%= render 'vehicle_journeys/show_details', vehicle_journey: @vehicle_journey_frequency %>
+<%= render 'show_journey_frequencies' %>
+<%= render 'show_sidebar' %>
diff --git a/app/views/vehicle_journeys/_show_details.html.erb b/app/views/vehicle_journeys/_show_details.html.erb
new file mode 100644
index 000000000..fccf3d210
--- /dev/null
+++ b/app/views/vehicle_journeys/_show_details.html.erb
@@ -0,0 +1,87 @@
+<%= title_tag vehicle_title(vehicle_journey) %>
+
+<div id="modal_translation" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <div class="modal-header">
+ <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
+ <h4 class="modal-title" id="myModalLabel"><%= t('vehicle_journeys.show.translation_form') %></h4>
+ <div id="translate_form"></div>
+ </div>
+ </div>
+ </div>
+</div>
+
+<div class="vehicle_journey">
+ <div class="summary">
+ <p>
+ <label><%= vehicle_journey.human_attribute_name(:journey_pattern) %>: </label>
+ <%= link_to journey_name(vehicle_journey.journey_pattern), [@referential, @line, @route, vehicle_journey.journey_pattern] %>
+ </p>
+ <p>
+ <label><%= vehicle_journey.human_attribute_name("number") %>: </label>
+ <%= vehicle_journey.number %>
+ </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("mobility_restricted_suitability") %>: </label>
+ <% if vehicle_journey.mobility_restricted_suitability.nil? %>
+ <%= vehicle_journey.human_attribute_name("unspecified_mrs") %>
+ <% elsif vehicle_journey.mobility_restricted_suitability? %>
+ <%= vehicle_journey.human_attribute_name("accessible") %>
+ <% else %>
+ <%= vehicle_journey.human_attribute_name("not_accessible") %>
+ <% end %>
+ </p>
+ <p>
+ <label><%= vehicle_journey.human_attribute_name("flexible_service") %>: </label>
+ <% if vehicle_journey.flexible_service.nil? %>
+ <%= vehicle_journey.human_attribute_name("unspecified_fs") %>
+ <% elsif vehicle_journey.flexible_service? %>
+ <%= vehicle_journey.human_attribute_name("on_demand_fs") %>
+ <% else %>
+ <%= vehicle_journey.human_attribute_name("regular_fs") %>
+ <% end %>
+ </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("footnote_ids") %>: </label>
+ <ul>
+ <% vehicle_journey.footnotes.each do |footnote| %>
+ <li><%= footnote.code %> : <%= footnote.label %></li>
+ <% end %>
+ </ul>
+ </p>
+ </div>
+</div>
+<h3><%= vehicle_journey.human_attribute_name(:vehicle_journey_at_stop_ids) %></h3>
+<%= render 'show_vehicle_journey_at_stops' %>
+
+<h3><%= t('vehicle_journeys.show.time_tables') %></h3>
+<div class="time_tables paginated_content">
+ <%= paginated_content vehicle_journey.time_tables, "time_tables/time_table", :delete => false %>
+</div>
diff --git a/app/views/vehicle_journeys/new.html.erb b/app/views/vehicle_journeys/new.html.erb
index c3354449a..d2e9d7c4c 100644
--- a/app/views/vehicle_journeys/new.html.erb
+++ b/app/views/vehicle_journeys/new.html.erb
@@ -1,4 +1,4 @@
<%= title_tag t('vehicle_journeys.new.title') %>
-<%= render partial: 'form', locals: { vehicle_journey: @vehicle_journey, form_url: referential_line_route_vehicle_journeys_path(@referential, @line, @route, @vehicle_journey) } %>
+<%= render 'form', { vehicle_journey: @vehicle_journey, form_url: referential_line_route_vehicle_journeys_path(@referential, @line, @route, @vehicle_journey) } %>
diff --git a/app/views/vehicle_journeys/show.html.erb b/app/views/vehicle_journeys/show.html.erb
index 3bdfbb945..4bf814bbe 100644
--- a/app/views/vehicle_journeys/show.html.erb
+++ b/app/views/vehicle_journeys/show.html.erb
@@ -1,89 +1,2 @@
-<%= title_tag vehicle_title(@vehicle_journey) %>
-
-<div id="modal_translation" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
- <div class="modal-dialog">
- <div class="modal-content">
- <div class="modal-header">
- <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
- <h4 class="modal-title" id="myModalLabel"><%= t('.translation_form') %></h4>
- <div id="translate_form"></div>
- </div>
- </div>
- </div>
-</div>
-
-<div class="vehicle_journey">
- <div class="summary">
- <p>
- <label><%= @vehicle_journey.human_attribute_name(:journey_pattern) %>: </label>
- <%= link_to journey_name(@vehicle_journey.journey_pattern), [@referential, @line, @route, @vehicle_journey.journey_pattern] %>
- </p>
- <p>
- <label><%= @vehicle_journey.human_attribute_name("number") %>: </label>
- <%= @vehicle_journey.number %>
- </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("mobility_restricted_suitability") %>: </label>
- <% if @vehicle_journey.mobility_restricted_suitability.nil? %>
- <%= @vehicle_journey.human_attribute_name("unspecified_mrs") %>
- <% elsif @vehicle_journey.mobility_restricted_suitability? %>
- <%= @vehicle_journey.human_attribute_name("accessible") %>
- <% else %>
- <%= @vehicle_journey.human_attribute_name("not_accessible") %>
- <% end %>
- </p>
- <p>
- <label><%= @vehicle_journey.human_attribute_name("flexible_service") %>: </label>
- <% if @vehicle_journey.flexible_service.nil? %>
- <%= @vehicle_journey.human_attribute_name("unspecified_fs") %>
- <% elsif @vehicle_journey.flexible_service? %>
- <%= @vehicle_journey.human_attribute_name("on_demand_fs") %>
- <% else %>
- <%= @vehicle_journey.human_attribute_name("regular_fs") %>
- <% end %>
- </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("footnote_ids") %>: </label>
- <ul>
- <% @vehicle_journey.footnotes.each do |footnote| %>
- <li><%= footnote.code %> : <%= footnote.label %></li>
- <% end %>
- </ul>
- </p>
- </div>
-</div>
-<h3><%= @vehicle_journey.human_attribute_name(:vehicle_journey_at_stop_ids) %></h3>
-<%= render 'show_vehicle_journey_at_stops' %>
-
-<h3><%= t('.time_tables') %></h3>
-<div class="time_tables paginated_content">
- <%= paginated_content @vehicle_journey.time_tables, "time_tables/time_table", :delete => false %>
-</div>
-
+<%= render 'show_details', vehicle_journey: @vehicle_journey %>
<%= render 'show_sidebar' %>
diff --git a/config/locales/journey_frequencies.en.yml b/config/locales/journey_frequencies.en.yml
index 6393c13ad..ad4a92432 100644
--- a/config/locales/journey_frequencies.en.yml
+++ b/config/locales/journey_frequencies.en.yml
@@ -10,3 +10,4 @@ en:
last_departure_time: Last departure
scheduled_headway_interval: Interval
exact_time: Exact?
+ timeband: Time bands
diff --git a/config/locales/journey_frequencies.fr.yml b/config/locales/journey_frequencies.fr.yml
index 790bc1150..7bfd6de69 100644
--- a/config/locales/journey_frequencies.fr.yml
+++ b/config/locales/journey_frequencies.fr.yml
@@ -10,3 +10,4 @@ fr:
last_departure_time: Dernier départ
scheduled_headway_interval: Intervalle
exact_time: Exact ?
+ timeband: Plage horaires
diff --git a/config/locales/vehicle_journeys.en.yml b/config/locales/vehicle_journeys.en.yml
index 36b7b11df..83e758394 100644
--- a/config/locales/vehicle_journeys.en.yml
+++ b/config/locales/vehicle_journeys.en.yml
@@ -46,6 +46,7 @@ en:
time_tables: "Calendars list"
bounding: "From %{start} to %{end}"
translation_form: "Vehicle journey translations"
+ journey_frequencies: "Interval time duration"
index:
title: "Vehicle journeys on route %{route}"
vehicle_journeys: "Departure's times"
diff --git a/config/locales/vehicle_journeys.fr.yml b/config/locales/vehicle_journeys.fr.yml
index cf80e0924..ea223ea06 100644
--- a/config/locales/vehicle_journeys.fr.yml
+++ b/config/locales/vehicle_journeys.fr.yml
@@ -46,6 +46,7 @@ fr:
time_tables: "Liste des calendriers"
bounding: "De %{start} à %{end}"
translation_form: "Cloner la course"
+ journey_frequencies: "Durée d'intervalle du trajet"
index:
title: "Horaires de la séquence d'arrêts %{route}"
vehicle_journeys: "Horaires de départ aux arrêts"
diff --git a/db/migrate/20151028105423_add_timeband_id_to_journey_frequencies.ninoxe_engine.rb b/db/migrate/20151028105423_add_timeband_id_to_journey_frequencies.ninoxe_engine.rb
new file mode 100644
index 000000000..094efa005
--- /dev/null
+++ b/db/migrate/20151028105423_add_timeband_id_to_journey_frequencies.ninoxe_engine.rb
@@ -0,0 +1,6 @@
+# This migration comes from ninoxe_engine (originally 20151028105340)
+class AddTimebandIdToJourneyFrequencies < ActiveRecord::Migration
+ def change
+ add_reference :journey_frequencies, :timeband, index: true
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 988693132..38b935b6c 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -11,7 +11,7 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema.define(version: 20151023101306) do
+ActiveRecord::Schema.define(version: 20151028105423) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -216,8 +216,10 @@ ActiveRecord::Schema.define(version: 20151023101306) do
t.boolean "exact_time", default: false
t.datetime "created_at"
t.datetime "updated_at"
+ t.integer "timeband_id"
end
+ add_index "journey_frequencies", ["timeband_id"], name: "index_journey_frequencies_on_timeband_id", using: :btree
add_index "journey_frequencies", ["vehicle_journey_id"], name: "index_journey_frequencies_on_vehicle_journey_id", using: :btree
create_table "journey_patterns", force: true do |t|