diff options
| author | Marc Florisson | 2014-09-17 13:51:28 +0200 |
|---|---|---|
| committer | Marc Florisson | 2014-09-17 13:51:28 +0200 |
| commit | 1e3d5138f09702a0bc38296b5bed36903e7f08e8 (patch) | |
| tree | 1485dd7baca86414c9dd4b04e5b865b116bc63ae /app/controllers | |
| parent | d489c3a664bf27e2ec3272c90002698f00689921 (diff) | |
| parent | 375962d92d2b4222f955a5494b17f0031b9dbcf0 (diff) | |
| download | chouette-core-1e3d5138f09702a0bc38296b5bed36903e7f08e8.tar.bz2 | |
merge vj
Diffstat (limited to 'app/controllers')
| -rw-r--r-- | app/controllers/time_tables_controller.rb | 38 | ||||
| -rw-r--r-- | app/controllers/vehicle_journeys_controller.rb | 50 |
2 files changed, 57 insertions, 31 deletions
diff --git a/app/controllers/time_tables_controller.rb b/app/controllers/time_tables_controller.rb index 586713c60..78d633581 100644 --- a/app/controllers/time_tables_controller.rb +++ b/app/controllers/time_tables_controller.rb @@ -10,36 +10,36 @@ class TimeTablesController < ChouetteController def show add_breadcrumb Referential.human_attribute_name("time_tables"), referential_time_tables_path(@referential) - + @year = params[:year] ? params[:year].to_i : Date.today.cwyear - @time_table_combination = TimeTableCombination.new + @time_table_combination = TimeTableCombination.new show! end - + def new add_breadcrumb Referential.human_attribute_name("time_tables"), referential_time_tables_path(@referential) - + @autocomplete_items = ActsAsTaggableOn::Tag.all new! end def edit - edit! do + edit! do add_breadcrumb Referential.human_attribute_name("time_tables"), referential_time_tables_path(@referential) add_breadcrumb @time_table.comment, referential_time_table_path(@referential, @time_table) - + @autocomplete_items = ActsAsTaggableOn::Tag.all end end def comment_filter - respond_to do |format| - format.json { render :json => filtered_time_tables_maps} - end - + respond_to do |format| + format.json { render :json => filtered_time_tables_maps} + end + end - def index + def index request.format.kml? ? @per_page = nil : @per_page = 12 index! do |format| @@ -48,7 +48,7 @@ class TimeTablesController < ChouetteController redirect_to params.merge(:page => 1) end } - end + end end def duplicate @@ -60,7 +60,7 @@ class TimeTablesController < ChouetteController end def tags - @tags = ActsAsTaggableOn::Tag.where("tags.name LIKE ?", "%#{params[:tag]}%") + @tags = ActsAsTaggableOn::Tag.where("tags.name LIKE ?", "%#{params[:tag]}%") respond_to do |format| format.json { render :json => @tags.map{|t| {:id => t.id, :name => t.name }} } end @@ -83,11 +83,19 @@ class TimeTablesController < ChouetteController tag_search = ransack_params["tag_search"].split(",").collect(&:strip) if ransack_params.present? && ransack_params["tag_search"].present? ransack_params.delete("tag_search") if ransack_params.present? - select_time_tables = tag_search ? referential.time_tables.tagged_with(tag_search) : referential.time_tables - @q = select_time_tables.search(ransack_params) + selected_time_tables = tag_search ? select_time_tables.tagged_with(tag_search) : select_time_tables + @q = selected_time_tables.search(ransack_params) @time_tables ||= @q.result(:distinct => true).order(:comment).paginate(:page => params[:page]) end + def select_time_tables + if params[:route_id] + referential.time_tables.joins( vehicle_journeys: :route).where( "routes.id IN (#{params[:route_id]})") + else + referential.time_tables + end + end + def resource_url(time_table = nil) referential_time_table_path(referential, time_table || resource) end diff --git a/app/controllers/vehicle_journeys_controller.rb b/app/controllers/vehicle_journeys_controller.rb index 848fda507..18cd6b96c 100644 --- a/app/controllers/vehicle_journeys_controller.rb +++ b/app/controllers/vehicle_journeys_controller.rb @@ -1,7 +1,7 @@ class VehicleJourneysController < ChouetteController defaults :resource_class => Chouette::VehicleJourney - respond_to :js, :only => [:select_journey_pattern, :edit, :new] + respond_to :js, :only => [:select_journey_pattern, :edit, :new, :index] belongs_to :referential do belongs_to :line, :parent_class => Chouette::Line do @@ -30,31 +30,49 @@ class VehicleJourneysController < ChouetteController update!(:alert => t('activerecord.errors.models.vehicle_journey.invalid_times')) end - def index - index! do |format| - format.html { - @matrix ||= matrix - if collection.out_of_bounds? - redirect_to params.merge(:page => 1) - end - } - end + def index + index! do + @matrix ||= matrix + if collection.out_of_bounds? + redirect_to params.merge(:page => 1) + end + end end - # overwrite inherited resources to use delete instead of destroy + # overwrite inherited resources to use delete instead of destroy # foreign keys will propagate deletion) def destroy_resource(object) object.delete end protected - + alias_method :vehicle_journey, :resource - + def collection - @q = parent.sorted_vehicle_journeys.search(params[:q]) - @vehicle_journeys ||= @q.result.order( "vehicle_journey_at_stops.departure_time").paginate(:page => params[:page], :per_page => 8) + adapt_time_params + @q = select_vehicles.search(params[:q]) + @vehicle_journeys ||= @q.result.order( "vehicle_journey_at_stops.departure_time").paginate(:page => params[:page], :per_page => 8) + end + + def adapt_time_params + hour_entry = "vehicle_journey_at_stops_departure_time_gt(4i)".to_sym + if params[:q] && params[:q][ hour_entry] + params[:q].merge! hour_entry => (params[:q][ hour_entry].to_i - utc_offset) + end + end + def utc_offset + # Ransack Time eval - utc eval + sample = [2001,1,1,10,0] + Time.zone.local(*sample).utc.hour - Time.utc(*sample).hour + end + def select_vehicles + if params[:q] && params[:q][ :time_tables_id_eq ] + parent.sorted_vehicle_journeys.joins( :time_tables).where( "time_tables_vehicle_journeys.time_table_id" => params[:q][ :time_tables_id_eq ].split(',')) + else + parent.sorted_vehicle_journeys + end end def matrix @@ -62,7 +80,7 @@ class VehicleJourneysController < ChouetteController Chouette::VehicleJourney.find( @vehicle_journeys.map { |v| v.id } ). each do |vj| vj.vehicle_journey_at_stops.each do |vjas| - hash[ "#{vj.id}-#{vjas.stop_point_id}"] = vjas + hash[ "#{vj.id}-#{vjas.stop_point_id}"] = vjas end end end |
