aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuc Donnet2018-02-01 17:20:18 +0100
committerGitHub2018-02-01 17:20:18 +0100
commitc172bdb34862b6b48ea52e0de71a9444f14c2478 (patch)
tree20186a872b2f7307bd6dccba9557000c5ca83617
parent2ee24e51608592202ebe209c6ef23bb7dc539525 (diff)
parent7eab1a2999b5d993ec8ebf9655d52e278b88081d (diff)
downloadchouette-core-c172bdb34862b6b48ea52e0de71a9444f14c2478.tar.bz2
Merge pull request #274 from af83/5576-vehicle-journeys--filter-by-line
5576 vehicle journeys filter by line
-rw-r--r--app/assets/stylesheets/components/_select2.sass3
-rw-r--r--app/models/chouette/vehicle_journey.rb7
-rw-r--r--app/views/referential_vehicle_journeys/_filters.html.slim18
3 files changed, 27 insertions, 1 deletions
diff --git a/app/assets/stylesheets/components/_select2.sass b/app/assets/stylesheets/components/_select2.sass
index 38603e11a..f31387c9f 100644
--- a/app/assets/stylesheets/components/_select2.sass
+++ b/app/assets/stylesheets/components/_select2.sass
@@ -79,6 +79,9 @@
.select2-search--inline .select2-search__field
height: 28px
+ .select2-selection__rendered
+ padding-right: 20px
+
.select2-container--bootstrap .select2-selection
border-color: rgba($grey, 0.3)
diff --git a/app/models/chouette/vehicle_journey.rb b/app/models/chouette/vehicle_journey.rb
index 1756a7098..6146d5be8 100644
--- a/app/models/chouette/vehicle_journey.rb
+++ b/app/models/chouette/vehicle_journey.rb
@@ -59,8 +59,8 @@ module Chouette
}
# We need this for the ransack object in the filters
- ransacker :stop_area_ids
ransacker :purchase_window_date_gt
+ ransacker :stop_area_ids
# returns VehicleJourneys with at least 1 day in their time_tables
# included in the given range
@@ -375,5 +375,10 @@ module Chouette
')
.where('"time_tables_vehicle_journeys"."vehicle_journey_id" IS NULL')
end
+
+ def self.lines
+ lines_query = joins(:route).select("routes.line_id").to_sql
+ Chouette::Line.where("id IN (#{lines_query})")
+ end
end
end
diff --git a/app/views/referential_vehicle_journeys/_filters.html.slim b/app/views/referential_vehicle_journeys/_filters.html.slim
index bfb5b77dd..67bb60e8d 100644
--- a/app/views/referential_vehicle_journeys/_filters.html.slim
+++ b/app/views/referential_vehicle_journeys/_filters.html.slim
@@ -15,6 +15,24 @@
= f.input :company_id_eq_any, collection: @all_companies.select(:id, :name).order(name: :asc), as: :check_boxes, label: false, label_method: lambda{|l| ("<span>" + l.name + "</span>").html_safe}, required: false, wrapper_html: { class: 'checkbox_list'}
- else
= f.input :company_id_eq_any, collection: [[I18n.t('companies.search_no_results_for_filter'), nil]], as: :check_boxes, label: false, disabled: true, required: false, wrapper_html: { class: 'checkbox_list disabled'}
+
+ .form-group.togglable
+ = f.label Chouette::Line.model_name.human,
+ required: false,
+ class: 'control-label'
+ .form-inline.filter_menu
+ = f.input :route_line_id_eq,
+ as: :select,
+ collection: @vehicle_journeys.lines,
+ selected: params[:q] && params[:q][:line_id],
+ input_html: { \
+ 'data-select2ed': 'true',
+ 'data-select2ed-placeholder': t('referentials.filters.line') \
+ },
+ label: false,
+ label_method: :display_name,
+ wrapper_html: { class: 'filter_menu-item select2ed' }
+
.form-group.togglable.name-filter
= f.label Chouette::VehicleJourney.human_attribute_name(:published_journey_name), required: false, class: 'control-label'
.inputs.form-inline.checkbox_list