diff options
| author | Luc Donnet | 2018-02-01 17:20:18 +0100 |
|---|---|---|
| committer | GitHub | 2018-02-01 17:20:18 +0100 |
| commit | c172bdb34862b6b48ea52e0de71a9444f14c2478 (patch) | |
| tree | 20186a872b2f7307bd6dccba9557000c5ca83617 | |
| parent | 2ee24e51608592202ebe209c6ef23bb7dc539525 (diff) | |
| parent | 7eab1a2999b5d993ec8ebf9655d52e278b88081d (diff) | |
| download | chouette-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.sass | 3 | ||||
| -rw-r--r-- | app/models/chouette/vehicle_journey.rb | 7 | ||||
| -rw-r--r-- | app/views/referential_vehicle_journeys/_filters.html.slim | 18 |
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 |
