aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlban Peignier2017-12-21 21:00:33 +0100
committerGitHub2017-12-21 21:00:33 +0100
commite722b3de7928eabba8ecc3f66b9275bfd0438904 (patch)
tree08bbecfd49c0625e9fb11ea39e0a106e95c775bf
parent93434ece5f7f5118f8342ff1bbe845458009f3eb (diff)
parent780b7e4711e983e8f99e71bacc7eaf6973b214ce (diff)
downloadchouette-core-e722b3de7928eabba8ecc3f66b9275bfd0438904.tar.bz2
Merge pull request #172 from af83/5355-add-button-to-opposite-itinerary-timetable
Add opposite route button on timetables. Refs #5355
-rw-r--r--app/views/vehicle_journeys/index.html.slim6
-rw-r--r--config/locales/routes.en.yml1
-rw-r--r--config/locales/routes.fr.yml1
-rw-r--r--spec/factories/chouette_routes.rb7
-rw-r--r--spec/support/integration_spec_helper.rb6
-rw-r--r--spec/views/vehicle_journeys/index.html.slim_spec.rb30
6 files changed, 50 insertions, 1 deletions
diff --git a/app/views/vehicle_journeys/index.html.slim b/app/views/vehicle_journeys/index.html.slim
index 52c1a9728..4ad9d524d 100644
--- a/app/views/vehicle_journeys/index.html.slim
+++ b/app/views/vehicle_journeys/index.html.slim
@@ -1,5 +1,11 @@
- breadcrumb :vehicle_journeys, @referential, @route
- content_for :page_header_title, t('vehicle_journeys.index.title', route: @route.name)
+- if @route.opposite_route.present?
+ - content_for :page_header_content do
+ .row.mb-sm
+ .col-lg-12.text-right
+ = link_to(t('routes.actions.opposite_route_timetable'), [@referential, @route.line, @route.opposite_route, :vehicle_journeys], class: 'btn btn-primary')
+
.page_content
.container-fluid
diff --git a/config/locales/routes.en.yml b/config/locales/routes.en.yml
index d82ba98dd..7b82e788b 100644
--- a/config/locales/routes.en.yml
+++ b/config/locales/routes.en.yml
@@ -13,6 +13,7 @@ en:
export_hub_all: "Export HUB routes"
add_stop_point: "Add stop point"
new_stop_point: "Create new stop"
+ opposite_route_timetable: "Timetable back"
new:
title: "Add a new route"
edit:
diff --git a/config/locales/routes.fr.yml b/config/locales/routes.fr.yml
index 457345ae8..1d151e60b 100644
--- a/config/locales/routes.fr.yml
+++ b/config/locales/routes.fr.yml
@@ -13,6 +13,7 @@ fr:
export_hub_all: "Export HUB des itinéraires"
add_stop_point: "Ajouter un arrêt"
new_stop_point: "Créer un arrêt pour l'ajouter"
+ opposite_route_timetable: "Horaires retour"
new:
title: "Ajouter un itinéraire"
edit:
diff --git a/spec/factories/chouette_routes.rb b/spec/factories/chouette_routes.rb
index 4e20059fe..7443d08bc 100644
--- a/spec/factories/chouette_routes.rb
+++ b/spec/factories/chouette_routes.rb
@@ -31,6 +31,13 @@ FactoryGirl.define do
end
end
+
+ trait :with_opposite do
+ after(:create) do |route|
+ opposite = create :route
+ route.opposite_route = opposite
+ end
+ end
end
factory :route_with_after_commit do
diff --git a/spec/support/integration_spec_helper.rb b/spec/support/integration_spec_helper.rb
index 78efb9027..1bf211fe1 100644
--- a/spec/support/integration_spec_helper.rb
+++ b/spec/support/integration_spec_helper.rb
@@ -1,7 +1,11 @@
module IntegrationSpecHelper
def paginate_collection klass, decorator, page=1
- ModelDecorator.decorate( klass.page(page), with: decorator )
+ coll = klass.page(page)
+ if decorator
+ coll = ModelDecorator.decorate( coll, with: decorator )
+ end
+ coll
end
def build_paginated_collection factory, decorator, opts={}
diff --git a/spec/views/vehicle_journeys/index.html.slim_spec.rb b/spec/views/vehicle_journeys/index.html.slim_spec.rb
new file mode 100644
index 000000000..7f0a9c5aa
--- /dev/null
+++ b/spec/views/vehicle_journeys/index.html.slim_spec.rb
@@ -0,0 +1,30 @@
+require 'spec_helper'
+
+describe "/vehicle_journeys/index", :type => :view do
+
+ let!(:referential) { assign :referential, create(:referential) }
+ let!(:line) { assign :line, create(:line) }
+ let!(:route) { assign :route, create(:route, line: line) }
+ let!(:vehicle_journeys) do
+ assign :vehicle_journeys, build_paginated_collection(:vehicle_journey, nil, route: route)
+ end
+
+ before :each do
+ allow(view).to receive(:link_with_search).and_return("#")
+ allow(view).to receive(:collection).and_return(vehicle_journeys)
+ allow(view).to receive(:current_referential).and_return(referential)
+ controller.request.path_parameters[:referential_id] = referential.id
+ render
+ end
+
+ context "with an opposite_route" do
+ let!(:route) { assign :route, create(:route, :with_opposite, line: line) }
+
+ it "should have an 'oppposite route timetable' button" do
+ href = view.referential_line_route_vehicle_journeys_path(referential, line, route.opposite_route)
+ oppposite_button_selector = "a[href=\"#{href}\"]"
+
+ expect(view.content_for(:page_header_content)).to have_selector oppposite_button_selector
+ end
+ end
+end